LL(1) Parser
Grammar Input
S > EXPR EXPR > TERM EXPR' EXPR' > + TERM EXPR' EXPR' > - TERM EXPR' EXPR' > % TERM > FACTOR TERM' TERM' > * FACTOR TERM' TERM' > / FACTOR TERM' TERM' > % FACTOR > ( EXPR ) FACTOR > num FACTOR > ident
Epsilon is denoted with %
Grammar must have S as the start symbol
Rules are in form nonterminal > terminals/nonterminals ('>' can be used as a token)
Each token in a rule must be separated by a space
$ is reserved as EOF
Any conflicts in the grammar will show up red on the table
Click 'Set' to start/reset parsing
The 'Next step' button will build the next production in the parse tree
The center button on the Dpad will extend the view port downwards for the tree
The rest of the buttons move the tree around in the view port
Nodes in the tree can be collapsed when clicked
Make Tables
Tables
First and Follow Sets
NonTerminals
First
Follow
Parse Table
Parse Input
num + num
Next step
Set
Stack
Rest of input
Rule used