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

📄 cm_parse.v

📁 小型编译系统的源代码
💻 V
📖 第 1 页 / 共 3 页
字号:
	call goto 70


state 102
	rel_expression : rel_expression PLUS . term

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

	id goto 52
	var goto 82
	term goto 129
	factor goto 69
	call goto 70


state 103
	rel_expression : rel_expression MINUS . term

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

	id goto 52
	var goto 82
	term goto 130
	factor goto 69
	call goto 70


state 104
	term : term TIMES . factor

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

	id goto 52
	var goto 82
	factor goto 131
	call goto 70


state 105
	term : term OVER . factor

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

	id goto 52
	var goto 82
	factor goto 132
	call goto 70


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

	RBRACKET  shift 133


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

	RPAREN  shift 134


state 108
	while_stmt : WHILE LPAREN expression . RPAREN statement

	RPAREN  shift 135


state 109
	for_expression : empty .  (57)

	.  reduce 57


state 110
	for_stmt : FOR LPAREN for_expression . SEMICOLON for_expression SEMICOLON for_expression RPAREN statement

	SEMICOLON  shift 136


state 111
	for_expression : var . ASSIGN expression
	factor : var .  (80)

	ASSIGN  shift 137
	.  reduce 80


state 112
	for_expression : or_expression .  (56)
	or_expression : or_expression . OR and_expression

	OR  shift 94
	.  reduce 56


state 113
	return_stmt : RETURN expression SEMICOLON .  (52)

	.  reduce 52


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

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

	id goto 52
	expression goto 138
	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 115
	factor : LPAREN expression RPAREN .  (79)

	.  reduce 79


state 116
	call : id LPAREN RPAREN .  (87)

	.  reduce 87


state 117
	arg_list : expression . COMMA arg_list
	arg_list : expression .  (89)

	COMMA  shift 139
	.  reduce 89


state 118
	call : id LPAREN arg_list . RPAREN

	RPAREN  shift 140


state 119
	compound_stmt : LBRACE local_declarations statement_list RBRACE .  (32)

	.  reduce 32


state 120
	expression : var ASSIGN expression .  (53)

	.  reduce 53


state 121
	or_expression : or_expression OR and_expression .  (62)
	and_expression : and_expression . AND additive_expression

	AND  shift 95
	.  reduce 62


state 122
	and_expression : and_expression AND additive_expression .  (64)
	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 64


state 123
	additive_expression : additive_expression EQ rel_expression .  (66)
	rel_expression : rel_expression . PLUS term
	rel_expression : rel_expression . MINUS term

	PLUS  shift 102
	MINUS  shift 103
	.  reduce 66


state 124
	additive_expression : additive_expression LT rel_expression .  (67)
	rel_expression : rel_expression . PLUS term
	rel_expression : rel_expression . MINUS term

	PLUS  shift 102
	MINUS  shift 103
	.  reduce 67


state 125
	additive_expression : additive_expression LE rel_expression .  (69)
	rel_expression : rel_expression . PLUS term
	rel_expression : rel_expression . MINUS term

	PLUS  shift 102
	MINUS  shift 103
	.  reduce 69


state 126
	additive_expression : additive_expression GT rel_expression .  (68)
	rel_expression : rel_expression . PLUS term
	rel_expression : rel_expression . MINUS term

	PLUS  shift 102
	MINUS  shift 103
	.  reduce 68


state 127
	additive_expression : additive_expression GE rel_expression .  (70)
	rel_expression : rel_expression . PLUS term
	rel_expression : rel_expression . MINUS term

	PLUS  shift 102
	MINUS  shift 103
	.  reduce 70


state 128
	additive_expression : additive_expression NE rel_expression .  (71)
	rel_expression : rel_expression . PLUS term
	rel_expression : rel_expression . MINUS term

	PLUS  shift 102
	MINUS  shift 103
	.  reduce 71


state 129
	rel_expression : rel_expression PLUS term .  (73)
	term : term . TIMES factor
	term : term . OVER factor

	TIMES  shift 104
	OVER  shift 105
	.  reduce 73


state 130
	rel_expression : rel_expression MINUS term .  (74)
	term : term . TIMES factor
	term : term . OVER factor

	TIMES  shift 104
	OVER  shift 105
	.  reduce 74


state 131
	term : term TIMES factor .  (76)

	.  reduce 76


state 132
	term : term OVER factor .  (77)

	.  reduce 77


state 133
	param : type_specifier ID $$2 LBRACKET RBRACKET .  (30)

	.  reduce 30


state 134
	selection_stmt : IF LPAREN expression RPAREN . statement ELSE statement
	selection_stmt : IF LPAREN expression RPAREN . 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

	id goto 52
	compound_stmt goto 53
	statement goto 141
	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 135
	while_stmt : WHILE LPAREN expression RPAREN . 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

	id goto 52
	compound_stmt goto 53
	statement goto 142
	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 136
	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 143
	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 137
	for_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 144
	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 138
	var : ID $$3 LBRACKET expression . RBRACKET

	RBRACKET  shift 145


state 139
	arg_list : expression COMMA . arg_list

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

	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 146


state 140
	call : id LPAREN arg_list RPAREN .  (86)

	.  reduce 86


141: shift-reduce conflict (shift 147, reduce 48) on ELSE
state 141
	selection_stmt : IF LPAREN expression RPAREN statement . ELSE statement
	selection_stmt : IF LPAREN expression RPAREN statement .  (48)

	ELSE  shift 147
	.  reduce 48


state 142
	while_stmt : WHILE LPAREN expression RPAREN statement .  (49)

	.  reduce 49


state 143
	for_stmt : FOR LPAREN for_expression SEMICOLON for_expression . SEMICOLON for_expression RPAREN statement

	SEMICOLON  shift 148


state 144
	for_expression : var ASSIGN expression .  (55)

	.  reduce 55


state 145
	var : ID $$3 LBRACKET expression RBRACKET .  (61)

	.  reduce 61


state 146
	arg_list : expression COMMA arg_list .  (88)

	.  reduce 88


state 147
	selection_stmt : IF LPAREN expression RPAREN statement ELSE . 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

	id goto 52
	compound_stmt goto 53
	statement goto 149
	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 148
	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 150
	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 149
	selection_stmt : IF LPAREN expression RPAREN statement ELSE statement .  (47)

	.  reduce 47


state 150
	for_stmt : FOR LPAREN for_expression SEMICOLON for_expression SEMICOLON for_expression . RPAREN statement

	RPAREN  shift 151


state 151
	for_stmt : FOR LPAREN for_expression SEMICOLON for_expression SEMICOLON for_expression RPAREN . 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

	id goto 52
	compound_stmt goto 53
	statement goto 152
	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 152
	for_stmt : FOR LPAREN for_expression SEMICOLON for_expression SEMICOLON for_expression RPAREN statement .  (50)

	.  reduce 50


State 19 contains 1 shift-reduce conflict
State 141 contains 1 shift-reduce conflict


37 tokens, 38 nonterminals
90 grammar rules, 153 states

⌨️ 快捷键说明

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