The two tables below serve as quick reference tables for the concepts and syntax of ProcGenie. For an in-depth discussion of ProcGenie's features, click the "user's guide" link at the top of this page.
Rewrite System |
An algorithm applying rewrite rules |
Grammar |
A rewrite system used to define a language |
Language |
The universe of potential generative results of a grammar |
Start Symbol |
A start symbol describes the starting element of a grammar |
Nonterminal |
A symbol that can be expanded by production rules to a string |
Terminal |
A terminal string with no more expansion allowed |
Production Rules |
Rules specifying the expansion of nonterminals to other nonterminals or terminals |
Graph |
A graph is a named nonterminal |
Cell |
Each cell on the graph is an anonymous nonterminal |
Component |
Each cell is made up of components. A component is an anonymous nonterminal or terminal |
Directional Rules |
Directional Rules are production rules specifying which way the generator can move on the graph |
Walker |
The "Walker" is a conceptul framework we use to describe the current coordinates and state of the generator on the graph during a generation run |
Escape |
After clicking the "Run" button, press the escape key to leave your generated text and return to your graph editor. |
[START] |
Defines a start symbol or entry point on a graph |
[E] |
Production rule specifying that next cell can be x + 1 on graph |
[W] |
Production rule specifying that next cell can be x - 1 on graph |
[N] |
Production rule specifying that next cell can be y + 1 on graph |
[S] |
Production rule specifying that next cell can be y - 1 on graph |
[NE] |
Production rule specifying that next cell can be x + 1 and y + 1 on graph |
[NW] |
Production rule specifying that next cell can be x - 1 and y + 1 on graph |
[SW] |
Production rule specifying that next cell can be x - 1 and y - 1 on graph |
[SE] |
Production rule specifying that next cell can be x + 1 and y - 1 on graph |
[U] |
Production rule specifying that next cell can be z + 1 on graph |
[D] |
Production rule specifying that next cell can be z - 1 on graph |
[E, SE, W] |
Define multiple production rules by separating by commas |
| |
Separate components with a pipe (or) |
[10] |
Define probability factors on each component by placing the factor within brackets. If no probability factor is defined, the components are processed as an if/else statement |
G(graphName) |
Call another graph by name as a named nonterminal |
G(graphName, number) |
Repeatedly call another graph by name as a named nonterminal specified number of times |
teleport(graphName, x, y, z) |
Immediately moves to the specified graph and coordinates |
refs(r1 r2 r3) |
Set reference objects to one or more reference objects named in parentheses and separated by spaces |
getRefsByName(r1 r2 r3) |
Sets reference objects to listed reference objects |
listRefs() |
Provides a list of reference objects; where appropriate, separates list with commas and the word "and" |
allRefs(tag1 tag2 tag3) |
Sets reference objects to all reference objects that have the listed tags |
notRefs(tag1 tag2 tag3) |
Sets reference objects to all reference objects that do not have the listed tags |
anyRef(tag1 tag2 tag3) |
Sets reference objects to any reference objects that have any of the listed tags |
randRef(tag1 tag2 tag3) |
Sets reference object to a random reference object that has the listed tags |
+(tagName) |
Adds a tag or tags to current reference objects |
-(tagName) |
Removes a tag or tags from current reference objects |
?(tagName) |
Constraint checking whether a tag or tags exist on current reference objects |
[varName = varValue] |
Sets a variable to a value |
[varName += varValue] |
Adds a value to an existing variable. If the existing variable is a number, performs math. If the existing variable is a string, concatenates. |
[varName -= varValue] |
Subtracts a value from an existing variable |
[varName includes varValue] |
Checks whether the value of an existing variable includes a string |
[varName === varValue] |
Checks whether an existing variable is equal to a value |
[choice: text (variables) (directions)] |
Defines a choice that encodes context and generates from that context. |
[link: (variables) (directions)] |
Defines a link that encodes context and generates from that context. |
parse(direction) |
Adds a parser to current generation run. Pressing submit after text entry begins a new generation run from the cell in which the parser is defined and heading in the direction specified in parentheses |