Interactive Parsing
version 3 by Jon Ingold
Version 3 of Interactive Parsing (for Glulx only) by Jon Ingold begins here.
"Provides real-time suggestions for the player's input based on what they've typed so far, using the parser itself to ensure these suggestions are sensible."
[
ISSUES:
* Auto-build two-letter verb table (Might be slow? Might not help much?)
* Ambiguous input goes to the main screen, followed by a prompt for more info. Would be better if this prompt was in the input line.
* Similarly, would be better if parser errors stayed on the input line too.
]
[
NOTES:
Print Inferred Command -
- currently clobbered by a "clarifying the parser's choice of..." rule
- should actually print inference in blue after typed text, if all words AOK etc.
- (But shouldn't print PRESS RETURN if there's an inference???)
]
- Book 1 - Establish System
- Chapter 1 - Set up the Game Interface
- Section 1 - Inclusions
- Section 1a - Options
- Section 1b - Constants
- Section 2 - Set up basic windows
- Section 3 - Using Text IO Control to read in command in a sub-window
- Section 3b - Line breaks after parser interruptions
- Section 4 - Toggling Input Style
- Chapter 2 - Hook into new input system
- Section 1 - Keyboard Primitive diverted to a new input routine
- Section 2 - Read in the input line using keystrokes
- Chapter 3 - Command Line Recall
- Section - Store the Command Line after the player hits Return
- Section - Debugging Routines (not for release)
- Section - Recall of previous command lines
- Section - Reading and Writing Command Lines
- Section - The Command Line pointer structure
- Section - Setting up Command Line System
- Chapter 4 - Initiating Command Line Recall for Disambiguation
- Book 2 - I6 Functions
- Chapter 1 - Utilities
- Chapter 2 - Dictionary
- Section 3 - Dictionary Access
- Section 4 - Word Type
- Section 5 - Compare two dictionary/string words, compare typed word and string/dictionary word (considering all characters)
- Section 6 - Word in Scope used to create quick lookup lists
- Chapter - Metrics Core Algorithm
- Section - Find the Best Match
- Section - Compare Input Buffer against Dictionary Word and return a score
- Chapter 2 - Suggesting Words
- Chapter - Initialising the Dictionary Metrics
- Section - Flow Control
- Section - Primes and Character correspondence
- Section - Long words are stored as text
- Section - Build the Dictionary metrics
- Section - Accessing the Multiples
- Chapter 4 - Parser Data
- Book 2 - Input Window Functionality
- Book 3 - Analyse the input line
- Book 4 - Suggestions for an unfinished word
- Chapter 1 - Main Suggestion System
- Section 1 - Hub
- Section 2 - Writing In Suggestions
- Section 2 - Single letters link to particular verbs directly
- Section 2 - Score verbs and suggest the best match
- Chapter 3 - Suggesting Non Verbs
- Chapter 4 - Run the Parser over what we've got So far
- Section 1 - Colour based on parse results
- Section 2 - Does a word replacement help the parser?
- Section 3 - Some functions for shifting buffers around
- Section 4 - System for using previous results
- Section 3 - The Advance Parsing Routine, for use by anyone - returns length of match made (and sets context vars)
- Book 5 - Parser with added tracking information