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

📄 y.output

📁 针对“虎书”中的tiger语言写的语法分析器 根据书中对tiger语言的描述写了72条文法
💻 OUTPUT
📖 第 1 页 / 共 5 页
字号:
	IF  shift 7
	WHILE  shift 8
	FOR  shift 9
	LET  shift 10
	BREAK  shift 11
	NIL  shift 12
	.  error

	program  goto 92
	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 57
	lvalue : lvalue DOT . ID  (21)

	ID  shift 93
	.  error


state 58
	assign_expr : lvalue ASSIGN . program  (36)

	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 94
	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


59: shift/reduce conflict (shift 44, reduce 18) on PLUS
59: shift/reduce conflict (shift 45, reduce 18) on MINUS
59: shift/reduce conflict (shift 46, reduce 18) on TIMES
59: shift/reduce conflict (shift 47, reduce 18) on DIVIDE
59: shift/reduce conflict (shift 48, reduce 18) on EQ
59: shift/reduce conflict (shift 49, reduce 18) on NEQ
59: shift/reduce conflict (shift 50, reduce 18) on LT
59: shift/reduce conflict (shift 51, reduce 18) on LE
59: shift/reduce conflict (shift 52, reduce 18) on GT
59: shift/reduce conflict (shift 53, reduce 18) on GE
59: shift/reduce conflict (shift 54, reduce 18) on AND
59: shift/reduce conflict (shift 55, reduce 18) on OR
state 59
	program : error SEMICOLON program .  (18)
	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 18
	COMMA  reduce 18
	SEMICOLON  reduce 18
	RPAREN  reduce 18
	RBRACK  reduce 18
	RBRACE  reduce 18
	THEN  reduce 18
	ELSE  reduce 18
	TO  reduce 18
	DO  reduce 18
	IN  reduce 18
	END  reduce 18
	FUNCTION  reduce 18
	VAR  reduce 18
	TYPE  reduce 18


state 60
	function_expr : ID LPAREN RPAREN .  (38)

	.  reduce 38


state 61
	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)
	expr_list : program .  (40)
	expr_list : program . COMMA expr_list  (41)

	COMMA  shift 95
	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
	RPAREN  reduce 40


state 62
	function_expr : ID LPAREN expr_list . RPAREN  (39)

	RPAREN  shift 96
	.  error


state 63
	program : ID LBRACK program . RBRACK OF program  (11)
	lvalue : ID LBRACK program . RBRACK  (20)
	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)

	RBRACK  shift 97
	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
	.  error


state 64
	fieldexpr_list : ID . EQ program  (48)
	fieldexpr_list : ID . EQ program COMMA fieldexpr_list  (49)

	EQ  shift 98
	.  error


state 65
	record_expr : ID LBRACE RBRACE .  (46)

	.  reduce 46


state 66
	record_expr : ID LBRACE fieldexpr_list . RBRACE  (47)

	RBRACE  shift 99
	.  error


state 67
	lvalue : ID DOT ID .  (19)

	.  reduce 19


68: shift/reduce conflict (shift 44, reduce 37) on PLUS
68: shift/reduce conflict (shift 45, reduce 37) on MINUS
68: shift/reduce conflict (shift 46, reduce 37) on TIMES
68: shift/reduce conflict (shift 47, reduce 37) on DIVIDE
68: shift/reduce conflict (shift 48, reduce 37) on EQ
68: shift/reduce conflict (shift 49, reduce 37) on NEQ
68: shift/reduce conflict (shift 50, reduce 37) on LT
68: shift/reduce conflict (shift 51, reduce 37) on LE
68: shift/reduce conflict (shift 52, reduce 37) on GT
68: shift/reduce conflict (shift 53, reduce 37) on GE
68: shift/reduce conflict (shift 54, reduce 37) on AND
68: shift/reduce conflict (shift 55, reduce 37) on OR
state 68
	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)
	assign_expr : ID ASSIGN program .  (37)

	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 37
	COMMA  reduce 37
	SEMICOLON  reduce 37
	RPAREN  reduce 37
	RBRACK  reduce 37
	RBRACE  reduce 37
	THEN  reduce 37
	ELSE  reduce 37
	TO  reduce 37
	DO  reduce 37
	IN  reduce 37
	END  reduce 37
	FUNCTION  reduce 37
	VAR  reduce 37
	TYPE  reduce 37


state 69
	program : LPAREN error RPAREN .  (17)

	.  reduce 17


state 70
	expr_seq : program SEMICOLON . expr_seq  (45)

	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 30
	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
	expr_seq  goto 100


state 71
	paren_expr : LPAREN expr_seq RPAREN .  (43)

	.  reduce 43


state 72
	case_expr : IF program THEN . program  (50)
	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 101
	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 73
	program : WHILE program DO . program  (13)

	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 102
	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 74
	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 103
	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 75
	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)

	LPAREN  shift 104
	.  error


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

	COLON  shift 105
	ASSIGN  shift 106
	.  error


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

	EQ  shift 107
	.  error


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

	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
	END  shift 108
	BREAK  shift 11
	NIL  shift 12
	.  error

	program  goto 30
	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
	expr_seq  goto 109


state 79
	dec_list : dec dec_list .  (55)

	.  reduce 55


state 80
	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 PLUS program .  (31)
	binary_operation_expr : program . MINUS program  (32)
	binary_operation_expr : program . TIMES program  (33)
	binary_operation_expr : program . DIVIDE program  (34)

	TIMES  shift 46
	DIVIDE  shift 47
	$end  reduce 31
	COMMA  reduce 31
	SEMICOLON  reduce 31
	RPAREN  reduce 31
	RBRACK  reduce 31
	RBRACE  reduce 31
	PLUS  reduce 31
	MINUS  reduce 31
	EQ  reduce 31
	NEQ  reduce 31
	LT  reduce 31
	LE  reduce 31
	GT  reduce 31
	GE  reduce 31
	AND  reduce 31
	OR  reduce 31
	THEN  reduce 31
	ELSE  reduce 31
	TO  reduce 31
	DO  reduce 31
	IN  reduce 31
	END  reduce 31
	FUNCTION  reduce 31
	VAR  reduce 31
	TYPE  reduce 31


state 81
	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 MINUS program .  (32)
	binary_operation_expr : program . TIMES program  (33)
	binary_operation_expr : program . DIVIDE program  (34)

	TIMES  shift 46
	DIVIDE  shift 47
	$end  reduce 32
	COMMA  reduce 32
	SEMICOLON  reduce 32
	RPAREN  reduce 32
	RBRACK  reduce 32
	RBRACE  reduce 32
	PLUS  reduce 32
	MINUS  reduce 32
	EQ  reduce 32
	NEQ  reduce 32
	LT  reduce 32
	LE  reduce 32
	GT  reduce 32
	GE  reduce 32
	AND  reduce 32
	OR  reduce 32
	THEN  reduce 32
	ELSE  reduce 32
	TO  reduce 32
	DO  reduce 32
	IN  reduce 32
	END  reduce 32
	FUNCTION  reduce 32
	VAR  reduce 32
	TYPE  reduce 32


state 82
	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 TIMES program .  (33)
	binary_operation_expr : program . DIVIDE program  (34)

	.  reduce 33


state 83
	binary_operation_expr : program . OR program  (23)
	binary_operation_expr : program . AND program  (24)

⌨️ 快捷键说明

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