380a6c91bc
Among all the modifications, this new byacc also solves a 14 year old bug [1] PR: bin/23254 [1] Submitted by: marka@nominum.com [1] MFC after: 3 weeks
950 lines
17 KiB
Plaintext
950 lines
17 KiB
Plaintext
0 $accept : lines $end
|
||
|
||
1 lines :
|
||
2 | lines line '\n'
|
||
3 | lines error '\n'
|
||
|
||
4 line : dexp
|
||
5 | vexp
|
||
6 | DREG '=' dexp
|
||
7 | VREG '=' vexp
|
||
|
||
8 dexp : CONST
|
||
9 | DREG
|
||
10 | dexp '+' dexp
|
||
11 | dexp '-' dexp
|
||
12 | dexp '*' dexp
|
||
13 | dexp '/' dexp
|
||
14 | '-' dexp
|
||
15 | '(' dexp ')'
|
||
|
||
16 vexp : dexp
|
||
17 | '(' dexp ',' dexp ')'
|
||
18 | VREG
|
||
19 | vexp '+' vexp
|
||
20 | dexp '+' vexp
|
||
21 | vexp '-' vexp
|
||
22 | dexp '-' vexp
|
||
23 | vexp '*' vexp
|
||
24 | dexp '*' vexp
|
||
25 | vexp '/' vexp
|
||
26 | dexp '/' vexp
|
||
27 | '-' vexp
|
||
28 | '(' vexp ')'
|
||
|
||
state 0
|
||
$accept : . lines $end (0)
|
||
lines : . (1)
|
||
|
||
. reduce 1
|
||
|
||
lines goto 1
|
||
|
||
|
||
state 1
|
||
$accept : lines . $end (0)
|
||
lines : lines . line '\n' (2)
|
||
lines : lines . error '\n' (3)
|
||
|
||
$end accept
|
||
error shift 2
|
||
DREG shift 3
|
||
VREG shift 4
|
||
CONST shift 5
|
||
'-' shift 6
|
||
'(' shift 7
|
||
. error
|
||
|
||
dexp goto 8
|
||
vexp goto 9
|
||
line goto 10
|
||
|
||
|
||
state 2
|
||
lines : lines error . '\n' (3)
|
||
|
||
'\n' shift 11
|
||
. error
|
||
|
||
|
||
state 3
|
||
line : DREG . '=' dexp (6)
|
||
dexp : DREG . (9)
|
||
|
||
'=' shift 12
|
||
'+' reduce 9
|
||
'-' reduce 9
|
||
'*' reduce 9
|
||
'/' reduce 9
|
||
'\n' reduce 9
|
||
|
||
|
||
state 4
|
||
line : VREG . '=' vexp (7)
|
||
vexp : VREG . (18)
|
||
|
||
'=' shift 13
|
||
'+' reduce 18
|
||
'-' reduce 18
|
||
'*' reduce 18
|
||
'/' reduce 18
|
||
'\n' reduce 18
|
||
|
||
|
||
state 5
|
||
dexp : CONST . (8)
|
||
|
||
. reduce 8
|
||
|
||
|
||
state 6
|
||
dexp : '-' . dexp (14)
|
||
vexp : '-' . vexp (27)
|
||
|
||
DREG shift 14
|
||
VREG shift 15
|
||
CONST shift 5
|
||
'-' shift 6
|
||
'(' shift 7
|
||
. error
|
||
|
||
dexp goto 16
|
||
vexp goto 17
|
||
|
||
|
||
state 7
|
||
dexp : '(' . dexp ')' (15)
|
||
vexp : '(' . dexp ',' dexp ')' (17)
|
||
vexp : '(' . vexp ')' (28)
|
||
|
||
DREG shift 14
|
||
VREG shift 15
|
||
CONST shift 5
|
||
'-' shift 6
|
||
'(' shift 7
|
||
. error
|
||
|
||
dexp goto 18
|
||
vexp goto 19
|
||
|
||
|
||
8: shift/reduce conflict (shift 20, reduce 16) on '+'
|
||
8: shift/reduce conflict (shift 21, reduce 16) on '-'
|
||
8: shift/reduce conflict (shift 22, reduce 16) on '*'
|
||
8: shift/reduce conflict (shift 23, reduce 16) on '/'
|
||
8: reduce/reduce conflict (reduce 4, reduce 16) on '\n'
|
||
state 8
|
||
line : dexp . (4)
|
||
dexp : dexp . '+' dexp (10)
|
||
dexp : dexp . '-' dexp (11)
|
||
dexp : dexp . '*' dexp (12)
|
||
dexp : dexp . '/' dexp (13)
|
||
vexp : dexp . (16)
|
||
vexp : dexp . '+' vexp (20)
|
||
vexp : dexp . '-' vexp (22)
|
||
vexp : dexp . '*' vexp (24)
|
||
vexp : dexp . '/' vexp (26)
|
||
|
||
'+' [trial] shift 20
|
||
'-' [trial] shift 21
|
||
'*' [trial] shift 22
|
||
'/' [trial] shift 23
|
||
'+' [trial] reduce 16
|
||
'-' [trial] reduce 16
|
||
'*' [trial] reduce 16
|
||
'/' [trial] reduce 16
|
||
'\n' [trial] reduce 4
|
||
'\n' [trial] reduce 16
|
||
|
||
|
||
state 9
|
||
line : vexp . (5)
|
||
vexp : vexp . '+' vexp (19)
|
||
vexp : vexp . '-' vexp (21)
|
||
vexp : vexp . '*' vexp (23)
|
||
vexp : vexp . '/' vexp (25)
|
||
|
||
'+' shift 24
|
||
'-' shift 25
|
||
'*' shift 26
|
||
'/' shift 27
|
||
'\n' reduce 5
|
||
|
||
|
||
state 10
|
||
lines : lines line . '\n' (2)
|
||
|
||
'\n' shift 28
|
||
. error
|
||
|
||
|
||
state 11
|
||
lines : lines error '\n' . (3)
|
||
|
||
. reduce 3
|
||
|
||
|
||
state 12
|
||
line : DREG '=' . dexp (6)
|
||
|
||
DREG shift 14
|
||
CONST shift 5
|
||
'-' shift 29
|
||
'(' shift 30
|
||
. error
|
||
|
||
dexp goto 31
|
||
|
||
|
||
state 13
|
||
line : VREG '=' . vexp (7)
|
||
|
||
DREG shift 14
|
||
VREG shift 15
|
||
CONST shift 5
|
||
'-' shift 6
|
||
'(' shift 7
|
||
. error
|
||
|
||
dexp goto 32
|
||
vexp goto 33
|
||
|
||
|
||
state 14
|
||
dexp : DREG . (9)
|
||
|
||
. reduce 9
|
||
|
||
|
||
state 15
|
||
vexp : VREG . (18)
|
||
|
||
. reduce 18
|
||
|
||
|
||
16: reduce/reduce conflict (reduce 14, reduce 16) on '+'
|
||
16: reduce/reduce conflict (reduce 14, reduce 16) on '-'
|
||
16: reduce/reduce conflict (reduce 14, reduce 16) on '*'
|
||
16: reduce/reduce conflict (reduce 14, reduce 16) on '/'
|
||
16: reduce/reduce conflict (reduce 14, reduce 16) on '\n'
|
||
16: reduce/reduce conflict (reduce 14, reduce 16) on ')'
|
||
state 16
|
||
dexp : dexp . '+' dexp (10)
|
||
dexp : dexp . '-' dexp (11)
|
||
dexp : dexp . '*' dexp (12)
|
||
dexp : dexp . '/' dexp (13)
|
||
dexp : '-' dexp . (14)
|
||
vexp : dexp . (16)
|
||
vexp : dexp . '+' vexp (20)
|
||
vexp : dexp . '-' vexp (22)
|
||
vexp : dexp . '*' vexp (24)
|
||
vexp : dexp . '/' vexp (26)
|
||
|
||
'+' [trial] reduce 14
|
||
'+' [trial] reduce 16
|
||
'-' [trial] reduce 14
|
||
'-' [trial] reduce 16
|
||
'*' [trial] reduce 14
|
||
'*' [trial] reduce 16
|
||
'/' [trial] reduce 14
|
||
'/' [trial] reduce 16
|
||
'\n' [trial] reduce 14
|
||
'\n' [trial] reduce 16
|
||
')' [trial] reduce 14
|
||
')' [trial] reduce 16
|
||
',' reduce 14
|
||
|
||
|
||
state 17
|
||
vexp : vexp . '+' vexp (19)
|
||
vexp : vexp . '-' vexp (21)
|
||
vexp : vexp . '*' vexp (23)
|
||
vexp : vexp . '/' vexp (25)
|
||
vexp : '-' vexp . (27)
|
||
|
||
. reduce 27
|
||
|
||
|
||
18: shift/reduce conflict (shift 20, reduce 16) on '+'
|
||
18: shift/reduce conflict (shift 21, reduce 16) on '-'
|
||
18: shift/reduce conflict (shift 22, reduce 16) on '*'
|
||
18: shift/reduce conflict (shift 23, reduce 16) on '/'
|
||
18: shift/reduce conflict (shift 34, reduce 16) on ')'
|
||
state 18
|
||
dexp : dexp . '+' dexp (10)
|
||
dexp : dexp . '-' dexp (11)
|
||
dexp : dexp . '*' dexp (12)
|
||
dexp : dexp . '/' dexp (13)
|
||
dexp : '(' dexp . ')' (15)
|
||
vexp : dexp . (16)
|
||
vexp : '(' dexp . ',' dexp ')' (17)
|
||
vexp : dexp . '+' vexp (20)
|
||
vexp : dexp . '-' vexp (22)
|
||
vexp : dexp . '*' vexp (24)
|
||
vexp : dexp . '/' vexp (26)
|
||
|
||
'+' [trial] shift 20
|
||
'-' [trial] shift 21
|
||
'*' [trial] shift 22
|
||
'/' [trial] shift 23
|
||
')' [trial] shift 34
|
||
',' shift 35
|
||
'+' [trial] reduce 16
|
||
'-' [trial] reduce 16
|
||
'*' [trial] reduce 16
|
||
'/' [trial] reduce 16
|
||
')' [trial] reduce 16
|
||
|
||
|
||
state 19
|
||
vexp : vexp . '+' vexp (19)
|
||
vexp : vexp . '-' vexp (21)
|
||
vexp : vexp . '*' vexp (23)
|
||
vexp : vexp . '/' vexp (25)
|
||
vexp : '(' vexp . ')' (28)
|
||
|
||
'+' shift 24
|
||
'-' shift 25
|
||
'*' shift 26
|
||
'/' shift 27
|
||
')' shift 36
|
||
. error
|
||
|
||
|
||
state 20
|
||
dexp : dexp '+' . dexp (10)
|
||
vexp : dexp '+' . vexp (20)
|
||
|
||
DREG shift 14
|
||
VREG shift 15
|
||
CONST shift 5
|
||
'-' shift 6
|
||
'(' shift 7
|
||
. error
|
||
|
||
dexp goto 37
|
||
vexp goto 38
|
||
|
||
|
||
state 21
|
||
dexp : dexp '-' . dexp (11)
|
||
vexp : dexp '-' . vexp (22)
|
||
|
||
DREG shift 14
|
||
VREG shift 15
|
||
CONST shift 5
|
||
'-' shift 6
|
||
'(' shift 7
|
||
. error
|
||
|
||
dexp goto 39
|
||
vexp goto 40
|
||
|
||
|
||
state 22
|
||
dexp : dexp '*' . dexp (12)
|
||
vexp : dexp '*' . vexp (24)
|
||
|
||
DREG shift 14
|
||
VREG shift 15
|
||
CONST shift 5
|
||
'-' shift 6
|
||
'(' shift 7
|
||
. error
|
||
|
||
dexp goto 41
|
||
vexp goto 42
|
||
|
||
|
||
state 23
|
||
dexp : dexp '/' . dexp (13)
|
||
vexp : dexp '/' . vexp (26)
|
||
|
||
DREG shift 14
|
||
VREG shift 15
|
||
CONST shift 5
|
||
'-' shift 6
|
||
'(' shift 7
|
||
. error
|
||
|
||
dexp goto 43
|
||
vexp goto 44
|
||
|
||
|
||
state 24
|
||
vexp : vexp '+' . vexp (19)
|
||
|
||
DREG shift 14
|
||
VREG shift 15
|
||
CONST shift 5
|
||
'-' shift 6
|
||
'(' shift 7
|
||
. error
|
||
|
||
dexp goto 32
|
||
vexp goto 45
|
||
|
||
|
||
state 25
|
||
vexp : vexp '-' . vexp (21)
|
||
|
||
DREG shift 14
|
||
VREG shift 15
|
||
CONST shift 5
|
||
'-' shift 6
|
||
'(' shift 7
|
||
. error
|
||
|
||
dexp goto 32
|
||
vexp goto 46
|
||
|
||
|
||
state 26
|
||
vexp : vexp '*' . vexp (23)
|
||
|
||
DREG shift 14
|
||
VREG shift 15
|
||
CONST shift 5
|
||
'-' shift 6
|
||
'(' shift 7
|
||
. error
|
||
|
||
dexp goto 32
|
||
vexp goto 47
|
||
|
||
|
||
state 27
|
||
vexp : vexp '/' . vexp (25)
|
||
|
||
DREG shift 14
|
||
VREG shift 15
|
||
CONST shift 5
|
||
'-' shift 6
|
||
'(' shift 7
|
||
. error
|
||
|
||
dexp goto 32
|
||
vexp goto 48
|
||
|
||
|
||
state 28
|
||
lines : lines line '\n' . (2)
|
||
|
||
. reduce 2
|
||
|
||
|
||
state 29
|
||
dexp : '-' . dexp (14)
|
||
|
||
DREG shift 14
|
||
CONST shift 5
|
||
'-' shift 29
|
||
'(' shift 30
|
||
. error
|
||
|
||
dexp goto 49
|
||
|
||
|
||
state 30
|
||
dexp : '(' . dexp ')' (15)
|
||
|
||
DREG shift 14
|
||
CONST shift 5
|
||
'-' shift 29
|
||
'(' shift 30
|
||
. error
|
||
|
||
dexp goto 50
|
||
|
||
|
||
state 31
|
||
line : DREG '=' dexp . (6)
|
||
dexp : dexp . '+' dexp (10)
|
||
dexp : dexp . '-' dexp (11)
|
||
dexp : dexp . '*' dexp (12)
|
||
dexp : dexp . '/' dexp (13)
|
||
|
||
'+' shift 51
|
||
'-' shift 52
|
||
'*' shift 53
|
||
'/' shift 54
|
||
'\n' reduce 6
|
||
|
||
|
||
32: shift/reduce conflict (shift 20, reduce 16) on '+'
|
||
32: shift/reduce conflict (shift 21, reduce 16) on '-'
|
||
32: shift/reduce conflict (shift 22, reduce 16) on '*'
|
||
32: shift/reduce conflict (shift 23, reduce 16) on '/'
|
||
state 32
|
||
dexp : dexp . '+' dexp (10)
|
||
dexp : dexp . '-' dexp (11)
|
||
dexp : dexp . '*' dexp (12)
|
||
dexp : dexp . '/' dexp (13)
|
||
vexp : dexp . (16)
|
||
vexp : dexp . '+' vexp (20)
|
||
vexp : dexp . '-' vexp (22)
|
||
vexp : dexp . '*' vexp (24)
|
||
vexp : dexp . '/' vexp (26)
|
||
|
||
'+' [trial] shift 20
|
||
'-' [trial] shift 21
|
||
'*' [trial] shift 22
|
||
'/' [trial] shift 23
|
||
'+' [trial] reduce 16
|
||
'-' [trial] reduce 16
|
||
'*' [trial] reduce 16
|
||
'/' [trial] reduce 16
|
||
'\n' reduce 16
|
||
')' reduce 16
|
||
|
||
|
||
state 33
|
||
line : VREG '=' vexp . (7)
|
||
vexp : vexp . '+' vexp (19)
|
||
vexp : vexp . '-' vexp (21)
|
||
vexp : vexp . '*' vexp (23)
|
||
vexp : vexp . '/' vexp (25)
|
||
|
||
'+' shift 24
|
||
'-' shift 25
|
||
'*' shift 26
|
||
'/' shift 27
|
||
'\n' reduce 7
|
||
|
||
|
||
state 34
|
||
dexp : '(' dexp ')' . (15)
|
||
|
||
. reduce 15
|
||
|
||
|
||
state 35
|
||
vexp : '(' dexp ',' . dexp ')' (17)
|
||
|
||
DREG shift 14
|
||
CONST shift 5
|
||
'-' shift 29
|
||
'(' shift 30
|
||
. error
|
||
|
||
dexp goto 55
|
||
|
||
|
||
state 36
|
||
vexp : '(' vexp ')' . (28)
|
||
|
||
. reduce 28
|
||
|
||
|
||
37: reduce/reduce conflict (reduce 10, reduce 16) on '+'
|
||
37: reduce/reduce conflict (reduce 10, reduce 16) on '-'
|
||
37: shift/reduce conflict (shift 22, reduce 16) on '*'
|
||
37: shift/reduce conflict (shift 23, reduce 16) on '/'
|
||
37: reduce/reduce conflict (reduce 10, reduce 16) on '\n'
|
||
37: reduce/reduce conflict (reduce 10, reduce 16) on ')'
|
||
state 37
|
||
dexp : dexp . '+' dexp (10)
|
||
dexp : dexp '+' dexp . (10)
|
||
dexp : dexp . '-' dexp (11)
|
||
dexp : dexp . '*' dexp (12)
|
||
dexp : dexp . '/' dexp (13)
|
||
vexp : dexp . (16)
|
||
vexp : dexp . '+' vexp (20)
|
||
vexp : dexp . '-' vexp (22)
|
||
vexp : dexp . '*' vexp (24)
|
||
vexp : dexp . '/' vexp (26)
|
||
|
||
'*' [trial] shift 22
|
||
'/' [trial] shift 23
|
||
'+' [trial] reduce 10
|
||
'+' [trial] reduce 16
|
||
'-' [trial] reduce 10
|
||
'-' [trial] reduce 16
|
||
'*' [trial] reduce 16
|
||
'/' [trial] reduce 16
|
||
'\n' [trial] reduce 10
|
||
'\n' [trial] reduce 16
|
||
')' [trial] reduce 10
|
||
')' [trial] reduce 16
|
||
',' reduce 10
|
||
|
||
|
||
state 38
|
||
vexp : vexp . '+' vexp (19)
|
||
vexp : dexp '+' vexp . (20)
|
||
vexp : vexp . '-' vexp (21)
|
||
vexp : vexp . '*' vexp (23)
|
||
vexp : vexp . '/' vexp (25)
|
||
|
||
'*' shift 26
|
||
'/' shift 27
|
||
'+' reduce 20
|
||
'-' reduce 20
|
||
'\n' reduce 20
|
||
')' reduce 20
|
||
|
||
|
||
39: reduce/reduce conflict (reduce 11, reduce 16) on '+'
|
||
39: reduce/reduce conflict (reduce 11, reduce 16) on '-'
|
||
39: shift/reduce conflict (shift 22, reduce 16) on '*'
|
||
39: shift/reduce conflict (shift 23, reduce 16) on '/'
|
||
39: reduce/reduce conflict (reduce 11, reduce 16) on '\n'
|
||
39: reduce/reduce conflict (reduce 11, reduce 16) on ')'
|
||
state 39
|
||
dexp : dexp . '+' dexp (10)
|
||
dexp : dexp . '-' dexp (11)
|
||
dexp : dexp '-' dexp . (11)
|
||
dexp : dexp . '*' dexp (12)
|
||
dexp : dexp . '/' dexp (13)
|
||
vexp : dexp . (16)
|
||
vexp : dexp . '+' vexp (20)
|
||
vexp : dexp . '-' vexp (22)
|
||
vexp : dexp . '*' vexp (24)
|
||
vexp : dexp . '/' vexp (26)
|
||
|
||
'*' [trial] shift 22
|
||
'/' [trial] shift 23
|
||
'+' [trial] reduce 11
|
||
'+' [trial] reduce 16
|
||
'-' [trial] reduce 11
|
||
'-' [trial] reduce 16
|
||
'*' [trial] reduce 16
|
||
'/' [trial] reduce 16
|
||
'\n' [trial] reduce 11
|
||
'\n' [trial] reduce 16
|
||
')' [trial] reduce 11
|
||
')' [trial] reduce 16
|
||
',' reduce 11
|
||
|
||
|
||
state 40
|
||
vexp : vexp . '+' vexp (19)
|
||
vexp : vexp . '-' vexp (21)
|
||
vexp : dexp '-' vexp . (22)
|
||
vexp : vexp . '*' vexp (23)
|
||
vexp : vexp . '/' vexp (25)
|
||
|
||
'*' shift 26
|
||
'/' shift 27
|
||
'+' reduce 22
|
||
'-' reduce 22
|
||
'\n' reduce 22
|
||
')' reduce 22
|
||
|
||
|
||
41: reduce/reduce conflict (reduce 12, reduce 16) on '+'
|
||
41: reduce/reduce conflict (reduce 12, reduce 16) on '-'
|
||
41: reduce/reduce conflict (reduce 12, reduce 16) on '*'
|
||
41: reduce/reduce conflict (reduce 12, reduce 16) on '/'
|
||
41: reduce/reduce conflict (reduce 12, reduce 16) on '\n'
|
||
41: reduce/reduce conflict (reduce 12, reduce 16) on ')'
|
||
state 41
|
||
dexp : dexp . '+' dexp (10)
|
||
dexp : dexp . '-' dexp (11)
|
||
dexp : dexp . '*' dexp (12)
|
||
dexp : dexp '*' dexp . (12)
|
||
dexp : dexp . '/' dexp (13)
|
||
vexp : dexp . (16)
|
||
vexp : dexp . '+' vexp (20)
|
||
vexp : dexp . '-' vexp (22)
|
||
vexp : dexp . '*' vexp (24)
|
||
vexp : dexp . '/' vexp (26)
|
||
|
||
'+' [trial] reduce 12
|
||
'+' [trial] reduce 16
|
||
'-' [trial] reduce 12
|
||
'-' [trial] reduce 16
|
||
'*' [trial] reduce 12
|
||
'*' [trial] reduce 16
|
||
'/' [trial] reduce 12
|
||
'/' [trial] reduce 16
|
||
'\n' [trial] reduce 12
|
||
'\n' [trial] reduce 16
|
||
')' [trial] reduce 12
|
||
')' [trial] reduce 16
|
||
',' reduce 12
|
||
|
||
|
||
state 42
|
||
vexp : vexp . '+' vexp (19)
|
||
vexp : vexp . '-' vexp (21)
|
||
vexp : vexp . '*' vexp (23)
|
||
vexp : dexp '*' vexp . (24)
|
||
vexp : vexp . '/' vexp (25)
|
||
|
||
. reduce 24
|
||
|
||
|
||
43: reduce/reduce conflict (reduce 13, reduce 16) on '+'
|
||
43: reduce/reduce conflict (reduce 13, reduce 16) on '-'
|
||
43: reduce/reduce conflict (reduce 13, reduce 16) on '*'
|
||
43: reduce/reduce conflict (reduce 13, reduce 16) on '/'
|
||
43: reduce/reduce conflict (reduce 13, reduce 16) on '\n'
|
||
43: reduce/reduce conflict (reduce 13, reduce 16) on ')'
|
||
state 43
|
||
dexp : dexp . '+' dexp (10)
|
||
dexp : dexp . '-' dexp (11)
|
||
dexp : dexp . '*' dexp (12)
|
||
dexp : dexp . '/' dexp (13)
|
||
dexp : dexp '/' dexp . (13)
|
||
vexp : dexp . (16)
|
||
vexp : dexp . '+' vexp (20)
|
||
vexp : dexp . '-' vexp (22)
|
||
vexp : dexp . '*' vexp (24)
|
||
vexp : dexp . '/' vexp (26)
|
||
|
||
'+' [trial] reduce 13
|
||
'+' [trial] reduce 16
|
||
'-' [trial] reduce 13
|
||
'-' [trial] reduce 16
|
||
'*' [trial] reduce 13
|
||
'*' [trial] reduce 16
|
||
'/' [trial] reduce 13
|
||
'/' [trial] reduce 16
|
||
'\n' [trial] reduce 13
|
||
'\n' [trial] reduce 16
|
||
')' [trial] reduce 13
|
||
')' [trial] reduce 16
|
||
',' reduce 13
|
||
|
||
|
||
state 44
|
||
vexp : vexp . '+' vexp (19)
|
||
vexp : vexp . '-' vexp (21)
|
||
vexp : vexp . '*' vexp (23)
|
||
vexp : vexp . '/' vexp (25)
|
||
vexp : dexp '/' vexp . (26)
|
||
|
||
. reduce 26
|
||
|
||
|
||
state 45
|
||
vexp : vexp . '+' vexp (19)
|
||
vexp : vexp '+' vexp . (19)
|
||
vexp : vexp . '-' vexp (21)
|
||
vexp : vexp . '*' vexp (23)
|
||
vexp : vexp . '/' vexp (25)
|
||
|
||
'*' shift 26
|
||
'/' shift 27
|
||
'+' reduce 19
|
||
'-' reduce 19
|
||
'\n' reduce 19
|
||
')' reduce 19
|
||
|
||
|
||
state 46
|
||
vexp : vexp . '+' vexp (19)
|
||
vexp : vexp . '-' vexp (21)
|
||
vexp : vexp '-' vexp . (21)
|
||
vexp : vexp . '*' vexp (23)
|
||
vexp : vexp . '/' vexp (25)
|
||
|
||
'*' shift 26
|
||
'/' shift 27
|
||
'+' reduce 21
|
||
'-' reduce 21
|
||
'\n' reduce 21
|
||
')' reduce 21
|
||
|
||
|
||
state 47
|
||
vexp : vexp . '+' vexp (19)
|
||
vexp : vexp . '-' vexp (21)
|
||
vexp : vexp . '*' vexp (23)
|
||
vexp : vexp '*' vexp . (23)
|
||
vexp : vexp . '/' vexp (25)
|
||
|
||
. reduce 23
|
||
|
||
|
||
state 48
|
||
vexp : vexp . '+' vexp (19)
|
||
vexp : vexp . '-' vexp (21)
|
||
vexp : vexp . '*' vexp (23)
|
||
vexp : vexp . '/' vexp (25)
|
||
vexp : vexp '/' vexp . (25)
|
||
|
||
. reduce 25
|
||
|
||
|
||
state 49
|
||
dexp : dexp . '+' dexp (10)
|
||
dexp : dexp . '-' dexp (11)
|
||
dexp : dexp . '*' dexp (12)
|
||
dexp : dexp . '/' dexp (13)
|
||
dexp : '-' dexp . (14)
|
||
|
||
. reduce 14
|
||
|
||
|
||
state 50
|
||
dexp : dexp . '+' dexp (10)
|
||
dexp : dexp . '-' dexp (11)
|
||
dexp : dexp . '*' dexp (12)
|
||
dexp : dexp . '/' dexp (13)
|
||
dexp : '(' dexp . ')' (15)
|
||
|
||
'+' shift 51
|
||
'-' shift 52
|
||
'*' shift 53
|
||
'/' shift 54
|
||
')' shift 34
|
||
. error
|
||
|
||
|
||
state 51
|
||
dexp : dexp '+' . dexp (10)
|
||
|
||
DREG shift 14
|
||
CONST shift 5
|
||
'-' shift 29
|
||
'(' shift 30
|
||
. error
|
||
|
||
dexp goto 56
|
||
|
||
|
||
state 52
|
||
dexp : dexp '-' . dexp (11)
|
||
|
||
DREG shift 14
|
||
CONST shift 5
|
||
'-' shift 29
|
||
'(' shift 30
|
||
. error
|
||
|
||
dexp goto 57
|
||
|
||
|
||
state 53
|
||
dexp : dexp '*' . dexp (12)
|
||
|
||
DREG shift 14
|
||
CONST shift 5
|
||
'-' shift 29
|
||
'(' shift 30
|
||
. error
|
||
|
||
dexp goto 58
|
||
|
||
|
||
state 54
|
||
dexp : dexp '/' . dexp (13)
|
||
|
||
DREG shift 14
|
||
CONST shift 5
|
||
'-' shift 29
|
||
'(' shift 30
|
||
. error
|
||
|
||
dexp goto 59
|
||
|
||
|
||
state 55
|
||
dexp : dexp . '+' dexp (10)
|
||
dexp : dexp . '-' dexp (11)
|
||
dexp : dexp . '*' dexp (12)
|
||
dexp : dexp . '/' dexp (13)
|
||
vexp : '(' dexp ',' dexp . ')' (17)
|
||
|
||
'+' shift 51
|
||
'-' shift 52
|
||
'*' shift 53
|
||
'/' shift 54
|
||
')' shift 60
|
||
. error
|
||
|
||
|
||
state 56
|
||
dexp : dexp . '+' dexp (10)
|
||
dexp : dexp '+' dexp . (10)
|
||
dexp : dexp . '-' dexp (11)
|
||
dexp : dexp . '*' dexp (12)
|
||
dexp : dexp . '/' dexp (13)
|
||
|
||
'*' shift 53
|
||
'/' shift 54
|
||
'+' reduce 10
|
||
'-' reduce 10
|
||
'\n' reduce 10
|
||
')' reduce 10
|
||
|
||
|
||
state 57
|
||
dexp : dexp . '+' dexp (10)
|
||
dexp : dexp . '-' dexp (11)
|
||
dexp : dexp '-' dexp . (11)
|
||
dexp : dexp . '*' dexp (12)
|
||
dexp : dexp . '/' dexp (13)
|
||
|
||
'*' shift 53
|
||
'/' shift 54
|
||
'+' reduce 11
|
||
'-' reduce 11
|
||
'\n' reduce 11
|
||
')' reduce 11
|
||
|
||
|
||
state 58
|
||
dexp : dexp . '+' dexp (10)
|
||
dexp : dexp . '-' dexp (11)
|
||
dexp : dexp . '*' dexp (12)
|
||
dexp : dexp '*' dexp . (12)
|
||
dexp : dexp . '/' dexp (13)
|
||
|
||
. reduce 12
|
||
|
||
|
||
state 59
|
||
dexp : dexp . '+' dexp (10)
|
||
dexp : dexp . '-' dexp (11)
|
||
dexp : dexp . '*' dexp (12)
|
||
dexp : dexp . '/' dexp (13)
|
||
dexp : dexp '/' dexp . (13)
|
||
|
||
. reduce 13
|
||
|
||
|
||
state 60
|
||
vexp : '(' dexp ',' dexp ')' . (17)
|
||
|
||
. reduce 17
|
||
|
||
|
||
State 8 contains 4 shift/reduce conflicts, 1 reduce/reduce conflict.
|
||
State 16 contains 6 reduce/reduce conflicts.
|
||
State 18 contains 5 shift/reduce conflicts.
|
||
State 32 contains 4 shift/reduce conflicts.
|
||
State 37 contains 2 shift/reduce conflicts, 4 reduce/reduce conflicts.
|
||
State 39 contains 2 shift/reduce conflicts, 4 reduce/reduce conflicts.
|
||
State 41 contains 6 reduce/reduce conflicts.
|
||
State 43 contains 6 reduce/reduce conflicts.
|
||
|
||
|
||
15 terminals, 5 nonterminals
|
||
29 grammar rules, 61 states
|
||
|
||
grammar parser grammar
|
||
symbol# value# symbol
|
||
0 0 $end
|
||
1 256 error
|
||
2 257 DREG
|
||
3 258 VREG
|
||
4 259 CONST
|
||
5 43 '+'
|
||
6 45 '-'
|
||
7 42 '*'
|
||
8 47 '/'
|
||
9 260 UMINUS
|
||
10 10 '\n'
|
||
11 61 '='
|
||
12 40 '('
|
||
13 41 ')'
|
||
14 44 ','
|
||
15 261 $accept
|
||
16 262 lines
|
||
17 263 dexp
|
||
18 264 vexp
|
||
19 265 line
|