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

534 lines
25 KiB
HTML

<html>
<head>
<title>codegen</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><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><span class="unlink">codegen</span></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">Inter Modules</a></li><li><b>codegen</b></li></ul>
<p class="purpose">The code generation pipeline. This is version 1.</p>
<hr>
<div class="contentspage">
<ul class="chapterlist">
<li>
<p class="chapterentry"><a name="1"></a>
<span class="chaptertitle">Chapter 1: Setting Up</span></p>
<ul class="sectionlist">
<li>
<p class="sectionentry"><a href="1-cm.html">
<spon class="sectiontitle">Codegen Module</span></a> -
<span class="sectionpurpose">Setting up the use of this module.</span></p>
</li>
<li>
<p class="sectionentry"><a href="1-stg.html">
<spon class="sectiontitle">Stages</span></a> -
<span class="sectionpurpose">To create the stages through which code generation proceeds.</span></p>
</li>
<li>
<p class="sectionentry"><a href="1-arc.html">
<spon class="sectiontitle">Architecture</span></a> -
<span class="sectionpurpose">To deal with multiple inter architectures.</span></p>
</li>
<li>
<p class="sectionentry"><a href="1-li.html">
<spon class="sectiontitle">Link Instructions</span></a> -
<span class="sectionpurpose">Inter often needs to assimilate or otherwise deal with architecture-neutral kits of linkable material, and this is where such requirements are noted.</span></p>
</li>
<li>
<p class="sectionentry"><a href="1-ppl.html">
<spon class="sectiontitle">Pipelines</span></a> -
<span class="sectionpurpose">To build and run through pipelines of code generation stages.</span></p>
</li>
</ul>
</li>
<li>
<p class="chapterentry"><a name="2"></a>
<span class="chaptertitle">Chapter 2: Miscellaneous Pipeline Stages</span></p>
<ul class="sectionlist">
<li>
<p class="sectionentry"><a href="2-mt.html">
<spon class="sectiontitle">Linker</span></a> -
<span class="sectionpurpose">To link inter from I7 with template code.</span></p>
</li>
<li>
<p class="sectionentry"><a href="2-tr.html">
<spon class="sectiontitle">I6 Template Reader</span></a> -
<span class="sectionpurpose">Inform 6 meta-language is the language used by template files (with extension |.i6t|); we need tp be able to read it here in order to assimilate template code.</span></p>
</li>
<li>
<p class="sectionentry"><a href="2-plm.html">
<spon class="sectiontitle">Parse Linked Matter</span></a> -
<span class="sectionpurpose">To generate the initial state of storage for variables.</span></p>
</li>
<li>
<p class="sectionentry"><a href="2-rcc.html">
<spon class="sectiontitle">Resolving Conditional Compilation</span></a> -
<span class="sectionpurpose">To generate the initial state of storage for variables.</span></p>
</li>
<li>
<p class="sectionentry"><a href="2-ass.html">
<spon class="sectiontitle">Assimilate Linked Matter</span></a> -
<span class="sectionpurpose">To assimilate the material in parsed non-code splats.</span></p>
</li>
<li>
<p class="sectionentry"><a href="2-res.html">
<spon class="sectiontitle">Resolve External Symbols</span></a> -
<span class="sectionpurpose">To make sure certain symbol names translate into globally unique target symbols.</span></p>
</li>
<li>
<p class="sectionentry"><a href="2-ip.html">
<spon class="sectiontitle">Inspect Plugs</span></a> -
<span class="sectionpurpose">To make sure certain symbol names translate into globally unique target symbols.</span></p>
</li>
<li>
<p class="sectionentry"><a href="2-unq.html">
<spon class="sectiontitle">Uniqueness</span></a> -
<span class="sectionpurpose">To make sure certain symbol names translate into globally unique target symbols.</span></p>
</li>
<li>
<p class="sectionentry"><a href="2-rv.html">
<spon class="sectiontitle">Reconcile Verbs</span></a> -
<span class="sectionpurpose">To reconcile clashes between assimilated and originally generated verbs.</span></p>
</li>
<li>
<p class="sectionentry"><a href="2-erm.html">
<spon class="sectiontitle">Eliminate Redundant Matter</span></a> -
<span class="sectionpurpose">To remove (for example) functions which we can prove will never be called or referred to as values.</span></p>
</li>
<li>
<p class="sectionentry"><a href="2-erl.html">
<spon class="sectiontitle">Eliminate Redundant Labels</span></a> -
<span class="sectionpurpose">To remove labels which are defined but never jumped to.</span></p>
</li>
<li>
<p class="sectionentry"><a href="2-ero.html">
<spon class="sectiontitle">Eliminate Redundant Operations</span></a> -
<span class="sectionpurpose">To remove logical or arithmetic operations which do nothing.</span></p>
</li>
</ul>
</li>
<li>
<p class="chapterentry"><a name="3"></a>
<span class="chaptertitle">Chapter 3: Synoptic Module</span></p>
<ul class="sectionlist">
<li>
<p class="sectionentry"><a href="3-sh.html">
<spon class="sectiontitle">Synoptic Hierarchy</span></a> -
<span class="sectionpurpose">The layout and naming conventions for the contents of the main/synoptic module.</span></p>
</li>
<li>
<p class="sectionentry"><a href="3-su.html">
<spon class="sectiontitle">Synoptic Utilities</span></a> -
<span class="sectionpurpose">Managing the generation of code and arrays in the synoptic module, which is put together from resources all over the Inter tree.</span></p>
</li>
<li>
<p class="sectionentry"><a href="3-ext.html">
<spon class="sectiontitle">Extensions</span></a> -
<span class="sectionpurpose">To renumber the extensions and construct suitable functions and arrays.</span></p>
</li>
<li>
<p class="sectionentry"><a href="3-lt.html">
<spon class="sectiontitle">Literal Text</span></a> -
<span class="sectionpurpose">To alphabetise literal texts, deduplicate them, and stote a canonical set in the main/texts linkage.</span></p>
</li>
<li>
<p class="sectionentry"><a href="3-rsp.html">
<spon class="sectiontitle">Responses</span></a> -
<span class="sectionpurpose">To compile the main/synoptic/responses submodule.</span></p>
</li>
<li>
<p class="sectionentry"><a href="3-rls.html">
<spon class="sectiontitle">Rules</span></a> -
<span class="sectionpurpose">To compile the main/synoptic/rules and main/synoptic/rulebooks submodules.</span></p>
</li>
<li>
<p class="sectionentry"><a href="3-act.html">
<spon class="sectiontitle">Activities</span></a> -
<span class="sectionpurpose">To compile the main/synoptic/activities submodule.</span></p>
</li>
<li>
<p class="sectionentry"><a href="3-act2.html">
<spon class="sectiontitle">Actions</span></a> -
<span class="sectionpurpose">To compile the main/synoptic/actions submodule.</span></p>
</li>
<li>
<p class="sectionentry"><a href="3-ins.html">
<spon class="sectiontitle">Instances</span></a> -
<span class="sectionpurpose">To compile the main/synoptic/instances submodule.</span></p>
</li>
<li>
<p class="sectionentry"><a href="3-knd.html">
<spon class="sectiontitle">Kinds</span></a> -
<span class="sectionpurpose">To compile the main/synoptic/kinds submodule.</span></p>
</li>
<li>
<p class="sectionentry"><a href="3-prp.html">
<spon class="sectiontitle">Properties</span></a> -
<span class="sectionpurpose">To compile the main/synoptic/properties submodule.</span></p>
</li>
<li>
<p class="sectionentry"><a href="3-rlt.html">
<spon class="sectiontitle">Relations</span></a> -
<span class="sectionpurpose">To compile the main/synoptic/relations submodule.</span></p>
</li>
<li>
<p class="sectionentry"><a href="3-tbl.html">
<spon class="sectiontitle">Tables</span></a> -
<span class="sectionpurpose">To compile the main/synoptic/tables submodule.</span></p>
</li>
<li>
<p class="sectionentry"><a href="3-chr.html">
<spon class="sectiontitle">Chronology</span></a> -
<span class="sectionpurpose">To compile the main/synoptic/chronology submodule.</span></p>
</li>
<li>
<p class="sectionentry"><a href="3-scn.html">
<spon class="sectiontitle">Scenes</span></a> -
<span class="sectionpurpose">To compile the main/synoptic/scenes submodule.</span></p>
</li>
<li>
<p class="sectionentry"><a href="3-mlt.html">
<spon class="sectiontitle">Multimedia</span></a> -
<span class="sectionpurpose">To compile the main/synoptic/multimedia submodule.</span></p>
</li>
<li>
<p class="sectionentry"><a href="3-uo.html">
<spon class="sectiontitle">Use Options</span></a> -
<span class="sectionpurpose">To compile the main/synoptic/use_options submodule.</span></p>
</li>
<li>
<p class="sectionentry"><a href="3-vrb.html">
<spon class="sectiontitle">Verbs</span></a> -
<span class="sectionpurpose">To compile the main/synoptic/verbs submodule.</span></p>
</li>
<li>
<p class="sectionentry"><a href="3-tst.html">
<spon class="sectiontitle">Tests</span></a> -
<span class="sectionpurpose">To compile the main/synoptic/tests submodule.</span></p>
</li>
</ul>
</li>
<li>
<p class="chapterentry"><a name="4"></a>
<span class="chaptertitle">Chapter 4: Inter to Final Code</span></p>
<ul class="sectionlist">
<li>
<p class="sectionentry"><a href="4-cg.html">
<spon class="sectiontitle">Code Generation</span></a> -
<span class="sectionpurpose">To generate final code from intermediate code.</span></p>
</li>
<li>
<p class="sectionentry"><a href="4-fc.html">
<spon class="sectiontitle">Frame Control</span></a> -
<span class="sectionpurpose">To manage the final-code process, at the frame level.</span></p>
</li>
<li>
<p class="sectionentry"><a href="4-cal.html">
<spon class="sectiontitle">Constants and Literals</span></a> -
<span class="sectionpurpose">To generate final code for constants, including arrays.</span></p>
</li>
<li>
<p class="sectionentry"><a href="4-iap.html">
<spon class="sectiontitle">Instances and Properties</span></a> -
<span class="sectionpurpose">To generate the initial state of storage for instances and their properties, and all associated metadata.</span></p>
</li>
<li>
<p class="sectionentry"><a href="4-vrb.html">
<spon class="sectiontitle">Variables</span></a> -
<span class="sectionpurpose">To generate the initial state of storage for variables.</span></p>
</li>
</ul>
</li>
<li>
<p class="chapterentry"><a name="5"></a>
<span class="chaptertitle">Chapter 5: Final Code</span></p>
<ul class="sectionlist">
<li>
<p class="sectionentry"><a href="5-ft.html">
<spon class="sectiontitle">Final Targets</span></a> -
<span class="sectionpurpose">To create the range of possible targets into which Inter can be converted.</span></p>
</li>
<li>
<p class="sectionentry"><a href="5-fti.html">
<spon class="sectiontitle">Final Textual Inter</span></a> -
<span class="sectionpurpose">To create the range of possible targets into which Inter can be converted.</span></p>
</li>
<li>
<p class="sectionentry"><a href="5-fbi.html">
<spon class="sectiontitle">Final Binary Inter</span></a> -
<span class="sectionpurpose">To create the range of possible targets into which Inter can be converted.</span></p>
</li>
<li>
<p class="sectionentry"><a href="5-fi.html">
<spon class="sectiontitle">Final Inventory</span></a> -
<span class="sectionpurpose">To print a summary of the contents of a repository.</span></p>
</li>
<li>
<p class="sectionentry"><a href="5-fi6.html">
<spon class="sectiontitle">Generating Inform 6</span></a> -
<span class="sectionpurpose">To generate I6 code from intermediate code.</span></p>
</li>
</ul>
</li>
<li>
<p class="chapterentry"><a name="6"></a>
<span class="chaptertitle">Chapter 6: Index</span></p>
<ul class="sectionlist">
<li>
<p class="sectionentry"><a href="6-ii.html">
<spon class="sectiontitle">Index 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="6-ifs.html">
<spon class="sectiontitle">Index File Services</span></a> -
<span class="sectionpurpose">To provide routines to help build the various HTML index files, none of which are actually created in this section.</span></p>
</li>
<li>
<p class="sectionentry"><a href="6-ir.html">
<spon class="sectiontitle">Index Rules</span></a> -
<span class="sectionpurpose">Utility functions for indexing rules, rulebooks and activities.</span></p>
</li>
<li>
<p class="sectionentry"><a href="6-lxc.html">
<spon class="sectiontitle">Lexicon</span></a> -
<span class="sectionpurpose">A lexicon for nouns, adjectives and verbs found in an Inter tree.</span></p>
</li>
<li>
<p class="sectionentry"><a href="6-ce.html">
<spon class="sectiontitle">Contents Element</span></a> -
<span class="sectionpurpose">To write the Contents element (C) in the index.</span></p>
</li>
<li>
<p class="sectionentry"><a href="6-ce2.html">
<spon class="sectiontitle">Card Element</span></a> -
<span class="sectionpurpose">To write the Library Card element (Cd) in the index.</span></p>
</li>
<li>
<p class="sectionentry"><a href="6-be.html">
<spon class="sectiontitle">Behaviour Element</span></a> -
<span class="sectionpurpose">To write the Behavuour element (Bh) in the index.</span></p>
</li>
<li>
<p class="sectionentry"><a href="6-re.html">
<spon class="sectiontitle">Relations Element</span></a> -
<span class="sectionpurpose">To write the Relations element (Rl) in the index.</span></p>
</li>
<li>
<p class="sectionentry"><a href="6-ee.html">
<spon class="sectiontitle">Events Element</span></a> -
<span class="sectionpurpose">To write the Events element (Ev) in the index.</span></p>
</li>
<li>
<p class="sectionentry"><a href="6-fe.html">
<spon class="sectiontitle">Figures Element</span></a> -
<span class="sectionpurpose">To write the Figures element (Fi) in the index.</span></p>
</li>
<li>
<p class="sectionentry"><a href="6-te.html">
<spon class="sectiontitle">Tables Element</span></a> -
<span class="sectionpurpose">To write the Tables element (Tb) in the index.</span></p>
</li>
<li>
<p class="sectionentry"><a href="6-ve.html">
<spon class="sectiontitle">Values Element</span></a> -
<span class="sectionpurpose">To write the Values element (Vl) in the index.</span></p>
</li>
<li>
<p class="sectionentry"><a href="6-rfse.html">
<spon class="sectiontitle">Rules for Scenes Element</span></a> -
<span class="sectionpurpose">To write the Rules for Scenes element (RS) in the index.</span></p>
</li>
<li>
<p class="sectionentry"><a href="6-ee2.html">
<spon class="sectiontitle">Extras Element</span></a> -
<span class="sectionpurpose">To write the Extras element (Xt) in the index.</span></p>
</li>
<li>
<p class="sectionentry"><a href="6-se.html">
<spon class="sectiontitle">Standards Element</span></a> -
<span class="sectionpurpose">To write the Standards element (St) in the index.</span></p>
</li>
<li>
<p class="sectionentry"><a href="6-ie.html">
<spon class="sectiontitle">Innards Element</span></a> -
<span class="sectionpurpose">To write the Innards element (In) in the index.</span></p>
</li>
<li>
<p class="sectionentry"><a href="6-ve2.html">
<spon class="sectiontitle">Verbs Element</span></a> -
<span class="sectionpurpose">To write the Verbs element (Vb) in the index.</span></p>
</li>
<li>
<p class="sectionentry"><a href="6-ge.html">
<spon class="sectiontitle">Gazetteer Element</span></a> -
<span class="sectionpurpose">To write the Gazetteer element (Gz) in the index.</span></p>
</li>
<li>
<p class="sectionentry"><a href="6-le.html">
<spon class="sectiontitle">Lexicon Element</span></a> -
<span class="sectionpurpose">To write the Lexicon element (Lx) in the index.</span></p>
</li>
<li>
<p class="sectionentry"><a href="6-ae.html">
<spon class="sectiontitle">Arithmetic Element</span></a> -
<span class="sectionpurpose">To index dimensional rules.</span></p>
</li>
<li>
<p class="sectionentry"><a href="6-pe.html">
<spon class="sectiontitle">Plot Element</span></a> -
<span class="sectionpurpose">To write the Plot element (Pl) in the index.</span></p>
</li>
<li>
<p class="sectionentry"><a href="6-ce3.html">
<spon class="sectiontitle">Chart Element</span></a> -
<span class="sectionpurpose">To write the Chart element (Ch) in the index.</span></p>
</li>
<li>
<p class="sectionentry"><a href="6-pe2.html">
<spon class="sectiontitle">Phrasebook Element</span></a> -
<span class="sectionpurpose">To write the Phrasebook element (Pb) in the index.</span></p>
</li>
<li>
<p class="sectionentry"><a href="6-te2.html">
<spon class="sectiontitle">Tokens Element</span></a> -
<span class="sectionpurpose">To write the Tokens element (To) in the index.</span></p>
</li>
<li>
<p class="sectionentry"><a href="6-ce4.html">
<spon class="sectiontitle">Commands Element</span></a> -
<span class="sectionpurpose">To write the Commands element (Cm) in the index.</span></p>
</li>
<li>
<p class="sectionentry"><a href="6-ge2.html">
<spon class="sectiontitle">Grouped Element</span></a> -
<span class="sectionpurpose">To write the Grouped actions element (A1) in the index, and also the detailed per-action pages linked from it.</span></p>
</li>
<li>
<p class="sectionentry"><a href="6-ae2.html">
<spon class="sectiontitle">Alphabetic Element</span></a> -
<span class="sectionpurpose">To write the Alphabetic actions element (A2) in the index.</span></p>
</li>
<li>
<p class="sectionentry"><a href="6-sg.html">
<spon class="sectiontitle">Spatial Geometry</span></a> -
<span class="sectionpurpose">To deal with vectors and cuboids in a three-dimensional integer lattice.</span></p>
</li>
<li>
<p class="sectionentry"><a href="6-em.html">
<spon class="sectiontitle">EPS Map</span></a> -
<span class="sectionpurpose">To render the spatial map of rooms as an EPS (Encapsulated PostScript) file.</span></p>
</li>
<li>
<p class="sectionentry"><a href="6-me.html">
<spon class="sectiontitle">Map Element</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>
<li>
<p class="sectionentry"><a href="6-ins.html">
<spon class="sectiontitle">Instances</span></a> -
<span class="sectionpurpose">To index instances.</span></p>
</li>
<li>
<p class="sectionentry"><a href="6-spt.html">
<spon class="sectiontitle">Spatial</span></a> -
<span class="sectionpurpose">Indexing functions for the spatial structure of the world model.</span></p>
</li>
<li>
<p class="sectionentry"><a href="6-tp.html">
<spon class="sectiontitle">The Player</span></a> -
<span class="sectionpurpose">Indexing the player's initial position.</span></p>
</li>
<li>
<p class="sectionentry"><a href="6-bck.html">
<spon class="sectiontitle">Backdrops</span></a> -
<span class="sectionpurpose">Indexing the player's initial position.</span></p>
</li>
<li>
<p class="sectionentry"><a href="6-rgn.html">
<spon class="sectiontitle">Regions</span></a> -
<span class="sectionpurpose">Indexing the player's initial position.</span></p>
</li>
<li>
<p class="sectionentry"><a href="6-tm.html">
<spon class="sectiontitle">The Map</span></a> -
<span class="sectionpurpose">Indexing the player's initial position.</span></p>
</li>
<li>
<p class="sectionentry"><a href="6-sm.html">
<spon class="sectiontitle">Spatial Map</span></a> -
<span class="sectionpurpose">To fit the map of the rooms in the game into a cubical grid, preserving distances and angles where possible, and so to give each room approximate coordinate locations.</span></p>
</li>
<li>
<p class="sectionentry"><a href="6-hm.html">
<spon class="sectiontitle">HTML Map</span></a> -
<span class="sectionpurpose">To render the spatial map of rooms as HTML.</span></p>
</li>
<li>
<p class="sectionentry"><a href="6-rem.html">
<spon class="sectiontitle">Render EPS Map</span></a> -
<span class="sectionpurpose">To render the spatial map of rooms as an EPS (Encapsulated PostScript) file.</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>