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

📄 y.output

📁 针对“虎书”中的tiger语言写的语法分析器 根据书中对tiger语言的描述写了72条文法
💻 OUTPUT
📖 第 1 页 / 共 5 页
字号:
	expr_seq : program SEMICOLON expr_seq .  (45)

	.  reduce 45


101: shift/reduce conflict (shift 44, reduce 50) on PLUS
101: shift/reduce conflict (shift 45, reduce 50) on MINUS
101: shift/reduce conflict (shift 46, reduce 50) on TIMES
101: shift/reduce conflict (shift 47, reduce 50) on DIVIDE
101: shift/reduce conflict (shift 48, reduce 50) on EQ
101: shift/reduce conflict (shift 49, reduce 50) on NEQ
101: shift/reduce conflict (shift 50, reduce 50) on LT
101: shift/reduce conflict (shift 51, reduce 50) on LE
101: shift/reduce conflict (shift 52, reduce 50) on GT
101: shift/reduce conflict (shift 53, reduce 50) on GE
101: shift/reduce conflict (shift 54, reduce 50) on AND
101: shift/reduce conflict (shift 55, reduce 50) on OR
101: shift/reduce conflict (shift 114, reduce 50) on ELSE
state 101
	binary_operation_expr : program . OR program  (23)
	binary_operation_expr : program . AND program  (24)
	binary_operation_expr : program . EQ program  (25)
	binary_operation_expr : program . LT program  (26)
	binary_operation_expr : program . LE program  (27)
	binary_operation_expr : program . GT program  (28)
	binary_operation_expr : program . GE program  (29)
	binary_operation_expr : program . NEQ program  (30)
	binary_operation_expr : program . PLUS program  (31)
	binary_operation_expr : program . MINUS program  (32)
	binary_operation_expr : program . TIMES program  (33)
	binary_operation_expr : program . DIVIDE program  (34)
	case_expr : IF program THEN program .  (50)
	case_expr : IF program THEN program . ELSE program  (51)

	PLUS  shift 44
	MINUS  shift 45
	TIMES  shift 46
	DIVIDE  shift 47
	EQ  shift 48
	NEQ  shift 49
	LT  shift 50
	LE  shift 51
	GT  shift 52
	GE  shift 53
	AND  shift 54
	OR  shift 55
	ELSE  shift 114
	$end  reduce 50
	COMMA  reduce 50
	SEMICOLON  reduce 50
	RPAREN  reduce 50
	RBRACK  reduce 50
	RBRACE  reduce 50
	THEN  reduce 50
	TO  reduce 50
	DO  reduce 50
	IN  reduce 50
	END  reduce 50
	FUNCTION  reduce 50
	VAR  reduce 50
	TYPE  reduce 50


102: shift/reduce conflict (shift 44, reduce 13) on PLUS
102: shift/reduce conflict (shift 45, reduce 13) on MINUS
102: shift/reduce conflict (shift 46, reduce 13) on TIMES
102: shift/reduce conflict (shift 47, reduce 13) on DIVIDE
102: shift/reduce conflict (shift 48, reduce 13) on EQ
102: shift/reduce conflict (shift 49, reduce 13) on NEQ
102: shift/reduce conflict (shift 50, reduce 13) on LT
102: shift/reduce conflict (shift 51, reduce 13) on LE
102: shift/reduce conflict (shift 52, reduce 13) on GT
102: shift/reduce conflict (shift 53, reduce 13) on GE
102: shift/reduce conflict (shift 54, reduce 13) on AND
102: shift/reduce conflict (shift 55, reduce 13) on OR
state 102
	program : WHILE program DO program .  (13)
	binary_operation_expr : program . OR program  (23)
	binary_operation_expr : program . AND program  (24)
	binary_operation_expr : program . EQ program  (25)
	binary_operation_expr : program . LT program  (26)
	binary_operation_expr : program . LE program  (27)
	binary_operation_expr : program . GT program  (28)
	binary_operation_expr : program . GE program  (29)
	binary_operation_expr : program . NEQ program  (30)
	binary_operation_expr : program . PLUS program  (31)
	binary_operation_expr : program . MINUS program  (32)
	binary_operation_expr : program . TIMES program  (33)
	binary_operation_expr : program . DIVIDE program  (34)

	PLUS  shift 44
	MINUS  shift 45
	TIMES  shift 46
	DIVIDE  shift 47
	EQ  shift 48
	NEQ  shift 49
	LT  shift 50
	LE  shift 51
	GT  shift 52
	GE  shift 53
	AND  shift 54
	OR  shift 55
	$end  reduce 13
	COMMA  reduce 13
	SEMICOLON  reduce 13
	RPAREN  reduce 13
	RBRACK  reduce 13
	RBRACE  reduce 13
	THEN  reduce 13
	ELSE  reduce 13
	TO  reduce 13
	DO  reduce 13
	IN  reduce 13
	END  reduce 13
	FUNCTION  reduce 13
	VAR  reduce 13
	TYPE  reduce 13


