Files
Construction-of-Compilers/Project-02/parser.out
Jan-Niclas Loosen 622ecef369 write LEX file
2025-11-19 00:50:46 +01:00

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 .)