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

📄 parse.v

📁 完成一个简化的C语言编译程序
💻 V
📖 第 1 页 / 共 2 页
字号:
	CONSTCHAR  shift 35
	ID  shift 12
	LPAREN  shift 40
	NOT  shift 43

	id goto 46
	expression goto 101
	var goto 75
	or_expression goto 59
	and_expression goto 60
	simple_expression goto 61
	additive_expression goto 62
	term goto 63
	factor goto 64
	call goto 65


state 71
	while_stmt : WHILE LPAREN . expression RPAREN statement

	NUM  shift 33
	FLOATNUM  shift 34
	CONSTCHAR  shift 35
	ID  shift 12
	LPAREN  shift 40
	NOT  shift 43

	id goto 46
	expression goto 102
	var goto 75
	or_expression goto 59
	and_expression goto 60
	simple_expression goto 61
	additive_expression goto 62
	term goto 63
	factor goto 64
	call goto 65


state 72
	break_stmt : BREAK SEMI .  (45)

	.  reduce 45


state 73
	return_stmt : RETURN SEMI .  (42)

	.  reduce 42


state 74
	return_stmt : RETURN expression . SEMI

	SEMI  shift 103


state 75
	factor : var .  (67)

	.  reduce 67


state 76
	factor : LPAREN expression . RPAREN

	RPAREN  shift 104


state 77
	factor : NOT factor .  (72)

	.  reduce 72


state 78
	var_declaration : type_specifier id . SEMI
	var_declaration : type_specifier id . LBRACKET NUM $$1 RBRACKET SEMI

	LBRACKET  shift 14
	SEMI  shift 16


state 79
	var : id LBRACKET . expression RBRACKET

	NUM  shift 33
	FLOATNUM  shift 34
	CONSTCHAR  shift 35
	ID  shift 12
	LPAREN  shift 40
	NOT  shift 43

	id goto 46
	expression goto 105
	var goto 75
	or_expression goto 59
	and_expression goto 60
	simple_expression goto 61
	additive_expression goto 62
	term goto 63
	factor goto 64
	call goto 65


state 80
	call : id LPAREN . args RPAREN
	call : id LPAREN . RPAREN

	NUM  shift 33
	FLOATNUM  shift 34
	CONSTCHAR  shift 35
	ID  shift 12
	LPAREN  shift 40
	RPAREN  shift 106
	NOT  shift 43

	id goto 46
	expression goto 107
	var goto 75
	or_expression goto 59
	and_expression goto 60
	simple_expression goto 61
	additive_expression goto 62
	term goto 63
	factor goto 64
	call goto 65
	args goto 108
	arg_list goto 109


state 81
	compound_stmt : LBC local_declarations RBC .  (22)

	.  reduce 22


state 82
	local_declarations : local_declarations var_declaration .  (26)

	.  reduce 26


state 83
	compound_stmt : LBC local_declarations statement_list . RBC
	statement_list : statement_list . statement

	NUM  shift 33
	FLOATNUM  shift 34
	CONSTCHAR  shift 35
	ID  shift 12
	IF  shift 36
	WHILE  shift 37
	BREAK  shift 38
	RETURN  shift 39
	LPAREN  shift 40
	LBC  shift 26
	RBC  shift 110
	SEMI  shift 42
	NOT  shift 43

	id goto 46
	compound_stmt goto 47
	statement goto 85
	expression_stmt goto 51
	if_stmt goto 52
	while_stmt goto 53
	return_stmt goto 54
	assign_stmt goto 55
	break_stmt goto 56
	expression goto 57
	var goto 58
	or_expression goto 59
	and_expression goto 60
	simple_expression goto 61
	additive_expression goto 62
	term goto 63
	factor goto 64
	call goto 65


state 84
	compound_stmt : LBC statement_list RBC .  (25)

	.  reduce 25


state 85
	statement_list : statement_list statement .  (28)

	.  reduce 28


state 86
	expression_stmt : expression SEMI .  (37)

	.  reduce 37


state 87
	assign_stmt : var ASSIGN . expression SEMI

	NUM  shift 33
	FLOATNUM  shift 34
	CONSTCHAR  shift 35
	ID  shift 12
	LPAREN  shift 40
	NOT  shift 43

	id goto 46
	expression goto 111
	var goto 75
	or_expression goto 59
	and_expression goto 60
	simple_expression goto 61
	additive_expression goto 62
	term goto 63
	factor goto 64
	call goto 65


state 88
	or_expression : or_expression OR . and_expression

	NUM  shift 33
	FLOATNUM  shift 34
	CONSTCHAR  shift 35
	ID  shift 12
	LPAREN  shift 40
	NOT  shift 43

	id goto 46
	var goto 75
	and_expression goto 112
	simple_expression goto 61
	additive_expression goto 62
	term goto 63
	factor goto 64
	call goto 65


state 89
	and_expression : and_expression AND . simple_expression

	NUM  shift 33
	FLOATNUM  shift 34
	CONSTCHAR  shift 35
	ID  shift 12
	LPAREN  shift 40
	NOT  shift 43

	id goto 46
	var goto 75
	simple_expression goto 113
	additive_expression goto 62
	term goto 63
	factor goto 64
	call goto 65


state 90
	simple_expression : additive_expression EQ . additive_expression

	NUM  shift 33
	FLOATNUM  shift 34
	CONSTCHAR  shift 35
	ID  shift 12
	LPAREN  shift 40
	NOT  shift 43

	id goto 46
	var goto 75
	additive_expression goto 114
	term goto 63
	factor goto 64
	call goto 65


state 91
	simple_expression : additive_expression LT . additive_expression

	NUM  shift 33
	FLOATNUM  shift 34
	CONSTCHAR  shift 35
	ID  shift 12
	LPAREN  shift 40
	NOT  shift 43

	id goto 46
	var goto 75
	additive_expression goto 115
	term goto 63
	factor goto 64
	call goto 65


state 92
	simple_expression : additive_expression LE . additive_expression

	NUM  shift 33
	FLOATNUM  shift 34
	CONSTCHAR  shift 35
	ID  shift 12
	LPAREN  shift 40
	NOT  shift 43

	id goto 46
	var goto 75
	additive_expression goto 116
	term goto 63
	factor goto 64
	call goto 65


state 93
	simple_expression : additive_expression GT . additive_expression

	NUM  shift 33
	FLOATNUM  shift 34
	CONSTCHAR  shift 35
	ID  shift 12
	LPAREN  shift 40
	NOT  shift 43

	id goto 46
	var goto 75
	additive_expression goto 117
	term goto 63
	factor goto 64
	call goto 65


state 94
	simple_expression : additive_expression GE . additive_expression

	NUM  shift 33
	FLOATNUM  shift 34
	CONSTCHAR  shift 35
	ID  shift 12
	LPAREN  shift 40
	NOT  shift 43

	id goto 46
	var goto 75
	additive_expression goto 118
	term goto 63
	factor goto 64
	call goto 65


state 95
	simple_expression : additive_expression NE . additive_expression

	NUM  shift 33
	FLOATNUM  shift 34
	CONSTCHAR  shift 35
	ID  shift 12
	LPAREN  shift 40
	NOT  shift 43

	id goto 46
	var goto 75
	additive_expression goto 119
	term goto 63
	factor goto 64
	call goto 65


state 96
	additive_expression : additive_expression PLUS . term

	NUM  shift 33
	FLOATNUM  shift 34
	CONSTCHAR  shift 35
	ID  shift 12
	LPAREN  shift 40
	NOT  shift 43

	id goto 46
	var goto 75
	term goto 120
	factor goto 64
	call goto 65


state 97
	additive_expression : additive_expression MINUS . term

	NUM  shift 33
	FLOATNUM  shift 34
	CONSTCHAR  shift 35
	ID  shift 12
	LPAREN  shift 40
	NOT  shift 43

	id goto 46
	var goto 75
	term goto 121
	factor goto 64
	call goto 65


state 98
	term : term TIMES . factor

	NUM  shift 33
	FLOATNUM  shift 34
	CONSTCHAR  shift 35
	ID  shift 12
	LPAREN  shift 40
	NOT  shift 43

	id goto 46
	var goto 75
	factor goto 122
	call goto 65


state 99
	term : term OVER . factor

	NUM  shift 33
	FLOATNUM  shift 34
	CONSTCHAR  shift 35
	ID  shift 12
	LPAREN  shift 40
	NOT  shift 43

	id goto 46
	var goto 75
	factor goto 123
	call goto 65


state 100
	param : type_specifier id LBRACKET RBRACKET .  (21)

	.  reduce 21


state 101
	if_stmt : IF LPAREN expression . RPAREN statement ELSE statement
	if_stmt : IF LPAREN expression . RPAREN statement

	RPAREN  shift 124


state 102
	while_stmt : WHILE LPAREN expression . RPAREN statement

	RPAREN  shift 125


state 103
	return_stmt : RETURN expression SEMI .  (43)

	.  reduce 43


state 104
	factor : LPAREN expression RPAREN .  (66)

	.  reduce 66


state 105
	var : id LBRACKET expression . RBRACKET

	RBRACKET  shift 126


state 106
	call : id LPAREN RPAREN .  (74)

	.  reduce 74


state 107
	arg_list : expression . COMMA arg_list
	arg_list : expression .  (77)

	COMMA  shift 127
	.  reduce 77


state 108
	call : id LPAREN args . RPAREN

	RPAREN  shift 128


state 109
	args : arg_list .  (75)

	.  reduce 75


state 110
	compound_stmt : LBC local_declarations statement_list RBC .  (23)

	.  reduce 23


state 111
	assign_stmt : var ASSIGN expression . SEMI

	SEMI  shift 129


state 112
	or_expression : or_expression OR and_expression .  (49)
	and_expression : and_expression . AND simple_expression

	AND  shift 89
	.  reduce 49


state 113
	and_expression : and_expression AND simple_expression .  (51)

	.  reduce 51


state 114
	simple_expression : additive_expression EQ additive_expression .  (57)
	additive_expression : additive_expression . PLUS term
	additive_expression : additive_expression . MINUS term

	PLUS  shift 96
	MINUS  shift 97
	.  reduce 57


state 115
	simple_expression : additive_expression LT additive_expression .  (56)
	additive_expression : additive_expression . PLUS term
	additive_expression : additive_expression . MINUS term

	PLUS  shift 96
	MINUS  shift 97
	.  reduce 56


state 116
	simple_expression : additive_expression LE additive_expression .  (55)
	additive_expression : additive_expression . PLUS term
	additive_expression : additive_expression . MINUS term

	PLUS  shift 96
	MINUS  shift 97
	.  reduce 55


state 117
	simple_expression : additive_expression GT additive_expression .  (54)
	additive_expression : additive_expression . PLUS term
	additive_expression : additive_expression . MINUS term

	PLUS  shift 96
	MINUS  shift 97
	.  reduce 54


state 118
	simple_expression : additive_expression GE additive_expression .  (53)
	additive_expression : additive_expression . PLUS term
	additive_expression : additive_expression . MINUS term

	PLUS  shift 96
	MINUS  shift 97
	.  reduce 53


state 119
	simple_expression : additive_expression NE additive_expression .  (58)
	additive_expression : additive_expression . PLUS term
	additive_expression : additive_expression . MINUS term

	PLUS  shift 96
	MINUS  shift 97
	.  reduce 58


state 120
	additive_expression : additive_expression PLUS term .  (60)
	term : term . TIMES factor
	term : term . OVER factor

	TIMES  shift 98
	OVER  shift 99
	.  reduce 60


state 121
	additive_expression : additive_expression MINUS term .  (61)
	term : term . TIMES factor
	term : term . OVER factor

	TIMES  shift 98
	OVER  shift 99
	.  reduce 61


state 122
	term : term TIMES factor .  (63)

	.  reduce 63


state 123
	term : term OVER factor .  (64)

	.  reduce 64


state 124
	if_stmt : IF LPAREN expression RPAREN . statement ELSE statement
	if_stmt : IF LPAREN expression RPAREN . statement

	NUM  shift 33
	FLOATNUM  shift 34
	CONSTCHAR  shift 35
	ID  shift 12
	IF  shift 36
	WHILE  shift 37
	BREAK  shift 38
	RETURN  shift 39
	LPAREN  shift 40
	LBC  shift 26
	SEMI  shift 42
	NOT  shift 43

	id goto 46
	compound_stmt goto 47
	statement goto 130
	expression_stmt goto 51
	if_stmt goto 52
	while_stmt goto 53
	return_stmt goto 54
	assign_stmt goto 55
	break_stmt goto 56
	expression goto 57
	var goto 58
	or_expression goto 59
	and_expression goto 60
	simple_expression goto 61
	additive_expression goto 62
	term goto 63
	factor goto 64
	call goto 65


state 125
	while_stmt : WHILE LPAREN expression RPAREN . statement

	NUM  shift 33
	FLOATNUM  shift 34
	CONSTCHAR  shift 35
	ID  shift 12
	IF  shift 36
	WHILE  shift 37
	BREAK  shift 38
	RETURN  shift 39
	LPAREN  shift 40
	LBC  shift 26
	SEMI  shift 42
	NOT  shift 43

	id goto 46
	compound_stmt goto 47
	statement goto 131
	expression_stmt goto 51
	if_stmt goto 52
	while_stmt goto 53
	return_stmt goto 54
	assign_stmt goto 55
	break_stmt goto 56
	expression goto 57
	var goto 58
	or_expression goto 59
	and_expression goto 60
	simple_expression goto 61
	additive_expression goto 62
	term goto 63
	factor goto 64
	call goto 65


state 126
	var : id LBRACKET expression RBRACKET .  (47)

	.  reduce 47


state 127
	arg_list : expression COMMA . arg_list

	NUM  shift 33
	FLOATNUM  shift 34
	CONSTCHAR  shift 35
	ID  shift 12
	LPAREN  shift 40
	NOT  shift 43

	id goto 46
	expression goto 107
	var goto 75
	or_expression goto 59
	and_expression goto 60
	simple_expression goto 61
	additive_expression goto 62
	term goto 63
	factor goto 64
	call goto 65
	arg_list goto 132


state 128
	call : id LPAREN args RPAREN .  (73)

	.  reduce 73


state 129
	assign_stmt : var ASSIGN expression SEMI .  (44)

	.  reduce 44


130: shift-reduce conflict (shift 133, reduce 40) on ELSE
state 130
	if_stmt : IF LPAREN expression RPAREN statement . ELSE statement
	if_stmt : IF LPAREN expression RPAREN statement .  (40)

	ELSE  shift 133
	.  reduce 40


state 131
	while_stmt : WHILE LPAREN expression RPAREN statement .  (41)

	.  reduce 41


state 132
	arg_list : expression COMMA arg_list .  (76)

	.  reduce 76


state 133
	if_stmt : IF LPAREN expression RPAREN statement ELSE . statement

	NUM  shift 33
	FLOATNUM  shift 34
	CONSTCHAR  shift 35
	ID  shift 12
	IF  shift 36
	WHILE  shift 37
	BREAK  shift 38
	RETURN  shift 39
	LPAREN  shift 40
	LBC  shift 26
	SEMI  shift 42
	NOT  shift 43

	id goto 46
	compound_stmt goto 47
	statement goto 134
	expression_stmt goto 51
	if_stmt goto 52
	while_stmt goto 53
	return_stmt goto 54
	assign_stmt goto 55
	break_stmt goto 56
	expression goto 57
	var goto 58
	or_expression goto 59
	and_expression goto 60
	simple_expression goto 61
	additive_expression goto 62
	term goto 63
	factor goto 64
	call goto 65


state 134
	if_stmt : IF LPAREN expression RPAREN statement ELSE statement .  (39)

	.  reduce 39


State 130 contains 1 shift-reduce conflict


37 tokens, 33 nonterminals
78 grammar rules, 135 states

⌨️ 快捷键说明

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