101 lines
2.5 KiB
Plaintext
101 lines
2.5 KiB
Plaintext
Created by PLY version 3.11 (http://www.dabeaz.com/ply)
|
|
|
|
Grammar
|
|
|
|
Rule 0 S' -> expression
|
|
Rule 1 expression -> CONST
|
|
Rule 2 expression -> WHILE expression DO LBRACE expression RBRACE
|
|
|
|
Terminals, with rules where they appear
|
|
|
|
CONST : 1
|
|
DO : 2
|
|
LBRACE : 2
|
|
RBRACE : 2
|
|
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 .)
|
|
|