state 103
	program : FOR ID ASSIGN program . TO program DO program  (14)
	binary_operation_expr : program . OR program  (23)
	binary_operation_expr : program . AND program  (24)
	binary_operation_expr : program . EQ program  (25)
	binary_operation_expr : program . LT program  (26)
	binary_operation_expr : program . LE program  (27)
	binary_operation_expr : program . GT program  (28)
	binary_operation_expr : program . GE program  (29)
	binary_operation_expr : program . NEQ program  (30)
	binary_operation_expr : program . PLUS program  (31)
	binary_operation_expr : program . MINUS program  (32)
	binary_operation_expr : program . TIMES program  (33)
	binary_operation_expr : program . DIVIDE program  (34)

	PLUS  shift 44
	MINUS  shift 45
	TIMES  shift 46
	DIVIDE  shift 47
	EQ  shift 48
	NEQ  shift 49
	LT  shift 50
	LE  shift 51
	GT  shift 52
	GE  shift 53
	AND  shift 54
	OR  shift 55
	TO  shift 115
	.  error


state 104
	function_dec : FUNCTION ID LPAREN . RPAREN EQ program  (68)
	function_dec : FUNCTION ID LPAREN . RPAREN COLON ID EQ program  (69)
	function_dec : FUNCTION ID LPAREN . field_list RPAREN EQ program  (70)
	function_dec : FUNCTION ID LPAREN . field_list RPAREN COLON ID EQ program  (71)

	ID  shift 116
	RPAREN  shift 117
	.  error

	field_list  goto 118


state 105
	variable_dec : VAR ID COLON . ID ASSIGN program  (67)

	ID  shift 119
	.  error


state 106
	variable_dec : VAR ID ASSIGN . program  (66)

	error  shift 1
	ID  shift 2
	STRING  shift 3
	INT  shift 4
	LPAREN  shift 5
	MINUS  shift 6
	IF  shift 7
	WHILE  shift 8
	FOR  shift 9
	LET  shift 10
	BREAK  shift 11
	NIL  shift 12
	.  error

	program  goto 120
	lvalue  goto 14
	binary_operation_expr  goto 15
	assign_expr  goto 16
	function_expr  goto 17
	paren_expr  goto 18
	record_expr  goto 19
	case_expr  goto 20
	scope_expr  goto 21


state 107
	type_dec : TYPE ID EQ . type  (59)

	ID  shift 121
	LBRACE  shift 122
	ARRAY  shift 123
	.  error

	type  goto 124


state 108
	scope_expr : LET dec_list IN END .  (52)

	.  reduce 52


state 109
	scope_expr : LET dec_list IN expr_seq . END  (53)

	END  shift 125
	.  error


state 110
	lvalue : lvalue LBRACK program RBRACK .  (22)

	.  reduce 22


state 111
	expr_list : program COMMA expr_list .  (41)

	.  reduce 41


state 112
	program : ID LBRACK program RBRACK OF . program  (11)

	error  shift 1
	ID  shift 2
	STRING  shift 3
	INT  shift 4
	LPAREN  shift 5
	MINUS  shift 6
	IF  shift 7
	WHILE  shift 8
	FOR  shift 9
	LET  shift 10
	BREAK  shift 11
	NIL  shift 12
	.  error

	program  goto 126
	lvalue  goto 14
	binary_operation_expr  goto 15
	assign_expr  goto 16
	function_expr  goto 17
	paren_expr  goto 18
	record_expr  goto 19
	case_expr  goto 20
	scope_expr  goto 21


state 113
	binary_operation_expr : program . OR program  (23)
	binary_operation_expr : program . AND program  (24)
	binary_operation_expr : program . EQ program  (25)
	binary_operation_expr : program . LT program  (26)
	binary_operation_expr : program . LE program  (27)
	binary_operation_expr : program . GT program  (28)
	binary_operation_expr : program . GE program  (29)
	binary_operation_expr : program . NEQ program  (30)
	binary_operation_expr : program . PLUS program  (31)
	binary_operation_expr : program . MINUS program  (32)
	binary_operation_expr : program . TIMES program  (33)
	binary_operation_expr : program . DIVIDE program  (34)
	fieldexpr_list : ID EQ program .  (48)
	fieldexpr_list : ID EQ program . COMMA fieldexpr_list  (49)

	COMMA  shift 127
	PLUS  shift 44
	MINUS  shift 45
	TIMES  shift 46
	DIVIDE  shift 47
	EQ  shift 48
	NEQ  shift 49
	LT  shift 50
	LE  shift 51
	GT  shift 52
	GE  shift 53
	AND  shift 54
	OR  shift 55
	RBRACE  reduce 48


state 114
	case_expr : IF program THEN program ELSE . program  (51)

	error  shift 1
	ID  shift 2
	STRING  shift 3
	INT  shift 4
	LPAREN  shift 5
	MINUS  shift 6
	IF  shift 7
	WHILE  shift 8
	FOR  shift 9
	LET  shift 10
	BREAK  shift 11
	NIL  shift 12
	.  error

	program  goto 128
	lvalue  goto 14
	binary_operation_expr  goto 15
	assign_expr  goto 16
	function_expr  goto 17
	paren_expr  goto 18
	record_expr  goto 19
	case_expr  goto 20
	scope_expr  goto 21


state 115
	program : FOR ID ASSIGN program TO . program DO program  (14)

	error  shift 1
	ID  shift 2
	STRING  shift 3
	INT  shift 4
	LPAREN  shift 5
	MINUS  shift 6
	IF  shift 7
	WHILE  shift 8
	FOR  shift 9
	LET  shift 10
	BREAK  shift 11
	NIL  shift 12
	.  error

	program  goto 129
	lvalue  goto 14
	binary_operation_expr  goto 15
	assign_expr  goto 16
	function_expr  goto 17
	paren_expr  goto 18
	record_expr  goto 19
	case_expr  goto 20
	scope_expr  goto 21


state 116
	field_list : ID . COLON ID  (64)
	field_list : ID . COLON ID COMMA field_list  (65)

	COLON  shift 130
	.  error


state 117
	function_dec : FUNCTION ID LPAREN RPAREN . EQ program  (68)
	function_dec : FUNCTION ID LPAREN RPAREN . COLON ID EQ program  (69)

	COLON  shift 131
	EQ  shift 132
	.  error


state 118
	function_dec : FUNCTION ID LPAREN field_list . RPAREN EQ program  (70)
	function_dec : FUNCTION ID LPAREN field_list . RPAREN COLON ID EQ program  (71)

	RPAREN  shift 133
	.  error


state 119
	variable_dec : VAR ID COLON ID . ASSIGN program  (67)

	ASSIGN  shift 134
	.  error


state 120
	binary_operation_expr : program . OR program  (23)
	binary_operation_expr : program . AND program  (24)
	binary_operation_expr : program . EQ program  (25)
	binary_operation_expr : program . LT program  (26)
	binary_operation_expr : program . LE program  (27)
	binary_operation_expr : program . GT program  (28)
	binary_operation_expr : program . GE program  (29)
	binary_operation_expr : program . NEQ program  (30)
	binary_operation_expr : program . PLUS program  (31)
	binary_operation_expr : program . MINUS program  (32)
	binary_operation_expr : program . TIMES program  (33)
	binary_operation_expr : program . DIVIDE program  (34)
	variable_dec : VAR ID ASSIGN program .  (66)

	PLUS  shift 44
	MINUS  shift 45
	TIMES  shift 46
	DIVIDE  shift 47
	EQ  shift 48
	NEQ  shift 49
	LT  shift 50
	LE  shift 51
	GT  shift 52
	GE  shift 53
	AND  shift 54
	OR  shift 55
	IN  reduce 66
	FUNCTION  reduce 66
	VAR  reduce 66
	TYPE  reduce 66


state 121
	type : ID .  (60)

	.  reduce 60


state 122
	type : LBRACE . RBRACE  (61)
	type : LBRACE . field_list RBRACE  (62)

	ID  shift 116
	RBRACE  shift 135
	.  error

	field_list  goto 136


