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.

Concepts Cheat Sheet

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

Essential Syntax Cheat Sheet

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