📄 y.output
字号:
0 $accept : program $end
1 program : M declar_list
2 M :
3 declar_list : declar_list declar
4 | declar
5 declar : var_declar
6 | fun_declar
7 var_declar : type_spec ID ';'
8 | type_spec ID '[' NUM ']' ';'
9 | type_spec '*' ID ';'
10 | type_spec '*' ID '[' NUM ']' ';'
11 type_spec : INT
12 | VOID
13 | CHAR
14 | error
15 fun_declar : type_spec fun_tag '(' LL params ')' comp_stmt
16 | type_spec fun_tag '(' LL params ')' ';'
17 LL :
18 fun_tag : callconvent ID
19 | ID
20 params : param_list
21 | VOID
22 param_list : param_list ',' param
23 | param
24 param : type_spec ID
25 | type_spec '*' ID
26 | type_spec ID '[' ']'
27 comp_stmt : '{' local_declars stmt_list '}'
28 local_declars : local_declars var_declar
29 |
30 stmt_list : stmt_list stmt
31 |
32 stmt : expr_stmt
33 | comp_stmt
34 | if_stmt
35 | while_stmt
36 | return_stmt
37 expr_stmt : expr ';'
38 | ';'
39 if_stmt : IF '(' expr ')' stmt
40 | IF '(' expr ')' stmt ELSE stmt
41 while_stmt : WHILE '(' expr ')' stmt
42 return_stmt : RETURN ';'
43 | RETURN expr ';'
44 expr : var '=' expr
45 | simple_expr
46 var : ID
47 | ID '[' expr ']'
48 simple_expr : add_expr relop add_expr
49 | add_expr
50 add_expr : add_expr addop term
51 | term
52 term : term mulop unary_expr
53 | unary_expr
54 unary_expr : unaryop unary_expr
55 | factor
56 factor : '(' expr ')'
57 | var
58 | call
59 | NUM
60 | STRING_LITERAL
61 | CHAR_LITERAL
62 call : ID '(' args ')'
63 args : arg_list
64 |
65 arg_list : arg_list ',' expr
66 | expr
67 callconvent : CDECL
68 | STDCALL
69 addop : '+'
70 | '-'
71 relop : LE
72 | LT
73 | GT
74 | GE
75 | EQ
76 | NE
77 mulop : '*'
78 | '/'
79 | '%'
80 unaryop : '!'
81 | '-'
state 0
$accept : . program $end (0)
M : . (2)
. reduce 2
program goto 1
M goto 2
state 1
$accept : program . $end (0)
$end accept
state 2
program : M . declar_list (1)
error shift 3
INT shift 4
VOID shift 5
CHAR shift 6
. error
type_spec goto 7
var_declar goto 8
fun_declar goto 9
declar_list goto 10
declar goto 11
state 3
type_spec : error . (14)
. reduce 14
state 4
type_spec : INT . (11)
. reduce 11
state 5
type_spec : VOID . (12)
. reduce 12
state 6
type_spec : CHAR . (13)
. reduce 13
state 7
var_declar : type_spec . ID ';' (7)
var_declar : type_spec . ID '[' NUM ']' ';' (8)
var_declar : type_spec . '*' ID ';' (9)
var_declar : type_spec . '*' ID '[' NUM ']' ';' (10)
fun_declar : type_spec . fun_tag '(' LL params ')' comp_stmt (15)
fun_declar : type_spec . fun_tag '(' LL params ')' ';' (16)
ID shift 12
CDECL shift 13
STDCALL shift 14
'*' shift 15
. error
callconvent goto 16
fun_tag goto 17
state 8
declar : var_declar . (5)
. reduce 5
state 9
declar : fun_declar . (6)
. reduce 6
state 10
program : M declar_list . (1)
declar_list : declar_list . declar (3)
error shift 3
INT shift 4
VOID shift 5
CHAR shift 6
$end reduce 1
type_spec goto 7
var_declar goto 8
fun_declar goto 9
declar goto 18
state 11
declar_list : declar . (4)
. reduce 4
state 12
var_declar : type_spec ID . ';' (7)
var_declar : type_spec ID . '[' NUM ']' ';' (8)
fun_tag : ID . (19)
';' shift 19
'[' shift 20
'(' reduce 19
state 13
callconvent : CDECL . (67)
. reduce 67
state 14
callconvent : STDCALL . (68)
. reduce 68
state 15
var_declar : type_spec '*' . ID ';' (9)
var_declar : type_spec '*' . ID '[' NUM ']' ';' (10)
ID shift 21
. error
state 16
fun_tag : callconvent . ID (18)
ID shift 22
. error
state 17
fun_declar : type_spec fun_tag . '(' LL params ')' comp_stmt (15)
fun_declar : type_spec fun_tag . '(' LL params ')' ';' (16)
'(' shift 23
. error
state 18
declar_list : declar_list declar . (3)
. reduce 3
state 19
var_declar : type_spec ID ';' . (7)
. reduce 7
state 20
var_declar : type_spec ID '[' . NUM ']' ';' (8)
NUM shift 24
. error
state 21
var_declar : type_spec '*' ID . ';' (9)
var_declar : type_spec '*' ID . '[' NUM ']' ';' (10)
';' shift 25
'[' shift 26
. error
state 22
fun_tag : callconvent ID . (18)
. reduce 18
state 23
fun_declar : type_spec fun_tag '(' . LL params ')' comp_stmt (15)
fun_declar : type_spec fun_tag '(' . LL params ')' ';' (16)
LL : . (17)
. reduce 17
LL goto 27
state 24
var_declar : type_spec ID '[' NUM . ']' ';' (8)
']' shift 28
. error
state 25
var_declar : type_spec '*' ID ';' . (9)
. reduce 9
state 26
var_declar : type_spec '*' ID '[' . NUM ']' ';' (10)
NUM shift 29
. error
state 27
fun_declar : type_spec fun_tag '(' LL . params ')' comp_stmt (15)
fun_declar : type_spec fun_tag '(' LL . params ')' ';' (16)
error shift 3
INT shift 4
VOID shift 30
CHAR shift 6
. error
type_spec goto 31
params goto 32
param_list goto 33
param goto 34
state 28
var_declar : type_spec ID '[' NUM ']' . ';' (8)
';' shift 35
. error
state 29
var_declar : type_spec '*' ID '[' NUM . ']' ';' (10)
']' shift 36
. error
state 30
type_spec : VOID . (12)
params : VOID . (21)
ID reduce 12
'*' reduce 12
')' reduce 21
state 31
param : type_spec . ID (24)
param : type_spec . '*' ID (25)
param : type_spec . ID '[' ']' (26)
ID shift 37
'*' shift 38
. error
state 32
fun_declar : type_spec fun_tag '(' LL params . ')' comp_stmt (15)
fun_declar : type_spec fun_tag '(' LL params . ')' ';' (16)
')' shift 39
. error
state 33
params : param_list . (20)
param_list : param_list . ',' param (22)
',' shift 40
')' reduce 20
state 34
param_list : param . (23)
. reduce 23
state 35
var_declar : type_spec ID '[' NUM ']' ';' . (8)
. reduce 8
state 36
var_declar : type_spec '*' ID '[' NUM ']' . ';' (10)
';' shift 41
. error
state 37
param : type_spec ID . (24)
param : type_spec ID . '[' ']' (26)
'[' shift 42
')' reduce 24
',' reduce 24
state 38
param : type_spec '*' . ID (25)
ID shift 43
. error
state 39
fun_declar : type_spec fun_tag '(' LL params ')' . comp_stmt (15)
fun_declar : type_spec fun_tag '(' LL params ')' . ';' (16)
';' shift 44
'{' shift 45
. error
comp_stmt goto 46
state 40
param_list : param_list ',' . param (22)
error shift 3
INT shift 4
VOID shift 5
CHAR shift 6
. error
type_spec goto 31
param goto 47
state 41
var_declar : type_spec '*' ID '[' NUM ']' ';' . (10)
. reduce 10
state 42
param : type_spec ID '[' . ']' (26)
']' shift 48
. error
state 43
param : type_spec '*' ID . (25)
. reduce 25
state 44
fun_declar : type_spec fun_tag '(' LL params ')' ';' . (16)
. reduce 16
state 45
comp_stmt : '{' . local_declars stmt_list '}' (27)
local_declars : . (29)
. reduce 29
local_declars goto 49
state 46
fun_declar : type_spec fun_tag '(' LL params ')' comp_stmt . (15)
. reduce 15
state 47
param_list : param_list ',' param . (22)
. reduce 22
state 48
param : type_spec ID '[' ']' . (26)
. reduce 26
state 49
comp_stmt : '{' local_declars . stmt_list '}' (27)
local_declars : local_declars . var_declar (28)
stmt_list : . (31)
error shift 3
INT shift 4
VOID shift 5
CHAR shift 6
ID reduce 31
NUM reduce 31
IF reduce 31
WHILE reduce 31
RETURN reduce 31
STRING_LITERAL reduce 31
CHAR_LITERAL reduce 31
'-' reduce 31
';' reduce 31
'(' reduce 31
'{' reduce 31
'}' reduce 31
'!' reduce 31
type_spec goto 50
var_declar goto 51
stmt_list goto 52
state 50
var_declar : type_spec . ID ';' (7)
var_declar : type_spec . ID '[' NUM ']' ';' (8)
var_declar : type_spec . '*' ID ';' (9)
var_declar : type_spec . '*' ID '[' NUM ']' ';' (10)
ID shift 53
'*' shift 15
. error
state 51
local_declars : local_declars var_declar . (28)
. reduce 28
state 52
comp_stmt : '{' local_declars stmt_list . '}' (27)
stmt_list : stmt_list . stmt (30)
ID shift 54
NUM shift 55
IF shift 56
WHILE shift 57
RETURN shift 58
STRING_LITERAL shift 59
CHAR_LITERAL shift 60
'-' shift 61
';' shift 62
'(' shift 63
'{' shift 45
'}' shift 64
'!' shift 65
. error
unaryop goto 66
var goto 67
expr goto 68
factor goto 69
unary_expr goto 70
term goto 71
add_expr goto 72
simple_expr goto 73
comp_stmt goto 74
if_stmt goto 75
while_stmt goto 76
stmt goto 77
expr_stmt goto 78
return_stmt goto 79
call goto 80
state 53
var_declar : type_spec ID . ';' (7)
var_declar : type_spec ID . '[' NUM ']' ';' (8)
';' shift 19
'[' shift 20
. error
state 54
var : ID . (46)
var : ID . '[' expr ']' (47)
call : ID . '(' args ')' (62)
'[' shift 81
'(' shift 82
EQ reduce 46
NE reduce 46
LT reduce 46
GT reduce 46
LE reduce 46
GE reduce 46
'=' reduce 46
'+' reduce 46
'-' reduce 46
'*' reduce 46
'/' reduce 46
'%' reduce 46
';' reduce 46
']' reduce 46
')' reduce 46
',' reduce 46
state 55
factor : NUM . (59)
. reduce 59
state 56
if_stmt : IF . '(' expr ')' stmt (39)
if_stmt : IF . '(' expr ')' stmt ELSE stmt (40)
'(' shift 83
. error
state 57
while_stmt : WHILE . '(' expr ')' stmt (41)
'(' shift 84
. error
state 58
return_stmt : RETURN . ';' (42)
return_stmt : RETURN . expr ';' (43)
ID shift 54
NUM shift 55
STRING_LITERAL shift 59
CHAR_LITERAL shift 60
'-' shift 61
';' shift 85
'(' shift 63
'!' shift 65
. error
unaryop goto 66
var goto 67
expr goto 86
factor goto 69
unary_expr goto 70
term goto 71
add_expr goto 72
simple_expr goto 73
call goto 80
state 59
factor : STRING_LITERAL . (60)
. reduce 60
state 60
factor : CHAR_LITERAL . (61)
. reduce 61
state 61
unaryop : '-' . (81)
. reduce 81
state 62
expr_stmt : ';' . (38)
. reduce 38
state 63
factor : '(' . expr ')' (56)
ID shift 54
NUM shift 55
STRING_LITERAL shift 59
CHAR_LITERAL shift 60
'-' shift 61
'(' shift 63
'!' shift 65
. error
unaryop goto 66
var goto 67
expr goto 87
factor goto 69
unary_expr goto 70
term goto 71
add_expr goto 72
simple_expr goto 73
call goto 80
state 64
comp_stmt : '{' local_declars stmt_list '}' . (27)
. reduce 27
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -