⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 cm_parse.v

📁 小型编译系统的源代码
💻 V
📖 第 1 页 / 共 3 页
字号:
	idlist goto 14
	id goto 85
	array goto 16


state 52
	call : id . LPAREN arg_list RPAREN
	call : id . LPAREN RPAREN

	LPAREN  shift 86


state 53
	statement : compound_stmt .  (40)

	.  reduce 40


state 54
	compound_stmt : LBRACE local_declarations . RBRACE
	compound_stmt : LBRACE local_declarations . statement_list RBRACE
	local_declarations : local_declarations . var_declaration

	INT  shift 4
	CHAR  shift 5
	FLOAT  shift 6
	VOID  shift 7
	IF  shift 38
	WHILE  shift 39
	FOR  shift 40
	RETURN  shift 41
	ID  shift 42
	NUM  shift 43
	FLOATNUM  shift 44
	CONSTCHAR  shift 45
	NOT  shift 46
	LPAREN  shift 47
	SEMICOLON  shift 48
	LBRACE  shift 32
	RBRACE  shift 87

	var_declaration goto 88
	type_specifier goto 51
	id goto 52
	compound_stmt goto 53
	statement_list goto 89
	statement goto 56
	expression_stmt goto 57
	selection_stmt goto 58
	while_stmt goto 59
	for_stmt goto 60
	return_stmt goto 61
	expression goto 62
	var goto 63
	or_expression goto 64
	and_expression goto 65
	additive_expression goto 66
	rel_expression goto 67
	term goto 68
	factor goto 69
	call goto 70


state 55
	compound_stmt : LBRACE statement_list . RBRACE
	statement_list : statement_list . statement

	IF  shift 38
	WHILE  shift 39
	FOR  shift 40
	RETURN  shift 41
	ID  shift 42
	NUM  shift 43
	FLOATNUM  shift 44
	CONSTCHAR  shift 45
	NOT  shift 46
	LPAREN  shift 47
	SEMICOLON  shift 48
	LBRACE  shift 32
	RBRACE  shift 90

	id goto 52
	compound_stmt goto 53
	statement goto 91
	expression_stmt goto 57
	selection_stmt goto 58
	while_stmt goto 59
	for_stmt goto 60
	return_stmt goto 61
	expression goto 62
	var goto 63
	or_expression goto 64
	and_expression goto 65
	additive_expression goto 66
	rel_expression goto 67
	term goto 68
	factor goto 69
	call goto 70


state 56
	statement_list : statement .  (38)

	.  reduce 38


state 57
	statement : expression_stmt .  (39)

	.  reduce 39


state 58
	statement : selection_stmt .  (41)

	.  reduce 41


state 59
	statement : while_stmt .  (42)

	.  reduce 42


state 60
	statement : for_stmt .  (43)

	.  reduce 43


state 61
	statement : return_stmt .  (44)

	.  reduce 44


state 62
	expression_stmt : expression . SEMICOLON

	SEMICOLON  shift 92


state 63
	expression : var . ASSIGN expression
	factor : var .  (80)

	ASSIGN  shift 93
	.  reduce 80


state 64
	expression : or_expression .  (54)
	or_expression : or_expression . OR and_expression

	OR  shift 94
	.  reduce 54


state 65
	or_expression : and_expression .  (63)
	and_expression : and_expression . AND additive_expression

	AND  shift 95
	.  reduce 63


state 66
	and_expression : additive_expression .  (65)
	additive_expression : additive_expression . EQ rel_expression
	additive_expression : additive_expression . LT rel_expression
	additive_expression : additive_expression . GT rel_expression
	additive_expression : additive_expression . LE rel_expression
	additive_expression : additive_expression . GE rel_expression
	additive_expression : additive_expression . NE rel_expression

	EQ  shift 96
	LT  shift 97
	LE  shift 98
	GT  shift 99
	GE  shift 100
	NE  shift 101
	.  reduce 65


state 67
	additive_expression : rel_expression .  (72)
	rel_expression : rel_expression . PLUS term
	rel_expression : rel_expression . MINUS term

	PLUS  shift 102
	MINUS  shift 103
	.  reduce 72


state 68
	rel_expression : term .  (75)
	term : term . TIMES factor
	term : term . OVER factor

	TIMES  shift 104
	OVER  shift 105
	.  reduce 75


state 69
	term : factor .  (78)

	.  reduce 78


state 70
	factor : call .  (81)

	.  reduce 81


state 71
	param : type_specifier ID $$2 . LBRACKET RBRACKET

	LBRACKET  shift 106


state 72
	fun_declaration : type_specifier id LPAREN params RPAREN SEMICOLON .  (19)

	.  reduce 19


state 73
	fun_definition : type_specifier id LPAREN params RPAREN compound_stmt .  (21)

	.  reduce 21


state 74
	param_list : param_list COMMA param .  (26)

	.  reduce 26


state 75
	array : id LBRACKET NUM $$1 RBRACKET .  (13)

	.  reduce 13


state 76
	selection_stmt : IF LPAREN . expression RPAREN statement ELSE statement
	selection_stmt : IF LPAREN . expression RPAREN statement

	ID  shift 42
	NUM  shift 43
	FLOATNUM  shift 44
	CONSTCHAR  shift 45
	NOT  shift 46
	LPAREN  shift 47

	id goto 52
	expression goto 107
	var goto 63
	or_expression goto 64
	and_expression goto 65
	additive_expression goto 66
	rel_expression goto 67
	term goto 68
	factor goto 69
	call goto 70


state 77
	while_stmt : WHILE LPAREN . expression RPAREN statement

	ID  shift 42
	NUM  shift 43
	FLOATNUM  shift 44
	CONSTCHAR  shift 45
	NOT  shift 46
	LPAREN  shift 47

	id goto 52
	expression goto 108
	var goto 63
	or_expression goto 64
	and_expression goto 65
	additive_expression goto 66
	rel_expression goto 67
	term goto 68
	factor goto 69
	call goto 70


state 78
	for_stmt : FOR LPAREN . for_expression SEMICOLON for_expression SEMICOLON for_expression RPAREN statement
	empty : .  (58)

	ID  shift 42
	NUM  shift 43
	FLOATNUM  shift 44
	CONSTCHAR  shift 45
	NOT  shift 46
	LPAREN  shift 47
	.  reduce 58

	empty goto 109
	id goto 52
	for_expression goto 110
	var goto 111
	or_expression goto 112
	and_expression goto 65
	additive_expression goto 66
	rel_expression goto 67
	term goto 68
	factor goto 69
	call goto 70


state 79
	return_stmt : RETURN SEMICOLON .  (51)

	.  reduce 51


state 80
	return_stmt : RETURN expression . SEMICOLON

	SEMICOLON  shift 113


state 81
	var : ID $$3 . LBRACKET expression RBRACKET

	LBRACKET  shift 114


state 82
	factor : var .  (80)

	.  reduce 80


state 83
	factor : NOT factor .  (85)

	.  reduce 85


state 84
	factor : LPAREN expression . RPAREN

	RPAREN  shift 115


state 85
	idlist : id .  (11)
	array : id . LBRACKET NUM $$1 RBRACKET

	LBRACKET  shift 20
	.  reduce 11


state 86
	call : id LPAREN . arg_list RPAREN
	call : id LPAREN . RPAREN

	ID  shift 42
	NUM  shift 43
	FLOATNUM  shift 44
	CONSTCHAR  shift 45
	NOT  shift 46
	LPAREN  shift 47
	RPAREN  shift 116

	id goto 52
	expression goto 117
	var goto 63
	or_expression goto 64
	and_expression goto 65
	additive_expression goto 66
	rel_expression goto 67
	term goto 68
	factor goto 69
	call goto 70
	arg_list goto 118


state 87
	compound_stmt : LBRACE local_declarations RBRACE .  (31)

	.  reduce 31


state 88
	local_declarations : local_declarations var_declaration .  (35)

	.  reduce 35