state 123
	type : ARRAY . OF ID  (63)

	OF  shift 137
	.  error


state 124
	type_dec : TYPE ID EQ type .  (59)

	.  reduce 59


state 125
	scope_expr : LET dec_list IN expr_seq END .  (53)

	.  reduce 53


126: shift/reduce conflict (shift 44, reduce 11) on PLUS
126: shift/reduce conflict (shift 45, reduce 11) on MINUS
126: shift/reduce conflict (shift 46, reduce 11) on TIMES
126: shift/reduce conflict (shift 47, reduce 11) on DIVIDE
126: shift/reduce conflict (shift 48, reduce 11) on EQ
126: shift/reduce conflict (shift 49, reduce 11) on NEQ
126: shift/reduce conflict (shift 50, reduce 11) on LT
126: shift/reduce conflict (shift 51, reduce 11) on LE
126: shift/reduce conflict (shift 52, reduce 11) on GT
126: shift/reduce conflict (shift 53, reduce 11) on GE
126: shift/reduce conflict (shift 54, reduce 11) on AND
126: shift/reduce conflict (shift 55, reduce 11) on OR
state 126
	program : ID LBRACK program RBRACK OF program .  (11)
	binary_operation_expr : program . OR program  (23)
	binary_operation_expr : program . AND program  (24)
	binary_operation_expr : program . EQ program  (25)
	binary_operation_expr : program . LT program  (26)
	binary_operation_expr : program . LE program  (27)
	binary_operation_expr : program . GT program  (28)
	binary_operation_expr : program . GE program  (29)
	binary_operation_expr : program . NEQ program  (30)
	binary_operation_expr : program . PLUS program  (31)
	binary_operation_expr : program . MINUS program  (32)
	binary_operation_expr : program . TIMES program  (33)
	binary_operation_expr : program . DIVIDE program  (34)

	PLUS  shift 44
	MINUS  shift 45
	TIMES  shift 46
	DIVIDE  shift 47
	EQ  shift 48
	NEQ  shift 49
	LT  shift 50
	LE  shift 51
	GT  shift 52
	GE  shift 53
	AND  shift 54
	OR  shift 55
	$end  reduce 11
	COMMA  reduce 11
	SEMICOLON  reduce 11
	RPAREN  reduce 11
	RBRACK  reduce 11
	RBRACE  reduce 11
	THEN  reduce 11
	ELSE  reduce 11
	TO  reduce 11
	DO  reduce 11
	IN  reduce 11
	END  reduce 11
	FUNCTION  reduce 11
	VAR  reduce 11
	TYPE  reduce 11


state 127
	fieldexpr_list : ID EQ program COMMA . fieldexpr_list  (49)

	ID  shift 64
	.  error

	fieldexpr_list  goto 138


state 128
	binary_operation_expr : program . OR program  (23)
	binary_operation_expr : program . AND program  (24)
	binary_operation_expr : program . EQ program  (25)
	binary_operation_expr : program . LT program  (26)
	binary_operation_expr : program . LE program  (27)
	binary_operation_expr : program . GT program  (28)
	binary_operation_expr : program . GE program  (29)
	binary_operation_expr : program . NEQ program  (30)
	binary_operation_expr : program . PLUS program  (31)
	binary_operation_expr : program . MINUS program  (32)
	binary_operation_expr : program . TIMES program  (33)
	binary_operation_expr : program . DIVIDE program  (34)
	case_expr : IF program THEN program ELSE program .  (51)

	PLUS  shift 44
	MINUS  shift 45
	TIMES  shift 46
	DIVIDE  shift 47
	EQ  shift 48
	NEQ  shift 49
	LT  shift 50
	LE  shift 51
	GT  shift 52
	GE  shift 53
	AND  shift 54
	OR  shift 55
	$end  reduce 51
	COMMA  reduce 51
	SEMICOLON  reduce 51
	RPAREN  reduce 51
	RBRACK  reduce 51
	RBRACE  reduce 51
	THEN  reduce 51
	ELSE  reduce 51
	TO  reduce 51
	DO  reduce 51
	IN  reduce 51
	END  reduce 51
	FUNCTION  reduce 51
	VAR  reduce 51
	TYPE  reduce 51


state 129
	program : FOR ID ASSIGN program TO program . DO program  (14)
	binary_operation_expr : program . OR program  (23)
	binary_operation_expr : program . AND program  (24)
	binary

⌨️ 快捷键说明

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