This brings our tree to NetBSD 7.0, as found on -current on the 10-10-2015. This updates: - LLVM to 3.6.1 - GCC to GCC 5.1 - Replace minix/commands/zdump with usr.bin/zdump - external/bsd/libelf has moved to /external/bsd/elftoolchain/ - Import ctwm - Drop sprintf from libminc Change-Id: I149836ac18e9326be9353958bab9b266efb056f0
1361 lines
22 KiB
Plaintext
1361 lines
22 KiB
Plaintext
0 $accept : input $end
|
||
|
||
1 opt_scope :
|
||
2 | CLCL
|
||
3 | opt_scope ID CLCL
|
||
|
||
4 typename : opt_scope ID
|
||
|
||
5 $$1 :
|
||
|
||
6 input : $$1 decl_list
|
||
|
||
7 decl_list :
|
||
|
||
8 $$2 :
|
||
|
||
9 decl_list : decl_list $$2 decl
|
||
|
||
10 $$3 :
|
||
|
||
11 decl : decl_specs $$2 $$3 declarator_list ';'
|
||
|
||
12 $$4 :
|
||
|
||
13 decl : decl_specs $$2 $$3 declarator $$4 block_statement
|
||
|
||
14 decl_specs : decl_spec
|
||
15 | decl_specs $$2 decl_spec
|
||
|
||
16 cv_quals :
|
||
17 | cv_quals cv_qual
|
||
|
||
18 decl_spec : cv_qual
|
||
19 | typename
|
||
20 | EXTERN
|
||
21 | REGISTER
|
||
22 | STATIC
|
||
|
||
23 cv_qual : CONST
|
||
24 | VOLATILE
|
||
|
||
25 $$5 :
|
||
|
||
26 $$6 :
|
||
|
||
27 declarator_list : declarator_list ',' $$5 $$6 declarator
|
||
28 | declarator
|
||
|
||
29 declarator :
|
||
30 | ID
|
||
|
||
31 $$7 :
|
||
|
||
32 $$8 :
|
||
|
||
33 declarator : '(' $$7 $$8 declarator ')'
|
||
34 | '*' cv_quals $$5 $$6 declarator
|
||
35 | declarator '[' $$5 expr ']'
|
||
36 | declarator '(' $$5 formal_arg_list ')' cv_quals
|
||
|
||
37 formal_arg_list :
|
||
38 | nonempty_formal_arg_list
|
||
|
||
39 nonempty_formal_arg_list : nonempty_formal_arg_list ',' $$7 formal_arg
|
||
40 | formal_arg
|
||
|
||
41 formal_arg : decl_specs $$2 $$3 declarator
|
||
|
||
42 expr : expr '+' $$7 expr
|
||
43 | expr '-' $$7 expr
|
||
44 | expr '*' $$7 expr
|
||
45 | expr '%' $$7 expr
|
||
46 | expr '/' $$7 expr
|
||
47 | '*' $$2 expr
|
||
48 | ID
|
||
49 | CONSTANT
|
||
|
||
50 statement : decl
|
||
|
||
51 $$9 :
|
||
|
||
52 statement : $$9 expr ';'
|
||
|
||
53 $$10 :
|
||
|
||
54 $$11 :
|
||
|
||
55 statement : IF '(' $$7 expr ')' THEN $$10 statement ELSE $$11 statement
|
||
56 | IF '(' $$7 expr ')' THEN $$10 statement
|
||
|
||
57 $$12 :
|
||
|
||
58 statement : $$12 block_statement
|
||
|
||
59 statement_list :
|
||
60 | statement_list $$2 statement
|
||
|
||
61 block_statement : '{' $$2 statement_list '}'
|
||
|
||
state 0
|
||
$accept : . input $end (0)
|
||
$$1 : . (5)
|
||
|
||
. reduce 5
|
||
|
||
input goto 1
|
||
$$1 goto 2
|
||
|
||
|
||
state 1
|
||
$accept : input . $end (0)
|
||
|
||
$end accept
|
||
|
||
|
||
state 2
|
||
input : $$1 . decl_list (6)
|
||
decl_list : . (7)
|
||
|
||
. reduce 7
|
||
|
||
decl_list goto 3
|
||
|
||
|
||
state 3
|
||
input : $$1 decl_list . (6)
|
||
decl_list : decl_list . $$2 decl (9)
|
||
$$2 : . (8)
|
||
|
||
$end reduce 6
|
||
ID reduce 8
|
||
EXTERN reduce 8
|
||
REGISTER reduce 8
|
||
STATIC reduce 8
|
||
CONST reduce 8
|
||
VOLATILE reduce 8
|
||
CLCL reduce 8
|
||
|
||
$$2 goto 4
|
||
|
||
|
||
state 4
|
||
decl_list : decl_list $$2 . decl (9)
|
||
opt_scope : . (1)
|
||
|
||
EXTERN shift 5
|
||
REGISTER shift 6
|
||
STATIC shift 7
|
||
CONST shift 8
|
||
VOLATILE shift 9
|
||
CLCL shift 10
|
||
ID reduce 1
|
||
|
||
decl goto 11
|
||
decl_specs goto 12
|
||
decl_spec goto 13
|
||
typename goto 14
|
||
cv_qual goto 15
|
||
opt_scope goto 16
|
||
|
||
|
||
state 5
|
||
decl_spec : EXTERN . (20)
|
||
|
||
. reduce 20
|
||
|
||
|
||
state 6
|
||
decl_spec : REGISTER . (21)
|
||
|
||
. reduce 21
|
||
|
||
|
||
state 7
|
||
decl_spec : STATIC . (22)
|
||
|
||
. reduce 22
|
||
|
||
|
||
state 8
|
||
cv_qual : CONST . (23)
|
||
|
||
. reduce 23
|
||
|
||
|
||
state 9
|
||
cv_qual : VOLATILE . (24)
|
||
|
||
. reduce 24
|
||
|
||
|
||
state 10
|
||
opt_scope : CLCL . (2)
|
||
|
||
. reduce 2
|
||
|
||
|
||
state 11
|
||
decl_list : decl_list $$2 decl . (9)
|
||
|
||
. reduce 9
|
||
|
||
|
||
state 12
|
||
decl : decl_specs . $$2 $$3 declarator_list ';' (11)
|
||
decl : decl_specs . $$2 $$3 declarator $$4 block_statement (13)
|
||
decl_specs : decl_specs . $$2 decl_spec (15)
|
||
$$2 : . (8)
|
||
|
||
. reduce 8
|
||
|
||
$$2 goto 17
|
||
|
||
|
||
state 13
|
||
decl_specs : decl_spec . (14)
|
||
|
||
. reduce 14
|
||
|
||
|
||
state 14
|
||
decl_spec : typename . (19)
|
||
|
||
. reduce 19
|
||
|
||
|
||
state 15
|
||
decl_spec : cv_qual . (18)
|
||
|
||
. reduce 18
|
||
|
||
|
||
state 16
|
||
opt_scope : opt_scope . ID CLCL (3)
|
||
typename : opt_scope . ID (4)
|
||
|
||
ID shift 18
|
||
. error
|
||
|
||
|
||
17: reduce/reduce conflict (reduce 1, reduce 10) on ID
|
||
state 17
|
||
decl : decl_specs $$2 . $$3 declarator_list ';' (11)
|
||
decl : decl_specs $$2 . $$3 declarator $$4 block_statement (13)
|
||
decl_specs : decl_specs $$2 . decl_spec (15)
|
||
opt_scope : . (1)
|
||
$$3 : . (10)
|
||
|
||
EXTERN shift 5
|
||
REGISTER shift 6
|
||
STATIC shift 7
|
||
CONST shift 8
|
||
VOLATILE shift 9
|
||
CLCL shift 10
|
||
'*' reduce 10
|
||
'(' reduce 10
|
||
'[' reduce 10
|
||
ID [trial] reduce 1
|
||
ID [trial] reduce 10
|
||
';' reduce 10
|
||
',' reduce 10
|
||
'{' reduce 10
|
||
|
||
decl_spec goto 19
|
||
typename goto 14
|
||
cv_qual goto 15
|
||
opt_scope goto 16
|
||
$$3 goto 20
|
||
|
||
|
||
18: shift/reduce conflict (shift 21, reduce 4) on CLCL
|
||
state 18
|
||
opt_scope : opt_scope ID . CLCL (3)
|
||
typename : opt_scope ID . (4)
|
||
|
||
CLCL [trial] shift 21
|
||
'*' reduce 4
|
||
'(' reduce 4
|
||
'[' reduce 4
|
||
ID reduce 4
|
||
EXTERN reduce 4
|
||
REGISTER reduce 4
|
||
STATIC reduce 4
|
||
CONST reduce 4
|
||
VOLATILE reduce 4
|
||
CLCL [trial] reduce 4
|
||
';' reduce 4
|
||
',' reduce 4
|
||
')' reduce 4
|
||
'{' reduce 4
|
||
|
||
|
||
state 19
|
||
decl_specs : decl_specs $$2 decl_spec . (15)
|
||
|
||
. reduce 15
|
||
|
||
|
||
20: shift/reduce conflict (shift 23, reduce 29) on '('
|
||
state 20
|
||
decl : decl_specs $$2 $$3 . declarator_list ';' (11)
|
||
decl : decl_specs $$2 $$3 . declarator $$4 block_statement (13)
|
||
declarator : . (29)
|
||
|
||
'*' shift 22
|
||
'(' [trial] shift 23
|
||
ID shift 24
|
||
'(' [trial] reduce 29
|
||
'[' reduce 29
|
||
';' reduce 29
|
||
',' reduce 29
|
||
'{' reduce 29
|
||
|
||
declarator_list goto 25
|
||
declarator goto 26
|
||
|
||
|
||
state 21
|
||
opt_scope : opt_scope ID CLCL . (3)
|
||
|
||
. reduce 3
|
||
|
||
|
||
state 22
|
||
declarator : '*' . cv_quals $$5 $$6 declarator (34)
|
||
cv_quals : . (16)
|
||
|
||
. reduce 16
|
||
|
||
cv_quals goto 27
|
||
|
||
|
||
state 23
|
||
declarator : '(' . $$7 $$8 declarator ')' (33)
|
||
$$7 : . (31)
|
||
|
||
. reduce 31
|
||
|
||
$$7 goto 28
|
||
|
||
|
||
state 24
|
||
declarator : ID . (30)
|
||
|
||
. reduce 30
|
||
|
||
|
||
state 25
|
||
decl : decl_specs $$2 $$3 declarator_list . ';' (11)
|
||
declarator_list : declarator_list . ',' $$5 $$6 declarator (27)
|
||
|
||
';' shift 29
|
||
',' shift 30
|
||
. error
|
||
|
||
|
||
state 26
|
||
decl : decl_specs $$2 $$3 declarator . $$4 block_statement (13)
|
||
declarator_list : declarator . (28)
|
||
declarator : declarator . '[' $$5 expr ']' (35)
|
||
declarator : declarator . '(' $$5 formal_arg_list ')' cv_quals (36)
|
||
$$4 : . (12)
|
||
|
||
'(' shift 31
|
||
'[' shift 32
|
||
';' reduce 28
|
||
',' reduce 28
|
||
'{' reduce 12
|
||
|
||
$$4 goto 33
|
||
|
||
|
||
state 27
|
||
cv_quals : cv_quals . cv_qual (17)
|
||
declarator : '*' cv_quals . $$5 $$6 declarator (34)
|
||
$$5 : . (25)
|
||
|
||
CONST shift 8
|
||
VOLATILE shift 9
|
||
'*' reduce 25
|
||
'(' reduce 25
|
||
'[' reduce 25
|
||
ID reduce 25
|
||
';' reduce 25
|
||
',' reduce 25
|
||
')' reduce 25
|
||
'{' reduce 25
|
||
|
||
cv_qual goto 34
|
||
$$5 goto 35
|
||
|
||
|
||
state 28
|
||
declarator : '(' $$7 . $$8 declarator ')' (33)
|
||
$$8 : . (32)
|
||
|
||
. reduce 32
|
||
|
||
$$8 goto 36
|
||
|
||
|
||
state 29
|
||
decl : decl_specs $$2 $$3 declarator_list ';' . (11)
|
||
|
||
. reduce 11
|
||
|
||
|
||
state 30
|
||
declarator_list : declarator_list ',' . $$5 $$6 declarator (27)
|
||
$$5 : . (25)
|
||
|
||
. reduce 25
|
||
|
||
$$5 goto 37
|
||
|
||
|
||
state 31
|
||
declarator : declarator '(' . $$5 formal_arg_list ')' cv_quals (36)
|
||
$$5 : . (25)
|
||
|
||
. reduce 25
|
||
|
||
$$5 goto 38
|
||
|
||
|
||
state 32
|
||
declarator : declarator '[' . $$5 expr ']' (35)
|
||
$$5 : . (25)
|
||
|
||
. reduce 25
|
||
|
||
$$5 goto 39
|
||
|
||
|
||
state 33
|
||
decl : decl_specs $$2 $$3 declarator $$4 . block_statement (13)
|
||
|
||
'{' shift 40
|
||
. error
|
||
|
||
block_statement goto 41
|
||
|
||
|
||
state 34
|
||
cv_quals : cv_quals cv_qual . (17)
|
||
|
||
. reduce 17
|
||
|
||
|
||
state 35
|
||
declarator : '*' cv_quals $$5 . $$6 declarator (34)
|
||
$$6 : . (26)
|
||
|
||
. reduce 26
|
||
|
||
$$6 goto 42
|
||
|
||
|
||
36: shift/reduce conflict (shift 23, reduce 29) on '('
|
||
state 36
|
||
declarator : '(' $$7 $$8 . declarator ')' (33)
|
||
declarator : . (29)
|
||
|
||
'*' shift 22
|
||
'(' [trial] shift 23
|
||
ID shift 24
|
||
'(' [trial] reduce 29
|
||
'[' reduce 29
|
||
')' reduce 29
|
||
|
||
declarator goto 43
|
||
|
||
|
||
state 37
|
||
declarator_list : declarator_list ',' $$5 . $$6 declarator (27)
|
||
$$6 : . (26)
|
||
|
||
. reduce 26
|
||
|
||
$$6 goto 44
|
||
|
||
|
||
state 38
|
||
declarator : declarator '(' $$5 . formal_arg_list ')' cv_quals (36)
|
||
opt_scope : . (1)
|
||
formal_arg_list : . (37)
|
||
|
||
EXTERN shift 5
|
||
REGISTER shift 6
|
||
STATIC shift 7
|
||
CONST shift 8
|
||
VOLATILE shift 9
|
||
CLCL shift 10
|
||
ID reduce 1
|
||
')' reduce 37
|
||
|
||
formal_arg goto 45
|
||
decl_specs goto 46
|
||
decl_spec goto 13
|
||
typename goto 14
|
||
cv_qual goto 15
|
||
opt_scope goto 16
|
||
formal_arg_list goto 47
|
||
nonempty_formal_arg_list goto 48
|
||
|
||
|
||
state 39
|
||
declarator : declarator '[' $$5 . expr ']' (35)
|
||
|
||
'*' shift 49
|
||
ID shift 50
|
||
CONSTANT shift 51
|
||
. error
|
||
|
||
expr goto 52
|
||
|
||
|
||
state 40
|
||
block_statement : '{' . $$2 statement_list '}' (61)
|
||
$$2 : . (8)
|
||
|
||
. reduce 8
|
||
|
||
$$2 goto 53
|
||
|
||
|
||
state 41
|
||
decl : decl_specs $$2 $$3 declarator $$4 block_statement . (13)
|
||
|
||
. reduce 13
|
||
|
||
|
||
42: shift/reduce conflict (shift 23, reduce 29) on '('
|
||
state 42
|
||
declarator : '*' cv_quals $$5 $$6 . declarator (34)
|
||
declarator : . (29)
|
||
|
||
'*' shift 22
|
||
'(' [trial] shift 23
|
||
ID shift 24
|
||
'(' [trial] reduce 29
|
||
'[' reduce 29
|
||
';' reduce 29
|
||
',' reduce 29
|
||
')' reduce 29
|
||
'{' reduce 29
|
||
|
||
declarator goto 54
|
||
|
||
|
||
state 43
|
||
declarator : '(' $$7 $$8 declarator . ')' (33)
|
||
declarator : declarator . '[' $$5 expr ']' (35)
|
||
declarator : declarator . '(' $$5 formal_arg_list ')' cv_quals (36)
|
||
|
||
'(' shift 31
|
||
'[' shift 32
|
||
')' shift 55
|
||
. error
|
||
|
||
|
||
44: shift/reduce conflict (shift 23, reduce 29) on '('
|
||
state 44
|
||
declarator_list : declarator_list ',' $$5 $$6 . declarator (27)
|
||
declarator : . (29)
|
||
|
||
'*' shift 22
|
||
'(' [trial] shift 23
|
||
ID shift 24
|
||
'(' [trial] reduce 29
|
||
'[' reduce 29
|
||
';' reduce 29
|
||
',' reduce 29
|
||
|
||
declarator goto 56
|
||
|
||
|
||
state 45
|
||
nonempty_formal_arg_list : formal_arg . (40)
|
||
|
||
. reduce 40
|
||
|
||
|
||
state 46
|
||
decl_specs : decl_specs . $$2 decl_spec (15)
|
||
formal_arg : decl_specs . $$2 $$3 declarator (41)
|
||
$$2 : . (8)
|
||
|
||
. reduce 8
|
||
|
||
$$2 goto 57
|
||
|
||
|
||
state 47
|
||
declarator : declarator '(' $$5 formal_arg_list . ')' cv_quals (36)
|
||
|
||
')' shift 58
|
||
. error
|
||
|
||
|
||
state 48
|
||
formal_arg_list : nonempty_formal_arg_list . (38)
|
||
nonempty_formal_arg_list : nonempty_formal_arg_list . ',' $$7 formal_arg (39)
|
||
|
||
',' shift 59
|
||
')' reduce 38
|
||
|
||
|
||
state 49
|
||
expr : '*' . $$2 expr (47)
|
||
$$2 : . (8)
|
||
|
||
. reduce 8
|
||
|
||
$$2 goto 60
|
||
|
||
|
||
state 50
|
||
expr : ID . (48)
|
||
|
||
. reduce 48
|
||
|
||
|
||
state 51
|
||
expr : CONSTANT . (49)
|
||
|
||
. reduce 49
|
||
|
||
|
||
state 52
|
||
declarator : declarator '[' $$5 expr . ']' (35)
|
||
expr : expr . '+' $$7 expr (42)
|
||
expr : expr . '-' $$7 expr (43)
|
||
expr : expr . '*' $$7 expr (44)
|
||
expr : expr . '%' $$7 expr (45)
|
||
expr : expr . '/' $$7 expr (46)
|
||
|
||
'+' shift 61
|
||
'-' shift 62
|
||
'*' shift 63
|
||
'/' shift 64
|
||
'%' shift 65
|
||
']' shift 66
|
||
. error
|
||
|
||
|
||
state 53
|
||
block_statement : '{' $$2 . statement_list '}' (61)
|
||
statement_list : . (59)
|
||
|
||
. reduce 59
|
||
|
||
statement_list goto 67
|
||
|
||
|
||
state 54
|
||
declarator : '*' cv_quals $$5 $$6 declarator . (34)
|
||
declarator : declarator . '[' $$5 expr ']' (35)
|
||
declarator : declarator . '(' $$5 formal_arg_list ')' cv_quals (36)
|
||
|
||
'(' shift 31
|
||
'[' shift 32
|
||
';' reduce 34
|
||
',' reduce 34
|
||
')' reduce 34
|
||
'{' reduce 34
|
||
|
||
|
||
state 55
|
||
declarator : '(' $$7 $$8 declarator ')' . (33)
|
||
|
||
. reduce 33
|
||
|
||
|
||
state 56
|
||
declarator_list : declarator_list ',' $$5 $$6 declarator . (27)
|
||
declarator : declarator . '[' $$5 expr ']' (35)
|
||
declarator : declarator . '(' $$5 formal_arg_list ')' cv_quals (36)
|
||
|
||
'(' shift 31
|
||
'[' shift 32
|
||
';' reduce 27
|
||
',' reduce 27
|
||
|
||
|
||
57: reduce/reduce conflict (reduce 1, reduce 10) on ID
|
||
state 57
|
||
decl_specs : decl_specs $$2 . decl_spec (15)
|
||
formal_arg : decl_specs $$2 . $$3 declarator (41)
|
||
opt_scope : . (1)
|
||
$$3 : . (10)
|
||
|
||
EXTERN shift 5
|
||
REGISTER shift 6
|
||
STATIC shift 7
|
||
CONST shift 8
|
||
VOLATILE shift 9
|
||
CLCL shift 10
|
||
'*' reduce 10
|
||
'(' reduce 10
|
||
'[' reduce 10
|
||
ID [trial] reduce 1
|
||
ID [trial] reduce 10
|
||
',' reduce 10
|
||
')' reduce 10
|
||
|
||
decl_spec goto 19
|
||
typename goto 14
|
||
cv_qual goto 15
|
||
opt_scope goto 16
|
||
$$3 goto 68
|
||
|
||
|
||
state 58
|
||
declarator : declarator '(' $$5 formal_arg_list ')' . cv_quals (36)
|
||
cv_quals : . (16)
|
||
|
||
. reduce 16
|
||
|
||
cv_quals goto 69
|
||
|
||
|
||
state 59
|
||
nonempty_formal_arg_list : nonempty_formal_arg_list ',' . $$7 formal_arg (39)
|
||
$$7 : . (31)
|
||
|
||
. reduce 31
|
||
|
||
$$7 goto 70
|
||
|
||
|
||
state 60
|
||
expr : '*' $$2 . expr (47)
|
||
|
||
'*' shift 49
|
||
ID shift 50
|
||
CONSTANT shift 51
|
||
. error
|
||
|
||
expr goto 71
|
||
|
||
|
||
state 61
|
||
expr : expr '+' . $$7 expr (42)
|
||
$$7 : . (31)
|
||
|
||
. reduce 31
|
||
|
||
$$7 goto 72
|
||
|
||
|
||
state 62
|
||
expr : expr '-' . $$7 expr (43)
|
||
$$7 : . (31)
|
||
|
||
. reduce 31
|
||
|
||
$$7 goto 73
|
||
|
||
|
||
state 63
|
||
expr : expr '*' . $$7 expr (44)
|
||
$$7 : . (31)
|
||
|
||
. reduce 31
|
||
|
||
$$7 goto 74
|
||
|
||
|
||
state 64
|
||
expr : expr '/' . $$7 expr (46)
|
||
$$7 : . (31)
|
||
|
||
. reduce 31
|
||
|
||
$$7 goto 75
|
||
|
||
|
||
state 65
|
||
expr : expr '%' . $$7 expr (45)
|
||
$$7 : . (31)
|
||
|
||
. reduce 31
|
||
|
||
$$7 goto 76
|
||
|
||
|
||
state 66
|
||
declarator : declarator '[' $$5 expr ']' . (35)
|
||
|
||
. reduce 35
|
||
|
||
|
||
state 67
|
||
statement_list : statement_list . $$2 statement (60)
|
||
block_statement : '{' $$2 statement_list . '}' (61)
|
||
$$2 : . (8)
|
||
|
||
'}' shift 77
|
||
'*' reduce 8
|
||
ID reduce 8
|
||
CONSTANT reduce 8
|
||
EXTERN reduce 8
|
||
REGISTER reduce 8
|
||
STATIC reduce 8
|
||
CONST reduce 8
|
||
VOLATILE reduce 8
|
||
IF reduce 8
|
||
CLCL reduce 8
|
||
'{' reduce 8
|
||
|
||
$$2 goto 78
|
||
|
||
|
||
68: shift/reduce conflict (shift 23, reduce 29) on '('
|
||
state 68
|
||
formal_arg : decl_specs $$2 $$3 . declarator (41)
|
||
declarator : . (29)
|
||
|
||
'*' shift 22
|
||
'(' [trial] shift 23
|
||
ID shift 24
|
||
'(' [trial] reduce 29
|
||
'[' reduce 29
|
||
',' reduce 29
|
||
')' reduce 29
|
||
|
||
declarator goto 79
|
||
|
||
|
||
state 69
|
||
cv_quals : cv_quals . cv_qual (17)
|
||
declarator : declarator '(' $$5 formal_arg_list ')' cv_quals . (36)
|
||
|
||
CONST shift 8
|
||
VOLATILE shift 9
|
||
'(' reduce 36
|
||
'[' reduce 36
|
||
';' reduce 36
|
||
',' reduce 36
|
||
')' reduce 36
|
||
'{' reduce 36
|
||
|
||
cv_qual goto 34
|
||
|
||
|
||
state 70
|
||
nonempty_formal_arg_list : nonempty_formal_arg_list ',' $$7 . formal_arg (39)
|
||
opt_scope : . (1)
|
||
|
||
EXTERN shift 5
|
||
REGISTER shift 6
|
||
STATIC shift 7
|
||
CONST shift 8
|
||
VOLATILE shift 9
|
||
CLCL shift 10
|
||
ID reduce 1
|
||
|
||
formal_arg goto 80
|
||
decl_specs goto 46
|
||
decl_spec goto 13
|
||
typename goto 14
|
||
cv_qual goto 15
|
||
opt_scope goto 16
|
||
|
||
|
||
state 71
|
||
expr : expr . '+' $$7 expr (42)
|
||
expr : expr . '-' $$7 expr (43)
|
||
expr : expr . '*' $$7 expr (44)
|
||
expr : expr . '%' $$7 expr (45)
|
||
expr : expr . '/' $$7 expr (46)
|
||
expr : '*' $$2 expr . (47)
|
||
|
||
. reduce 47
|
||
|
||
|
||
state 72
|
||
expr : expr '+' $$7 . expr (42)
|
||
|
||
'*' shift 49
|
||
ID shift 50
|
||
CONSTANT shift 51
|
||
. error
|
||
|
||
expr goto 81
|
||
|
||
|
||
state 73
|
||
expr : expr '-' $$7 . expr (43)
|
||
|
||
'*' shift 49
|
||
ID shift 50
|
||
CONSTANT shift 51
|
||
. error
|
||
|
||
expr goto 82
|
||
|
||
|
||
state 74
|
||
expr : expr '*' $$7 . expr (44)
|
||
|
||
'*' shift 49
|
||
ID shift 50
|
||
CONSTANT shift 51
|
||
. error
|
||
|
||
expr goto 83
|
||
|
||
|
||
state 75
|
||
expr : expr '/' $$7 . expr (46)
|
||
|
||
'*' shift 49
|
||
ID shift 50
|
||
CONSTANT shift 51
|
||
. error
|
||
|
||
expr goto 84
|
||
|
||
|
||
state 76
|
||
expr : expr '%' $$7 . expr (45)
|
||
|
||
'*' shift 49
|
||
ID shift 50
|
||
CONSTANT shift 51
|
||
. error
|
||
|
||
expr goto 85
|
||
|
||
|
||
state 77
|
||
block_statement : '{' $$2 statement_list '}' . (61)
|
||
|
||
. reduce 61
|
||
|
||
|
||
78: reduce/reduce conflict (reduce 1, reduce 51) on ID
|
||
state 78
|
||
statement_list : statement_list $$2 . statement (60)
|
||
opt_scope : . (1)
|
||
$$9 : . (51)
|
||
$$12 : . (57)
|
||
|
||
EXTERN shift 5
|
||
REGISTER shift 6
|
||
STATIC shift 7
|
||
CONST shift 8
|
||
VOLATILE shift 9
|
||
IF shift 86
|
||
CLCL shift 10
|
||
'*' reduce 51
|
||
ID [trial] reduce 1
|
||
ID [trial] reduce 51
|
||
CONSTANT reduce 51
|
||
'{' reduce 57
|
||
|
||
decl goto 87
|
||
statement goto 88
|
||
decl_specs goto 12
|
||
decl_spec goto 13
|
||
typename goto 14
|
||
cv_qual goto 15
|
||
opt_scope goto 16
|
||
$$9 goto 89
|
||
$$12 goto 90
|
||
|
||
|
||
state 79
|
||
declarator : declarator . '[' $$5 expr ']' (35)
|
||
declarator : declarator . '(' $$5 formal_arg_list ')' cv_quals (36)
|
||
formal_arg : decl_specs $$2 $$3 declarator . (41)
|
||
|
||
'(' shift 31
|
||
'[' shift 32
|
||
',' reduce 41
|
||
')' reduce 41
|
||
|
||
|
||
state 80
|
||
nonempty_formal_arg_list : nonempty_formal_arg_list ',' $$7 formal_arg . (39)
|
||
|
||
. reduce 39
|
||
|
||
|
||
state 81
|
||
expr : expr . '+' $$7 expr (42)
|
||
expr : expr '+' $$7 expr . (42)
|
||
expr : expr . '-' $$7 expr (43)
|
||
expr : expr . '*' $$7 expr (44)
|
||
expr : expr . '%' $$7 expr (45)
|
||
expr : expr . '/' $$7 expr (46)
|
||
|
||
'*' shift 63
|
||
'/' shift 64
|
||
'%' shift 65
|
||
'+' reduce 42
|
||
'-' reduce 42
|
||
';' reduce 42
|
||
')' reduce 42
|
||
']' reduce 42
|
||
|
||
|
||
state 82
|
||
expr : expr . '+' $$7 expr (42)
|
||
expr : expr . '-' $$7 expr (43)
|
||
expr : expr '-' $$7 expr . (43)
|
||
expr : expr . '*' $$7 expr (44)
|
||
expr : expr . '%' $$7 expr (45)
|
||
expr : expr . '/' $$7 expr (46)
|
||
|
||
'*' shift 63
|
||
'/' shift 64
|
||
'%' shift 65
|
||
'+' reduce 43
|
||
'-' reduce 43
|
||
';' reduce 43
|
||
')' reduce 43
|
||
']' reduce 43
|
||
|
||
|
||
state 83
|
||
expr : expr . '+' $$7 expr (42)
|
||
expr : expr . '-' $$7 expr (43)
|
||
expr : expr . '*' $$7 expr (44)
|
||
expr : expr '*' $$7 expr . (44)
|
||
expr : expr . '%' $$7 expr (45)
|
||
expr : expr . '/' $$7 expr (46)
|
||
|
||
. reduce 44
|
||
|
||
|
||
state 84
|
||
expr : expr . '+' $$7 expr (42)
|
||
expr : expr . '-' $$7 expr (43)
|
||
expr : expr . '*' $$7 expr (44)
|
||
expr : expr . '%' $$7 expr (45)
|
||
expr : expr . '/' $$7 expr (46)
|
||
expr : expr '/' $$7 expr . (46)
|
||
|
||
. reduce 46
|
||
|
||
|
||
state 85
|
||
expr : expr . '+' $$7 expr (42)
|
||
expr : expr . '-' $$7 expr (43)
|
||
expr : expr . '*' $$7 expr (44)
|
||
expr : expr . '%' $$7 expr (45)
|
||
expr : expr '%' $$7 expr . (45)
|
||
expr : expr . '/' $$7 expr (46)
|
||
|
||
. reduce 45
|
||
|
||
|
||
state 86
|
||
statement : IF . '(' $$7 expr ')' THEN $$10 statement ELSE $$11 statement (55)
|
||
statement : IF . '(' $$7 expr ')' THEN $$10 statement (56)
|
||
|
||
'(' shift 91
|
||
. error
|
||
|
||
|
||
state 87
|
||
statement : decl . (50)
|
||
|
||
. reduce 50
|
||
|
||
|
||
state 88
|
||
statement_list : statement_list $$2 statement . (60)
|
||
|
||
. reduce 60
|
||
|
||
|
||
state 89
|
||
statement : $$9 . expr ';' (52)
|
||
|
||
'*' shift 49
|
||
ID shift 50
|
||
CONSTANT shift 51
|
||
. error
|
||
|
||
expr goto 92
|
||
|
||
|
||
state 90
|
||
statement : $$12 . block_statement (58)
|
||
|
||
'{' shift 40
|
||
. error
|
||
|
||
block_statement goto 93
|
||
|
||
|
||
state 91
|
||
statement : IF '(' . $$7 expr ')' THEN $$10 statement ELSE $$11 statement (55)
|
||
statement : IF '(' . $$7 expr ')' THEN $$10 statement (56)
|
||
$$7 : . (31)
|
||
|
||
. reduce 31
|
||
|
||
$$7 goto 94
|
||
|
||
|
||
state 92
|
||
expr : expr . '+' $$7 expr (42)
|
||
expr : expr . '-' $$7 expr (43)
|
||
expr : expr . '*' $$7 expr (44)
|
||
expr : expr . '%' $$7 expr (45)
|
||
expr : expr . '/' $$7 expr (46)
|
||
statement : $$9 expr . ';' (52)
|
||
|
||
'+' shift 61
|
||
'-' shift 62
|
||
'*' shift 63
|
||
'/' shift 64
|
||
'%' shift 65
|
||
';' shift 95
|
||
. error
|
||
|
||
|
||
state 93
|
||
statement : $$12 block_statement . (58)
|
||
|
||
. reduce 58
|
||
|
||
|
||
state 94
|
||
statement : IF '(' $$7 . expr ')' THEN $$10 statement ELSE $$11 statement (55)
|
||
statement : IF '(' $$7 . expr ')' THEN $$10 statement (56)
|
||
|
||
'*' shift 49
|
||
ID shift 50
|
||
CONSTANT shift 51
|
||
. error
|
||
|
||
expr goto 96
|
||
|
||
|
||
state 95
|
||
statement : $$9 expr ';' . (52)
|
||
|
||
. reduce 52
|
||
|
||
|
||
state 96
|
||
expr : expr . '+' $$7 expr (42)
|
||
expr : expr . '-' $$7 expr (43)
|
||
expr : expr . '*' $$7 expr (44)
|
||
expr : expr . '%' $$7 expr (45)
|
||
expr : expr . '/' $$7 expr (46)
|
||
statement : IF '(' $$7 expr . ')' THEN $$10 statement ELSE $$11 statement (55)
|
||
statement : IF '(' $$7 expr . ')' THEN $$10 statement (56)
|
||
|
||
'+' shift 61
|
||
'-' shift 62
|
||
'*' shift 63
|
||
'/' shift 64
|
||
'%' shift 65
|
||
')' shift 97
|
||
. error
|
||
|
||
|
||
state 97
|
||
statement : IF '(' $$7 expr ')' . THEN $$10 statement ELSE $$11 statement (55)
|
||
statement : IF '(' $$7 expr ')' . THEN $$10 statement (56)
|
||
|
||
THEN shift 98
|
||
. error
|
||
|
||
|
||
state 98
|
||
statement : IF '(' $$7 expr ')' THEN . $$10 statement ELSE $$11 statement (55)
|
||
statement : IF '(' $$7 expr ')' THEN . $$10 statement (56)
|
||
$$10 : . (53)
|
||
|
||
. reduce 53
|
||
|
||
$$10 goto 99
|
||
|
||
|
||
99: reduce/reduce conflict (reduce 1, reduce 51) on ID
|
||
state 99
|
||
statement : IF '(' $$7 expr ')' THEN $$10 . statement ELSE $$11 statement (55)
|
||
statement : IF '(' $$7 expr ')' THEN $$10 . statement (56)
|
||
opt_scope : . (1)
|
||
$$9 : . (51)
|
||
$$12 : . (57)
|
||
|
||
EXTERN shift 5
|
||
REGISTER shift 6
|
||
STATIC shift 7
|
||
CONST shift 8
|
||
VOLATILE shift 9
|
||
IF shift 86
|
||
CLCL shift 10
|
||
'*' reduce 51
|
||
ID [trial] reduce 1
|
||
ID [trial] reduce 51
|
||
CONSTANT reduce 51
|
||
'{' reduce 57
|
||
|
||
decl goto 87
|
||
statement goto 100
|
||
decl_specs goto 12
|
||
decl_spec goto 13
|
||
typename goto 14
|
||
cv_qual goto 15
|
||
opt_scope goto 16
|
||
$$9 goto 89
|
||
$$12 goto 90
|
||
|
||
|
||
100: shift/reduce conflict (shift 101, reduce 56) on ELSE
|
||
state 100
|
||
statement : IF '(' $$7 expr ')' THEN $$10 statement . ELSE $$11 statement (55)
|
||
statement : IF '(' $$7 expr ')' THEN $$10 statement . (56)
|
||
|
||
ELSE [trial] shift 101
|
||
'*' reduce 56
|
||
ID reduce 56
|
||
CONSTANT reduce 56
|
||
EXTERN reduce 56
|
||
REGISTER reduce 56
|
||
STATIC reduce 56
|
||
CONST reduce 56
|
||
VOLATILE reduce 56
|
||
IF reduce 56
|
||
ELSE [trial] reduce 56
|
||
CLCL reduce 56
|
||
'{' reduce 56
|
||
'}' reduce 56
|
||
|
||
|
||
state 101
|
||
statement : IF '(' $$7 expr ')' THEN $$10 statement ELSE . $$11 statement (55)
|
||
$$11 : . (54)
|
||
|
||
. reduce 54
|
||
|
||
$$11 goto 102
|
||
|
||
|
||
102: reduce/reduce conflict (reduce 1, reduce 51) on ID
|
||
state 102
|
||
statement : IF '(' $$7 expr ')' THEN $$10 statement ELSE $$11 . statement (55)
|
||
opt_scope : . (1)
|
||
$$9 : . (51)
|
||
$$12 : . (57)
|
||
|
||
EXTERN shift 5
|
||
REGISTER shift 6
|
||
STATIC shift 7
|
||
CONST shift 8
|
||
VOLATILE shift 9
|
||
IF shift 86
|
||
CLCL shift 10
|
||
'*' reduce 51
|
||
ID [trial] reduce 1
|
||
ID [trial] reduce 51
|
||
CONSTANT reduce 51
|
||
'{' reduce 57
|
||
|
||
decl goto 87
|
||
statement goto 103
|
||
decl_specs goto 12
|
||
decl_spec goto 13
|
||
typename goto 14
|
||
cv_qual goto 15
|
||
opt_scope goto 16
|
||
$$9 goto 89
|
||
$$12 goto 90
|
||
|
||
|
||
state 103
|
||
statement : IF '(' $$7 expr ')' THEN $$10 statement ELSE $$11 statement . (55)
|
||
|
||
. reduce 55
|
||
|
||
|
||
State 17 contains 1 reduce/reduce conflict.
|
||
State 18 contains 1 shift/reduce conflict.
|
||
State 20 contains 1 shift/reduce conflict.
|
||
State 36 contains 1 shift/reduce conflict.
|
||
State 42 contains 1 shift/reduce conflict.
|
||
State 44 contains 1 shift/reduce conflict.
|
||
State 57 contains 1 reduce/reduce conflict.
|
||
State 68 contains 1 shift/reduce conflict.
|
||
State 78 contains 1 reduce/reduce conflict.
|
||
State 99 contains 1 reduce/reduce conflict.
|
||
State 100 contains 1 shift/reduce conflict.
|
||
State 102 contains 1 reduce/reduce conflict.
|
||
|
||
|
||
29 terminals, 31 nonterminals
|
||
62 grammar rules, 104 states
|
||
|
||
grammar parser grammar
|
||
symbol# value# symbol
|
||
0 0 $end
|
||
1 256 error
|
||
2 43 '+'
|
||
3 45 '-'
|
||
4 42 '*'
|
||
5 47 '/'
|
||
6 37 '%'
|
||
7 257 PREFIX
|
||
8 258 POSTFIX
|
||
9 40 '('
|
||
10 91 '['
|
||
11 46 '.'
|
||
12 259 ID
|
||
13 260 CONSTANT
|
||
14 261 EXTERN
|
||
15 262 REGISTER
|
||
16 263 STATIC
|
||
17 264 CONST
|
||
18 265 VOLATILE
|
||
19 266 IF
|
||
20 267 THEN
|
||
21 268 ELSE
|
||
22 269 CLCL
|
||
23 59 ';'
|
||
24 44 ','
|
||
25 41 ')'
|
||
26 93 ']'
|
||
27 123 '{'
|
||
28 125 '}'
|
||
29 270 $accept
|
||
30 271 input
|
||
31 272 expr
|
||
32 273 decl
|
||
33 274 declarator_list
|
||
34 275 decl_list
|
||
35 276 statement
|
||
36 277 statement_list
|
||
37 278 block_statement
|
||
38 279 declarator
|
||
39 280 formal_arg
|
||
40 281 decl_specs
|
||
41 282 decl_spec
|
||
42 283 typename
|
||
43 284 cv_quals
|
||
44 285 cv_qual
|
||
45 286 opt_scope
|
||
46 287 formal_arg_list
|
||
47 288 nonempty_formal_arg_list
|
||
48 289 $$1
|
||
49 290 $$2
|
||
50 291 $$3
|
||
51 292 $$4
|
||
52 293 $$5
|
||
53 294 $$6
|
||
54 295 $$7
|
||
55 296 $$8
|
||
56 297 $$9
|
||
57 298 $$10
|
||
58 299 $$11
|
||
59 300 $$12
|