This commit is contained in:
parent
fda1fc3ca7
commit
b56cd688ae
16 changed files with 1569 additions and 849 deletions
|
@ -12,29 +12,38 @@
|
|||
8 | assign_expression END_STMT
|
||||
9 | IF OPEN_PAR expression CLOSE_PAR statement
|
||||
10 | IF OPEN_PAR expression CLOSE_PAR statement ELSE statement
|
||||
11 | BEGIN_CS statement_list END_CS
|
||||
12 | function END_STMT
|
||||
11 | WHILE OPEN_PAR expression CLOSE_PAR statement
|
||||
12 | DO statement WHILE OPEN_PAR expression CLOSE_PAR END_STMT
|
||||
13 | BEGIN_CS statement_list END_CS
|
||||
14 | function END_STMT
|
||||
|
||||
13 assign_expression : variable ASSIGN value
|
||||
15 assign_expression : variable ASSIGN value
|
||||
|
||||
14 expression : OPEN_PAR expression CLOSE_PAR
|
||||
15 | equal_expression
|
||||
16 | notequal_expression
|
||||
16 expression : OPEN_PAR expression CLOSE_PAR
|
||||
17 | equal_expression
|
||||
18 | notequal_expression
|
||||
19 | lessthan_expression
|
||||
20 | greaterthan_expression
|
||||
|
||||
17 equal_expression : value EQUAL value
|
||||
21 equal_expression : value EQUAL value
|
||||
|
||||
18 notequal_expression : value NOTEQUAL value
|
||||
22 notequal_expression : value NOTEQUAL value
|
||||
|
||||
19 variable : VARIABLE
|
||||
23 lessthan_expression : value LESSTHAN value
|
||||
|
||||
20 value : VALUE
|
||||
21 | VARIABLE
|
||||
22 | value PLUS value
|
||||
23 | function
|
||||
24 greaterthan_expression : value GREATERTHAN value
|
||||
|
||||
24 $$1 :
|
||||
25 variable : VARIABLE
|
||||
|
||||
25 function : FUNCTION OPEN_PAR $$1 CLOSE_PAR
|
||||
26 value : VALUE
|
||||
27 | VARIABLE
|
||||
28 | value PLUS value
|
||||
29 | value SUBTRACT value
|
||||
30 | function
|
||||
|
||||
31 $$1 :
|
||||
|
||||
32 function : FUNCTION OPEN_PAR $$1 CLOSE_PAR
|
||||
|
||||
|
||||
state 0
|
||||
|
@ -59,420 +68,649 @@ state 2
|
|||
|
||||
STOP shift 3
|
||||
IF shift 4
|
||||
PAUSE shift 5
|
||||
PRINT shift 6
|
||||
END_STMT shift 7
|
||||
BEGIN_CS shift 8
|
||||
VARIABLE shift 9
|
||||
FUNCTION shift 10
|
||||
WHILE shift 5
|
||||
DO shift 6
|
||||
PAUSE shift 7
|
||||
PRINT shift 8
|
||||
END_STMT shift 9
|
||||
BEGIN_CS shift 10
|
||||
VARIABLE shift 11
|
||||
FUNCTION shift 12
|
||||
. reduce 1
|
||||
|
||||
statement goto 11
|
||||
assign_expression goto 12
|
||||
variable goto 13
|
||||
function goto 14
|
||||
statement goto 13
|
||||
assign_expression goto 14
|
||||
variable goto 15
|
||||
function goto 16
|
||||
|
||||
|
||||
state 3
|
||||
statement : STOP . END_STMT
|
||||
|
||||
END_STMT shift 15
|
||||
END_STMT shift 17
|
||||
|
||||
|
||||
state 4
|
||||
statement : IF . OPEN_PAR expression CLOSE_PAR statement
|
||||
statement : IF . OPEN_PAR expression CLOSE_PAR statement ELSE statement
|
||||
|
||||
OPEN_PAR shift 16
|
||||
|
||||
|
||||
state 5
|
||||
statement : PAUSE . END_STMT
|
||||
|
||||
END_STMT shift 17
|
||||
|
||||
|
||||
state 6
|
||||
statement : PRINT . OPEN_PAR value CLOSE_PAR END_STMT
|
||||
|
||||
OPEN_PAR shift 18
|
||||
|
||||
|
||||
state 5
|
||||
statement : WHILE . OPEN_PAR expression CLOSE_PAR statement
|
||||
|
||||
OPEN_PAR shift 19
|
||||
|
||||
|
||||
state 6
|
||||
statement : DO . statement WHILE OPEN_PAR expression CLOSE_PAR END_STMT
|
||||
|
||||
STOP shift 3
|
||||
IF shift 4
|
||||
WHILE shift 5
|
||||
DO shift 6
|
||||
PAUSE shift 7
|
||||
PRINT shift 8
|
||||
END_STMT shift 9
|
||||
BEGIN_CS shift 10
|
||||
VARIABLE shift 11
|
||||
FUNCTION shift 12
|
||||
|
||||
statement goto 20
|
||||
assign_expression goto 14
|
||||
variable goto 15
|
||||
function goto 16
|
||||
|
||||
|
||||
state 7
|
||||
statement : PAUSE . END_STMT
|
||||
|
||||
END_STMT shift 21
|
||||
|
||||
|
||||
state 8
|
||||
statement : PRINT . OPEN_PAR value CLOSE_PAR END_STMT
|
||||
|
||||
OPEN_PAR shift 22
|
||||
|
||||
|
||||
state 9
|
||||
statement : END_STMT . (4)
|
||||
|
||||
. reduce 4
|
||||
|
||||
|
||||
state 8
|
||||
state 10
|
||||
statement : BEGIN_CS . statement_list END_CS
|
||||
statement_list : . (3)
|
||||
|
||||
. reduce 3
|
||||
|
||||
statement_list goto 19
|
||||
|
||||
|
||||
state 9
|
||||
variable : VARIABLE . (19)
|
||||
|
||||
. reduce 19
|
||||
|
||||
|
||||
state 10
|
||||
function : FUNCTION . OPEN_PAR $$1 CLOSE_PAR
|
||||
|
||||
OPEN_PAR shift 20
|
||||
statement_list goto 23
|
||||
|
||||
|
||||
state 11
|
||||
variable : VARIABLE . (25)
|
||||
|
||||
. reduce 25
|
||||
|
||||
|
||||
state 12
|
||||
function : FUNCTION . OPEN_PAR $$1 CLOSE_PAR
|
||||
|
||||
OPEN_PAR shift 24
|
||||
|
||||
|
||||
state 13
|
||||
statement_list : statement_list statement . (2)
|
||||
|
||||
. reduce 2
|
||||
|
||||
|
||||
state 12
|
||||
state 14
|
||||
statement : assign_expression . END_STMT
|
||||
|
||||
END_STMT shift 21
|
||||
|
||||
|
||||
state 13
|
||||
assign_expression : variable . ASSIGN value
|
||||
|
||||
ASSIGN shift 22
|
||||
|
||||
|
||||
state 14
|
||||
statement : function . END_STMT
|
||||
|
||||
END_STMT shift 23
|
||||
END_STMT shift 25
|
||||
|
||||
|
||||
state 15
|
||||
assign_expression : variable . ASSIGN value
|
||||
|
||||
ASSIGN shift 26
|
||||
|
||||
|
||||
state 16
|
||||
statement : function . END_STMT
|
||||
|
||||
END_STMT shift 27
|
||||
|
||||
|
||||
state 17
|
||||
statement : STOP END_STMT . (5)
|
||||
|
||||
. reduce 5
|
||||
|
||||
|
||||
state 16
|
||||
state 18
|
||||
statement : IF OPEN_PAR . expression CLOSE_PAR statement
|
||||
statement : IF OPEN_PAR . expression CLOSE_PAR statement ELSE statement
|
||||
|
||||
OPEN_PAR shift 24
|
||||
VARIABLE shift 25
|
||||
VALUE shift 26
|
||||
FUNCTION shift 10
|
||||
OPEN_PAR shift 28
|
||||
VARIABLE shift 29
|
||||
VALUE shift 30
|
||||
FUNCTION shift 12
|
||||
|
||||
expression goto 27
|
||||
equal_expression goto 28
|
||||
notequal_expression goto 29
|
||||
value goto 30
|
||||
function goto 31
|
||||
expression goto 31
|
||||
equal_expression goto 32
|
||||
notequal_expression goto 33
|
||||
lessthan_expression goto 34
|
||||
greaterthan_expression goto 35
|
||||
value goto 36
|
||||
function goto 37
|
||||
|
||||
|
||||
state 17
|
||||
state 19
|
||||
statement : WHILE OPEN_PAR . expression CLOSE_PAR statement
|
||||
|
||||
OPEN_PAR shift 28
|
||||
VARIABLE shift 29
|
||||
VALUE shift 30
|
||||
FUNCTION shift 12
|
||||
|
||||
expression goto 38
|
||||
equal_expression goto 32
|
||||
notequal_expression goto 33
|
||||
lessthan_expression goto 34
|
||||
greaterthan_expression goto 35
|
||||
value goto 36
|
||||
function goto 37
|
||||
|
||||
|
||||
state 20
|
||||
statement : DO statement . WHILE OPEN_PAR expression CLOSE_PAR END_STMT
|
||||
|
||||
WHILE shift 39
|
||||
|
||||
|
||||
state 21
|
||||
statement : PAUSE END_STMT . (6)
|
||||
|
||||
. reduce 6
|
||||
|
||||
|
||||
state 18
|
||||
state 22
|
||||
statement : PRINT OPEN_PAR . value CLOSE_PAR END_STMT
|
||||
|
||||
VARIABLE shift 25
|
||||
VALUE shift 26
|
||||
FUNCTION shift 10
|
||||
VARIABLE shift 29
|
||||
VALUE shift 30
|
||||
FUNCTION shift 12
|
||||
|
||||
value goto 32
|
||||
function goto 31
|
||||
value goto 40
|
||||
function goto 37
|
||||
|
||||
|
||||
state 19
|
||||
state 23
|
||||
statement_list : statement_list . statement
|
||||
statement : BEGIN_CS statement_list . END_CS
|
||||
|
||||
STOP shift 3
|
||||
IF shift 4
|
||||
PAUSE shift 5
|
||||
PRINT shift 6
|
||||
END_STMT shift 7
|
||||
BEGIN_CS shift 8
|
||||
END_CS shift 33
|
||||
VARIABLE shift 9
|
||||
FUNCTION shift 10
|
||||
WHILE shift 5
|
||||
DO shift 6
|
||||
PAUSE shift 7
|
||||
PRINT shift 8
|
||||
END_STMT shift 9
|
||||
BEGIN_CS shift 10
|
||||
END_CS shift 41
|
||||
VARIABLE shift 11
|
||||
FUNCTION shift 12
|
||||
|
||||
statement goto 11
|
||||
assign_expression goto 12
|
||||
variable goto 13
|
||||
function goto 14
|
||||
statement goto 13
|
||||
assign_expression goto 14
|
||||
variable goto 15
|
||||
function goto 16
|
||||
|
||||
|
||||
state 20
|
||||
state 24
|
||||
function : FUNCTION OPEN_PAR . $$1 CLOSE_PAR
|
||||
$$1 : . (24)
|
||||
$$1 : . (31)
|
||||
|
||||
. reduce 24
|
||||
. reduce 31
|
||||
|
||||
$$1 goto 34
|
||||
$$1 goto 42
|
||||
|
||||
|
||||
state 21
|
||||
state 25
|
||||
statement : assign_expression END_STMT . (8)
|
||||
|
||||
. reduce 8
|
||||
|
||||
|
||||
state 22
|
||||
state 26
|
||||
assign_expression : variable ASSIGN . value
|
||||
|
||||
VARIABLE shift 25
|
||||
VALUE shift 26
|
||||
FUNCTION shift 10
|
||||
VARIABLE shift 29
|
||||
VALUE shift 30
|
||||
FUNCTION shift 12
|
||||
|
||||
value goto 35
|
||||
function goto 31
|
||||
value goto 43
|
||||
function goto 37
|
||||
|
||||
|
||||
state 23
|
||||
statement : function END_STMT . (12)
|
||||
state 27
|
||||
statement : function END_STMT . (14)
|
||||
|
||||
. reduce 12
|
||||
. reduce 14
|
||||
|
||||
|
||||
state 24
|
||||
state 28
|
||||
expression : OPEN_PAR . expression CLOSE_PAR
|
||||
|
||||
OPEN_PAR shift 24
|
||||
VARIABLE shift 25
|
||||
VALUE shift 26
|
||||
FUNCTION shift 10
|
||||
OPEN_PAR shift 28
|
||||
VARIABLE shift 29
|
||||
VALUE shift 30
|
||||
FUNCTION shift 12
|
||||
|
||||
expression goto 36
|
||||
equal_expression goto 28
|
||||
notequal_expression goto 29
|
||||
value goto 30
|
||||
function goto 31
|
||||
expression goto 44
|
||||
equal_expression goto 32
|
||||
notequal_expression goto 33
|
||||
lessthan_expression goto 34
|
||||
greaterthan_expression goto 35
|
||||
value goto 36
|
||||
function goto 37
|
||||
|
||||
|
||||
state 25
|
||||
value : VARIABLE . (21)
|
||||
state 29
|
||||
value : VARIABLE . (27)
|
||||
|
||||
. reduce 21
|
||||
. reduce 27
|
||||
|
||||
|
||||
state 26
|
||||
value : VALUE . (20)
|
||||
state 30
|
||||
value : VALUE . (26)
|
||||
|
||||
. reduce 26
|
||||
|
||||
|
||||
state 31
|
||||
statement : IF OPEN_PAR expression . CLOSE_PAR statement
|
||||
statement : IF OPEN_PAR expression . CLOSE_PAR statement ELSE statement
|
||||
|
||||
CLOSE_PAR shift 45
|
||||
|
||||
|
||||
state 32
|
||||
expression : equal_expression . (17)
|
||||
|
||||
. reduce 17
|
||||
|
||||
|
||||
state 33
|
||||
expression : notequal_expression . (18)
|
||||
|
||||
. reduce 18
|
||||
|
||||
|
||||
state 34
|
||||
expression : lessthan_expression . (19)
|
||||
|
||||
. reduce 19
|
||||
|
||||
|
||||
state 35
|
||||
expression : greaterthan_expression . (20)
|
||||
|
||||
. reduce 20
|
||||
|
||||
|
||||
state 27
|
||||
statement : IF OPEN_PAR expression . CLOSE_PAR statement
|
||||
statement : IF OPEN_PAR expression . CLOSE_PAR statement ELSE statement
|
||||
|
||||
CLOSE_PAR shift 37
|
||||
|
||||
|
||||
state 28
|
||||
expression : equal_expression . (15)
|
||||
|
||||
. reduce 15
|
||||
|
||||
|
||||
state 29
|
||||
expression : notequal_expression . (16)
|
||||
|
||||
. reduce 16
|
||||
|
||||
|
||||
state 30
|
||||
state 36
|
||||
equal_expression : value . EQUAL value
|
||||
notequal_expression : value . NOTEQUAL value
|
||||
lessthan_expression : value . LESSTHAN value
|
||||
greaterthan_expression : value . GREATERTHAN value
|
||||
value : value . PLUS value
|
||||
value : value . SUBTRACT value
|
||||
|
||||
EQUAL shift 38
|
||||
NOTEQUAL shift 39
|
||||
PLUS shift 40
|
||||
|
||||
|
||||
state 31
|
||||
value : function . (23)
|
||||
|
||||
. reduce 23
|
||||
|
||||
|
||||
state 32
|
||||
statement : PRINT OPEN_PAR value . CLOSE_PAR END_STMT
|
||||
value : value . PLUS value
|
||||
|
||||
PLUS shift 40
|
||||
CLOSE_PAR shift 41
|
||||
|
||||
|
||||
state 33
|
||||
statement : BEGIN_CS statement_list END_CS . (11)
|
||||
|
||||
. reduce 11
|
||||
|
||||
|
||||
state 34
|
||||
function : FUNCTION OPEN_PAR $$1 . CLOSE_PAR
|
||||
|
||||
CLOSE_PAR shift 42
|
||||
|
||||
|
||||
state 35
|
||||
assign_expression : variable ASSIGN value . (13)
|
||||
value : value . PLUS value
|
||||
|
||||
PLUS shift 40
|
||||
. reduce 13
|
||||
|
||||
|
||||
state 36
|
||||
expression : OPEN_PAR expression . CLOSE_PAR
|
||||
|
||||
CLOSE_PAR shift 43
|
||||
EQUAL shift 46
|
||||
NOTEQUAL shift 47
|
||||
LESSTHAN shift 48
|
||||
GREATERTHAN shift 49
|
||||
PLUS shift 50
|
||||
SUBTRACT shift 51
|
||||
|
||||
|
||||
state 37
|
||||
value : function . (30)
|
||||
|
||||
. reduce 30
|
||||
|
||||
|
||||
state 38
|
||||
statement : WHILE OPEN_PAR expression . CLOSE_PAR statement
|
||||
|
||||
CLOSE_PAR shift 52
|
||||
|
||||
|
||||
state 39
|
||||
statement : DO statement WHILE . OPEN_PAR expression CLOSE_PAR END_STMT
|
||||
|
||||
OPEN_PAR shift 53
|
||||
|
||||
|
||||
state 40
|
||||
statement : PRINT OPEN_PAR value . CLOSE_PAR END_STMT
|
||||
value : value . PLUS value
|
||||
value : value . SUBTRACT value
|
||||
|
||||
PLUS shift 50
|
||||
SUBTRACT shift 51
|
||||
CLOSE_PAR shift 54
|
||||
|
||||
|
||||
state 41
|
||||
statement : BEGIN_CS statement_list END_CS . (13)
|
||||
|
||||
. reduce 13
|
||||
|
||||
|
||||
state 42
|
||||
function : FUNCTION OPEN_PAR $$1 . CLOSE_PAR
|
||||
|
||||
CLOSE_PAR shift 55
|
||||
|
||||
|
||||
state 43
|
||||
assign_expression : variable ASSIGN value . (15)
|
||||
value : value . PLUS value
|
||||
value : value . SUBTRACT value
|
||||
|
||||
PLUS shift 50
|
||||
SUBTRACT shift 51
|
||||
. reduce 15
|
||||
|
||||
|
||||
state 44
|
||||
expression : OPEN_PAR expression . CLOSE_PAR
|
||||
|
||||
CLOSE_PAR shift 56
|
||||
|
||||
|
||||
state 45
|
||||
statement : IF OPEN_PAR expression CLOSE_PAR . statement
|
||||
statement : IF OPEN_PAR expression CLOSE_PAR . statement ELSE statement
|
||||
|
||||
STOP shift 3
|
||||
IF shift 4
|
||||
PAUSE shift 5
|
||||
PRINT shift 6
|
||||
END_STMT shift 7
|
||||
BEGIN_CS shift 8
|
||||
VARIABLE shift 9
|
||||
FUNCTION shift 10
|
||||
WHILE shift 5
|
||||
DO shift 6
|
||||
PAUSE shift 7
|
||||
PRINT shift 8
|
||||
END_STMT shift 9
|
||||
BEGIN_CS shift 10
|
||||
VARIABLE shift 11
|
||||
FUNCTION shift 12
|
||||
|
||||
statement goto 44
|
||||
assign_expression goto 12
|
||||
variable goto 13
|
||||
function goto 14
|
||||
|
||||
|
||||
state 38
|
||||
equal_expression : value EQUAL . value
|
||||
|
||||
VARIABLE shift 25
|
||||
VALUE shift 26
|
||||
FUNCTION shift 10
|
||||
|
||||
value goto 45
|
||||
function goto 31
|
||||
|
||||
|
||||
state 39
|
||||
notequal_expression : value NOTEQUAL . value
|
||||
|
||||
VARIABLE shift 25
|
||||
VALUE shift 26
|
||||
FUNCTION shift 10
|
||||
|
||||
value goto 46
|
||||
function goto 31
|
||||
|
||||
|
||||
state 40
|
||||
value : value PLUS . value
|
||||
|
||||
VARIABLE shift 25
|
||||
VALUE shift 26
|
||||
FUNCTION shift 10
|
||||
|
||||
value goto 47
|
||||
function goto 31
|
||||
|
||||
|
||||
state 41
|
||||
statement : PRINT OPEN_PAR value CLOSE_PAR . END_STMT
|
||||
|
||||
END_STMT shift 48
|
||||
|
||||
|
||||
state 42
|
||||
function : FUNCTION OPEN_PAR $$1 CLOSE_PAR . (25)
|
||||
|
||||
. reduce 25
|
||||
|
||||
|
||||
state 43
|
||||
expression : OPEN_PAR expression CLOSE_PAR . (14)
|
||||
|
||||
. reduce 14
|
||||
|
||||
|
||||
44: shift-reduce conflict (shift 49, reduce 9) on ELSE
|
||||
state 44
|
||||
statement : IF OPEN_PAR expression CLOSE_PAR statement . (9)
|
||||
statement : IF OPEN_PAR expression CLOSE_PAR statement . ELSE statement
|
||||
|
||||
ELSE shift 49
|
||||
. reduce 9
|
||||
|
||||
|
||||
state 45
|
||||
equal_expression : value EQUAL value . (17)
|
||||
value : value . PLUS value
|
||||
|
||||
PLUS shift 40
|
||||
. reduce 17
|
||||
statement goto 57
|
||||
assign_expression goto 14
|
||||
variable goto 15
|
||||
function goto 16
|
||||
|
||||
|
||||
state 46
|
||||
notequal_expression : value NOTEQUAL value . (18)
|
||||
value : value . PLUS value
|
||||
equal_expression : value EQUAL . value
|
||||
|
||||
PLUS shift 40
|
||||
. reduce 18
|
||||
VARIABLE shift 29
|
||||
VALUE shift 30
|
||||
FUNCTION shift 12
|
||||
|
||||
value goto 58
|
||||
function goto 37
|
||||
|
||||
|
||||
47: shift-reduce conflict (shift 40, reduce 22) on PLUS
|
||||
state 47
|
||||
value : value PLUS value . (22)
|
||||
value : value . PLUS value
|
||||
notequal_expression : value NOTEQUAL . value
|
||||
|
||||
PLUS shift 40
|
||||
. reduce 22
|
||||
VARIABLE shift 29
|
||||
VALUE shift 30
|
||||
FUNCTION shift 12
|
||||
|
||||
value goto 59
|
||||
function goto 37
|
||||
|
||||
|
||||
state 48
|
||||
lessthan_expression : value LESSTHAN . value
|
||||
|
||||
VARIABLE shift 29
|
||||
VALUE shift 30
|
||||
FUNCTION shift 12
|
||||
|
||||
value goto 60
|
||||
function goto 37
|
||||
|
||||
|
||||
state 49
|
||||
greaterthan_expression : value GREATERTHAN . value
|
||||
|
||||
VARIABLE shift 29
|
||||
VALUE shift 30
|
||||
FUNCTION shift 12
|
||||
|
||||
value goto 61
|
||||
function goto 37
|
||||
|
||||
|
||||
state 50
|
||||
value : value PLUS . value
|
||||
|
||||
VARIABLE shift 29
|
||||
VALUE shift 30
|
||||
FUNCTION shift 12
|
||||
|
||||
value goto 62
|
||||
function goto 37
|
||||
|
||||
|
||||
state 51
|
||||
value : value SUBTRACT . value
|
||||
|
||||
VARIABLE shift 29
|
||||
VALUE shift 30
|
||||
FUNCTION shift 12
|
||||
|
||||
value goto 63
|
||||
function goto 37
|
||||
|
||||
|
||||
state 52
|
||||
statement : WHILE OPEN_PAR expression CLOSE_PAR . statement
|
||||
|
||||
STOP shift 3
|
||||
IF shift 4
|
||||
WHILE shift 5
|
||||
DO shift 6
|
||||
PAUSE shift 7
|
||||
PRINT shift 8
|
||||
END_STMT shift 9
|
||||
BEGIN_CS shift 10
|
||||
VARIABLE shift 11
|
||||
FUNCTION shift 12
|
||||
|
||||
statement goto 64
|
||||
assign_expression goto 14
|
||||
variable goto 15
|
||||
function goto 16
|
||||
|
||||
|
||||
state 53
|
||||
statement : DO statement WHILE OPEN_PAR . expression CLOSE_PAR END_STMT
|
||||
|
||||
OPEN_PAR shift 28
|
||||
VARIABLE shift 29
|
||||
VALUE shift 30
|
||||
FUNCTION shift 12
|
||||
|
||||
expression goto 65
|
||||
equal_expression goto 32
|
||||
notequal_expression goto 33
|
||||
lessthan_expression goto 34
|
||||
greaterthan_expression goto 35
|
||||
value goto 36
|
||||
function goto 37
|
||||
|
||||
|
||||
state 54
|
||||
statement : PRINT OPEN_PAR value CLOSE_PAR . END_STMT
|
||||
|
||||
END_STMT shift 66
|
||||
|
||||
|
||||
state 55
|
||||
function : FUNCTION OPEN_PAR $$1 CLOSE_PAR . (32)
|
||||
|
||||
. reduce 32
|
||||
|
||||
|
||||
state 56
|
||||
expression : OPEN_PAR expression CLOSE_PAR . (16)
|
||||
|
||||
. reduce 16
|
||||
|
||||
|
||||
57: shift-reduce conflict (shift 67, reduce 9) on ELSE
|
||||
state 57
|
||||
statement : IF OPEN_PAR expression CLOSE_PAR statement . (9)
|
||||
statement : IF OPEN_PAR expression CLOSE_PAR statement . ELSE statement
|
||||
|
||||
ELSE shift 67
|
||||
. reduce 9
|
||||
|
||||
|
||||
state 58
|
||||
equal_expression : value EQUAL value . (21)
|
||||
value : value . PLUS value
|
||||
value : value . SUBTRACT value
|
||||
|
||||
PLUS shift 50
|
||||
SUBTRACT shift 51
|
||||
. reduce 21
|
||||
|
||||
|
||||
state 59
|
||||
notequal_expression : value NOTEQUAL value . (22)
|
||||
value : value . PLUS value
|
||||
value : value . SUBTRACT value
|
||||
|
||||
PLUS shift 50
|
||||
SUBTRACT shift 51
|
||||
. reduce 22
|
||||
|
||||
|
||||
state 60
|
||||
lessthan_expression : value LESSTHAN value . (23)
|
||||
value : value . PLUS value
|
||||
value : value . SUBTRACT value
|
||||
|
||||
PLUS shift 50
|
||||
SUBTRACT shift 51
|
||||
. reduce 23
|
||||
|
||||
|
||||
state 61
|
||||
greaterthan_expression : value GREATERTHAN value . (24)
|
||||
value : value . PLUS value
|
||||
value : value . SUBTRACT value
|
||||
|
||||
PLUS shift 50
|
||||
SUBTRACT shift 51
|
||||
. reduce 24
|
||||
|
||||
|
||||
62: shift-reduce conflict (shift 50, reduce 28) on PLUS
|
||||
62: shift-reduce conflict (shift 51, reduce 28) on SUBTRACT
|
||||
state 62
|
||||
value : value PLUS value . (28)
|
||||
value : value . PLUS value
|
||||
value : value . SUBTRACT value
|
||||
|
||||
PLUS shift 50
|
||||
SUBTRACT shift 51
|
||||
. reduce 28
|
||||
|
||||
|
||||
63: shift-reduce conflict (shift 50, reduce 29) on PLUS
|
||||
63: shift-reduce conflict (shift 51, reduce 29) on SUBTRACT
|
||||
state 63
|
||||
value : value . PLUS value
|
||||
value : value SUBTRACT value . (29)
|
||||
value : value . SUBTRACT value
|
||||
|
||||
PLUS shift 50
|
||||
SUBTRACT shift 51
|
||||
. reduce 29
|
||||
|
||||
|
||||
state 64
|
||||
statement : WHILE OPEN_PAR expression CLOSE_PAR statement . (11)
|
||||
|
||||
. reduce 11
|
||||
|
||||
|
||||
state 65
|
||||
statement : DO statement WHILE OPEN_PAR expression . CLOSE_PAR END_STMT
|
||||
|
||||
CLOSE_PAR shift 68
|
||||
|
||||
|
||||
state 66
|
||||
statement : PRINT OPEN_PAR value CLOSE_PAR END_STMT . (7)
|
||||
|
||||
. reduce 7
|
||||
|
||||
|
||||
state 49
|
||||
state 67
|
||||
statement : IF OPEN_PAR expression CLOSE_PAR statement ELSE . statement
|
||||
|
||||
STOP shift 3
|
||||
IF shift 4
|
||||
PAUSE shift 5
|
||||
PRINT shift 6
|
||||
END_STMT shift 7
|
||||
BEGIN_CS shift 8
|
||||
VARIABLE shift 9
|
||||
FUNCTION shift 10
|
||||
WHILE shift 5
|
||||
DO shift 6
|
||||
PAUSE shift 7
|
||||
PRINT shift 8
|
||||
END_STMT shift 9
|
||||
BEGIN_CS shift 10
|
||||
VARIABLE shift 11
|
||||
FUNCTION shift 12
|
||||
|
||||
statement goto 50
|
||||
assign_expression goto 12
|
||||
variable goto 13
|
||||
function goto 14
|
||||
statement goto 69
|
||||
assign_expression goto 14
|
||||
variable goto 15
|
||||
function goto 16
|
||||
|
||||
|
||||
state 50
|
||||
state 68
|
||||
statement : DO statement WHILE OPEN_PAR expression CLOSE_PAR . END_STMT
|
||||
|
||||
END_STMT shift 70
|
||||
|
||||
|
||||
state 69
|
||||
statement : IF OPEN_PAR expression CLOSE_PAR statement ELSE statement . (10)
|
||||
|
||||
. reduce 10
|
||||
|
||||
|
||||
State 44 contains 1 shift-reduce conflict
|
||||
State 47 contains 1 shift-reduce conflict
|
||||
state 70
|
||||
statement : DO statement WHILE OPEN_PAR expression CLOSE_PAR END_STMT . (12)
|
||||
|
||||
. reduce 12
|
||||
|
||||
|
||||
19 tokens, 12 nonterminals
|
||||
26 grammar rules, 51 states
|
||||
State 57 contains 1 shift-reduce conflict
|
||||
State 62 contains 2 shift-reduce conflicts
|
||||
State 63 contains 2 shift-reduce conflicts
|
||||
|
||||
|
||||
24 tokens, 14 nonterminals
|
||||
33 grammar rules, 71 states
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue