New Interpreter Stuff

Token String Structure

The token string for each role will be organized in the following structure:

 

Substring Terminator

Activation Substitutes none

Activation Equation Activation Token

Consequence Substitutes none

Consequence Macros MacroTerminator Token

Consequence Equations none

(the next two items are optional)

Relationship Adjustments none

Physical Changes none

Terminator Token

 

When the interpreter encounters a macro definition token, it must store an internal index to that point in the token string, and then skip to the next MacroTerminator token, where processing proceeds normally. When it encounters a macro call token, it must refer to its previously-stored index to the macro to continue processing.

 

Eliminating the Junk variable

There is no point in retaining this variable. Instead, we will permit procedures (as distinct from functions). These are single-line calls that perform a procedure and return no value to the stack. Thus, a token can return either zero or one value on the stack &emdash; no more. This will require substantial changes in the editor.

 

Self-check on termination

The interpreter will always perform a stack check on encountering either the Activation token or the Terminator token; if the stack pointer is not zero, the interpreter will poison the results.