write LEX file
This commit is contained in:
@@ -1,100 +1,135 @@
|
||||
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 .)
|
||||
|
||||
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 .)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user