state 89
	compound_stmt : LBRACE local_declarations statement_list . RBRACE
	statement_list : statement_list . statement

	IF  shift 38
	WHILE  shift 39
	FOR  shift 40
	RETURN  shift 41
	ID  shift 42
	NUM  shift 43
	FLOATNUM  shift 44
	CONSTCHAR  shift 45
	NOT  shift 46
	LPAREN  shift 47
	SEMICOLON  shift 48
	LBRACE  shift 32
	RBRACE  shift 119

	id goto 52
	compound_stmt goto 53
	statement goto 91
	expression_stmt goto 57
	selection_stmt goto 58
	while_stmt goto 59
	for_stmt goto 60
	return_stmt goto 61
	expression goto 62
	var goto 63
	or_expression goto 64
	and_expression goto 65
	additive_expression goto 66
	rel_expression goto 67
	term goto 68
	factor goto 69
	call goto 70


state 90
	compound_stmt : LBRACE statement_list RBRACE .  (34)

	.  reduce 34


state 91
	statement_list : statement_list statement .  (37)

	.  reduce 37


state 92
	expression_stmt : expression SEMICOLON .  (45)

	.  reduce 45


state 93
	expression : var ASSIGN . expression

	ID  shift 42
	NUM  shift 43
	FLOATNUM  shift 44
	CONSTCHAR  shift 45
	NOT  shift 46
	LPAREN  shift 47

	id goto 52
	expression goto 120
	var goto 63
	or_expression goto 64
	and_expression goto 65
	additive_expression goto 66
	rel_expression goto 67
	term goto 68
	factor goto 69
	call goto 70


state 94
	or_expression : or_expression OR . and_expression

	ID  shift 42
	NUM  shift 43
	FLOATNUM  shift 44
	CONSTCHAR  shift 45
	NOT  shift 46
	LPAREN  shift 47

	id goto 52
	var goto 82
	and_expression goto 121
	additive_expression goto 66
	rel_expression goto 67
	term goto 68
	factor goto 69
	call goto 70


state 95
	and_expression : and_expression AND . additive_expression

	ID  shift 42
	NUM  shift 43
	FLOATNUM  shift 44
	CONSTCHAR  shift 45
	NOT  shift 46
	LPAREN  shift 47

	id goto 52
	var goto 82
	additive_expression goto 122
	rel_expression goto 67
	term goto 68
	factor goto 69
	call goto 70


state 96
	additive_expression : additive_expression EQ . rel_expression

	ID  shift 42
	NUM  shift 43
	FLOATNUM  shift 44
	CONSTCHAR  shift 45
	NOT  shift 46
	LPAREN  shift 47

	id goto 52
	var goto 82
	rel_expression goto 123
	term goto 68
	factor goto 69
	call goto 70


state 97
	additive_expression : additive_expression LT . rel_expression

	ID  shift 42
	NUM  shift 43
	FLOATNUM  shift 44
	CONSTCHAR  shift 45
	NOT  shift 46
	LPAREN  shift 47

	id goto 52
	var goto 82
	rel_expression goto 124
	term goto 68
	factor goto 69
	call goto 70


state 98
	additive_expression : additive_expression LE . rel_expression

	ID  shift 42
	NUM  shift 43
	FLOATNUM  shift 44
	CONSTCHAR  shift 45
	NOT  shift 46
	LPAREN  shift 47

	id goto 52
	var goto 82
	rel_expression goto 125
	term goto 68
	factor goto 69
	call goto 70


state 99
	additive_expression : additive_expression GT . rel_expression

	ID  shift 42
	NUM  shift 43
	FLOATNUM  shift 44
	CONSTCHAR  shift 45
	NOT  shift 46
	LPAREN  shift 47

	id goto 52
	var goto 82
	rel_expression goto 126
	term goto 68
	factor goto 69
	call goto 70


state 100
	additive_expression : additive_expression GE . rel_expression

	ID  shift 42
	NUM  shift 43
	FLOATNUM  shift 44
	CONSTCHAR  shift 45
	NOT  shift 46
	LPAREN  shift 47

	id goto 52
	var goto 82
	rel_expression goto 127
	term goto 68
	factor goto 69
	call goto 70


state 101
	additive_expression : additive_expression NE . rel_expression

	ID  shift 42
	NUM  shift 43
	FLOATNUM  shift 44
	CONSTCHAR  shift 45
	NOT  shift 46
	LPAREN  shift 47

	id goto 52
	var goto 82
	rel_expression goto 128
	term goto 68
	factor goto 69

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -