The interactive-fiction specific layer of Inform, as a module. This is version 1.
-
-
What This Module Does - An overview of the if module's role and abilities.
-
-
-
IF Module - Setting up the use of this module.
-
-
Our project is a kind of interactive book, with ISBN-like data and various cataloguing information, and which needs to be bound up in various ways.
-
Bibliographic Data - 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. -
Release Instructions - To write the iFiction record for the work of IF compiled, its release instructions and its picture manifest, if any. -
The iFiction Record - To write the iFiction record for the work of IF compiled. -
The Blurb File - To write the blurb file of instructions for inblorb to release the project.
-
-
The default model domain for Inform is one which is adapted to interactive fiction, which provides for geography, spatial containment and scenes.
-
Spatial Model - A plugin which constructs the fundamental spatial model used by IF, to represent containment, support, carrying, wearing, and incorporation. -
Everywhere, Nowhere and Here - To define the unary predicates for some anaphoric location adjectives. -
Spatial Relations - Binary predicates for spatial relationships. -
Spatial Inferences - Six families of inference used by the spatial plugin. -
Persons - A plugin giving minimal support for switchable devices. -
The Player - A plugin to give a special role to a person who is the protagonist. -
Devices - A plugin giving minimal support for switchable devices. -
Backdrops - A plugin to provide support for backdrop objects, which are present as scenery in multiple rooms at once. -
Regions - A plugin providing support for grouping rooms together into named and nestable regions. -
The Map - A plugin to provide a geographical model, linking rooms and doors together in oppositely-paired directions. -
Map Connection Relations - To define one binary predicate for each map direction, such as "mapped north of". -
Scenes - A plugin to support named periods of time during an interactive story. -
The Score - A plugin to support the score variables.
-
-
Actions are impulses to do something within the simulated world.
-
Actions Plugin - A plugin for actions, by which animate characters change the world model. -
Actions-Only Nodes and Annotations - Additional syntax tree node and annotation types used by the actions plugin. -
Action Kinds - Three action-related kinds of value. -
Action Conditions - A special condition for testing against action patterns. -
Actions - Each different sort of impulse to do something is an "action name". -
Action Semantics - Constraints on how actions may be used in the model world. -
Action Variables - Variables shared by the rules of the rulebooks processing an action. -
Action Name Names - There is an annoying profusion of ways an action can have a name. -
Action Patterns - 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. -
Action Name Lists - Action name lists are used in parsing action patterns, and identify which action names seem to be possible within them. -
Action Pattern Clauses - Pattern-matches on individual nouns in an action are called clauses. -
Going - Inform provides a little extra support for the "going" action. -
Parse Action Patterns - Turning text into APs. -
Parse Clauses - Parsing the clauses part of an AP from source text. -
Explicit Actions - An exactly specified action is called "explicit". -
Named Action Patterns - A named action pattern is a categorisation of behaviour.
-
-
In which Understand sentences in the source text are converted into a grammar for a command parser at run-time.
-
Parsing Plugin - A plugin for command-parser support. -
Parsing-Only Nodes and Annotations - Additional syntax tree node and annotation types used by the parsing plugin. -
Introduction to Grammar - An exposition of the data structures and basic method used to deal with the command-parsing grammar implied by Understand sentences in the source text. -
Traverse for Grammar - To create and manipulate grammar, primarily by parsing and acting upon Understand... sentences in the source text. -
Grammar Properties - A plugin for the I6 run-time properties needed to support parsing. -
Grammar Verbs - A grammar verb is not literally a verb, as the name is a hangover from the way I6 defines grammar. It might be said to be a necklace onto which we thread the sea-shells of grammar lines. Each grammar verb has its own purpose: to match various possibilities (one for each grammar line) against text aimed at a particular result. For instance, all run time commands beginning with TAKE are parsed with a single grammar verb. If we create a new grammar token, "[polite remark]", for use in other grammar, then that too will have its own "grammar verb". If we define the word "eleventy-one" as meaning the number 111, it will be added to a grammar verb attached to the kind "number" which parses eccentric names for number values. And so on. Probably a better name for this structure would be simply "grammar", but that might be confusing in other ways, and anyway the ship has sailed. -
Grammar Lines - A grammar line is a list of tokens to specify a textual pattern. For example, the Inform source for a grammar line might be "take [something] out", which is a sequence of three tokens. -
Grammar Types - Some grammar text specifies one or more values, and we need to keep track of their kind(s). Here we manage the data structure doing this. -
Grammar Tokens - 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. -
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.
-
Powered by Inweb.