freebsd-dev/contrib/byacc/test/btyacc/btyacc_calc1.output
Baptiste Daroussin 0c8de5b03c Update to byacc 20140409
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
2014-04-23 05:57:45 +00:00

950 lines
17 KiB
Plaintext
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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