Generating runtime support code for resources needed in Inform texts. This is version 1.
-
-
What This Module Does - An overview of the runtime module's role and abilities.
-
-
Chapter 1: Configuration and Control
-
Runtime Module - Setting up the use of this module.
-
-
Emitting Inter code ready for the code-generator.
-
Compilation Units - The source text is divided into compilation units, and the material they lead to is similarly divided up. -
Emit - "Emitting" is the process of generating Inter bytecode, and this section provides a comprehensive API for the runtime and imperative modules to do that. -
Emit Code - Here is how bytecode for instructions inside functions is emitted. -
Emit Arrays - Here is how bytecode to create ready-initialised arrays of Inter data is emitted.
-
Mainly low-level utilities for compiling code.
-
Fundamental Constants - Inter constants for, say, extremal number values, which depend on the target we are compiling to, and are generally low-level in nature. -
Use Options at Run Time - To give certain use options a presence at run-time. -
Extension Files at Run Time - To provide the credits routines. -
Inform 6 Inclusions - To include Inform 6 code almost verbatim in the output, as instructed by low-level Inform 7 sentences. -
I6 Template Interpreter - Inform 6 template language, or I6T for short, is a notation for expressing low-level code in Inter.
-
-
-
Literal Patterns at Run Time - Compiled code to print and parse values expressed as literals. -
Text Literals - In this section we compile text constants. -
Text Substitutions - In this section we compile text with substitutions. -
Responses - In this section we keep track of response texts. -
Compiled Text - To compile string constants and comments. -
Constant Lists - In this section we compile I6 arrays for constant lists arising from braced literals.
-
-
-
Runtime Support for Kinds - To compile I6 material needed at runtime to enable kinds to function as they should. -
List Together - To write support code for the Standard Library's "group together" phrases. -
Rules - To compile run-time support for rules. -
Activities - To write support code for activities. -
Equations Support - To compile unique identifiers for equations. -
Temporary Variables - When the run-time code needs to borrow a global variable for a while. -
Variables - To compile run-time support for nonlocal variables. -
Properties - To compile run-time support for properties. -
Measurements - To compile run-time support for measurement adjectives. -
Emit Property Values - To feed the hierarchy of instances and their property values into Inter. -
Instances - To compile run-time support for instances. -
Instance Counting - 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. -
Adjectives - To compile run-time support for adjective definitions. -
Noun Identifiers - Nametags provide for a more contextual parsing of nouns, allowing them to be given in an inexact verbal form. -
Verbs at Run Time - To provide run-time access to verbs and their conjugations. -
Relations at Run Time - Relations need both storage and support code at runtime. -
Runtime Support for Tables - To compile run-time data structures holding tables. -
Chronology - To keep track of the state of things so that it will be possible in future to ask questions concerning the past.
-
-
-
Actions - -
Action Patterns - Compiling APs. -
Going - Tweaks to compiling APs for the going action.
-
-
-
Parsing - -
Command Grammars - Runtime support for CGs. -
Command Grammar Lines - Runtime support for CGLs. -
Noun Filter Tokens - 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. -
Tokens Parsing Values - 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. -
General Parsing Routines - To compile I6 general parsing routines (GPRs) and/or |parse_name| properties as required by the I7 grammar. -
Looping Over Scope - 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".
-
-
-
Showme Command - A plugin to provide some support for the SHOWME testing command. -
Test Scripts - 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. -
Internal Test Cases - Handling requests to compile internal tests.
-
Powered by Inweb.