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.
-
-
-
Hierarchy - To provide an enforced structure and set of naming conventions for packages and names in the Inter code we generate. -
Noun Identifiers - Instances and kinds are both referred to by nouns, and here we create corresponding inames for use in compiled Inter code, and identifiers for use in the index. -
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. -
Interventions - Material written in low-level Inform 6 notation can be emitted for later linking, a distasteful process called "intervening". -
Shared Variables - Functions to create sets of shared variables. -
The Heap - Texts, lists and other flexibly-sized structures make use of a pool of run-time storage called "the heap". -
Default Values - An unusual feature of Inform is that every kind has a default value, so that it is impossible for any variable or property to be uninitialised. -
Equality Schemas - To define how to compile a comparisom of two values. -
Instance Counting - Though a plugin, for convenience of implementation, this code is always active and provides for efficient loops through instances at runtime. -
Kind Declarations - Each different kind used anywhere in the tree must be declared with an Inter kind declaration. -
Showme Command - A plugin to provide some support for the SHOWME testing command. -
Here, Nowhere and Everywhere - Almost a Beatles song, but really a set of schemas for compilimg the meaning of the unary predicates here, nowhere and everywhere. -
Short Names - To compile the "short name" and "capitalised short name" properties. -
General Parsing Routines - To compile "general parsing routines", or GPRs, which are runtime functions used to match noun phrases in the command parser.
-
-
-
Generic Module - Inter constants for, say, extremal number values, which depend only on the target we are compiling to, and are generally low-level in nature. -
Completion Module - The completion module contains material turning the collection of resources into a playable work. -
Use Options - To give use options a presence at run-time.
-
-
-
Enclosures - Packages which contain all the resources any of their subpackages will need are called "enclosures". -
List Literals - Each enclosure contains the literal lists needed by its functions. -
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. -
Box Quotations - In this section we compile text constants. -
Relation Literals - In fact there is only one literal relation: the empty one, used as a default value. -
Stored Action Literals - Explicit actions stored in memory as literals. -
Group Together - The "group together" phrase in the Standard Rules needs support functions, which are compiled within the user's enclosure. -
Looping Over Scope - To compile functions which implement conditions such as "in the presence of Mrs Dalloway".
-
-
Chapter 5: Provision Submodules
-
Activities - To compile the activities submodule for a compilation unit, which contains _activity packages. -
Adjectives - To compile the adjectives submodule for a compilation unit, which contains _adjective, _adjective_phrase and _measurement packages. -
Chronology - To compile the chronology submodule for a compilation unit, which contains _past_condition and _action_history_condition packages. -
Conjugations - To compile the conjugations submodule for a compilation unit, which contains _verb, _modal_verb and _verb_form packages. -
Equations - To compile the equations submodule for a compilation unit, which contains _equation packages. -
Instances - To compile the instances submodule for a compilation unit, which contains _instance packages. -
Backdrop Instances - Some additions to an _instance package for instances of the kind "backdrop". -
Door Instances - Property values for two-sided doors to make them interconnect with the map at runtime. -
Region Instances - Some additions to an _instance package for instances of the kind "region". -
Scene Instances - Some additions to an _instance package for instances of the kind "backdrop". -
Multimedia - To compile the multimedia submodule for a compilation unit, which contains _external_file, _figure and _sound packages. -
Tables - To compile the tables submodule for a compilation unit, which contains _table packages containing _table_column_usage subpackages. -
Table Columns - To compile the table_columns submodule for a compilation unit, which contains _table_column packages. -
Rules - To compile the rules submodule for a compilation unit, which contains _rule packages. -
Rulebooks - To compile the rulebooks submodule for a compilation unit, which contains _rulebook and _outcome packages. -
Variables - To compile the variables submodule for a compilation unit, which contains _variable packages. -
Properties - To compile the properties submodule for a compilation unit, which contains _property packages. -
Relations - To compile the relations submodule for a compilation unit, which contains _relation packages. -
Literal Patterns - Compiled code to print and parse values expressed as literals. -
Kind Constructors - Hmmm. -
Kind IDs - To compile the equations submodule for a compilation unit, which contains _equation packages. -
Actions - To compile the actions submodule for a compilation unit, which contains _action packages. -
Named Action Patterns - To compile the named_action_patterns submodule for a compilation unit, which contains _named_action_pattern packages.
-
-
Chapter 6: Completion Resources
-
The Map - The runtime representation of the spatial map for works of interactive fiction: that is, how the rooms and doors connect up. -
Property Permissions - Each property needs permission to be used, and here we emit the Inter statements necessary. -
Property Values - Compiling Inter property value instructions for the properties of instances and kinds. -
Parse Name Properties - Functions which are values of the parse_name property for objects. -
Action Bitmap Property - To compile tiny arrays as values of the action_bitmap property.
-
-
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.
-
Powered by Inweb.