136 lines
2.9 KiB
Plaintext
136 lines
2.9 KiB
Plaintext
Created by PLY version 3.11 (http://www.dabeaz.com/ply)
|
|
|
|
Unused terminals:
|
|
|
|
AOP
|
|
ASSIGN
|
|
COMMA
|
|
ELSE
|
|
FALSE
|
|
ID
|
|
IF
|
|
IN
|
|
LET
|
|
LOP
|
|
LPAREN
|
|
RELOP
|
|
RPAREN
|
|
SEMICOLON
|
|
THEN
|
|
TRUE
|
|
|
|
Grammar
|
|
|
|
Rule 0 S' -> expression
|
|
Rule 1 expression -> CONST
|
|
Rule 2 expression -> WHILE expression DO LBRACE expression RBRACE
|
|
|
|
Terminals, with rules where they appear
|
|
|
|
AOP :
|
|
ASSIGN :
|
|
COMMA :
|
|
CONST : 1
|
|
DO : 2
|
|
ELSE :
|
|
FALSE :
|
|
ID :
|
|
IF :
|
|
IN :
|
|
LBRACE : 2
|
|
LET :
|
|
LOP :
|
|
LPAREN :
|
|
RBRACE : 2
|
|
RELOP :
|
|
RPAREN :
|
|
SEMICOLON :
|
|
THEN :
|
|
TRUE :
|
|
WHILE : 2
|
|
error :
|
|
|
|
Nonterminals, with rules where they appear
|
|
|
|
expression : 2 2 0
|
|
|
|
Parsing method: LALR
|
|
|
|
state 0
|
|
|
|
(0) S' -> . expression
|
|
(1) expression -> . CONST
|
|
(2) expression -> . WHILE expression DO LBRACE expression RBRACE
|
|
|
|
CONST shift and go to state 2
|
|
WHILE shift and go to state 3
|
|
|
|
expression shift and go to state 1
|
|
|
|
state 1
|
|
|
|
(0) S' -> expression .
|
|
|
|
|
|
|
|
state 2
|
|
|
|
(1) expression -> CONST .
|
|
|
|
$end reduce using rule 1 (expression -> CONST .)
|
|
DO reduce using rule 1 (expression -> CONST .)
|
|
RBRACE reduce using rule 1 (expression -> CONST .)
|
|
|
|
|
|
state 3
|
|
|
|
(2) expression -> WHILE . expression DO LBRACE expression RBRACE
|
|
(1) expression -> . CONST
|
|
(2) expression -> . WHILE expression DO LBRACE expression RBRACE
|
|
|
|
CONST shift and go to state 2
|
|
WHILE shift and go to state 3
|
|
|
|
expression shift and go to state 4
|
|
|
|
state 4
|
|
|
|
(2) expression -> WHILE expression . DO LBRACE expression RBRACE
|
|
|
|
DO shift and go to state 5
|
|
|
|
|
|
state 5
|
|
|
|
(2) expression -> WHILE expression DO . LBRACE expression RBRACE
|
|
|
|
LBRACE shift and go to state 6
|
|
|
|
|
|
state 6
|
|
|
|
(2) expression -> WHILE expression DO LBRACE . expression RBRACE
|
|
(1) expression -> . CONST
|
|
(2) expression -> . WHILE expression DO LBRACE expression RBRACE
|
|
|
|
CONST shift and go to state 2
|
|
WHILE shift and go to state 3
|
|
|
|
expression shift and go to state 7
|
|
|
|
state 7
|
|
|
|
(2) expression -> WHILE expression DO LBRACE expression . RBRACE
|
|
|
|
RBRACE shift and go to state 8
|
|
|
|
|
|
state 8
|
|
|
|
(2) expression -> WHILE expression DO LBRACE expression RBRACE .
|
|
|
|
$end reduce using rule 2 (expression -> WHILE expression DO LBRACE expression RBRACE .)
|
|
DO reduce using rule 2 (expression -> WHILE expression DO LBRACE expression RBRACE .)
|
|
RBRACE reduce using rule 2 (expression -> WHILE expression DO LBRACE expression RBRACE .)
|
|
|