compUnit |-- funcDef | |-- funcType | | `-- Int: int | |-- Ident: main | |-- L_PAREN: ( | |-- R_PAREN: ) | `-- block | |-- L_BRACE: { | |-- blockItem | | `-- decl | | `-- varDecl | | |-- bType | | | `-- Int: int | | |-- varDef | | | |-- Ident: a | | | |-- Assign: = | | | `-- initVal | | | `-- exp | | | `-- addExp | | | `-- mulExp | | | `-- unaryExp | | | `-- primaryExp | | | `-- number | | | `-- IntConst: 893 | | `-- Semi: ; | |-- blockItem | | `-- decl | | `-- varDecl | | |-- bType | | | `-- Int: int | | |-- varDef | | | |-- Ident: b | | | |-- Assign: = | | | `-- initVal | | | `-- exp | | | `-- addExp | | | `-- mulExp | | | `-- unaryExp | | | `-- primaryExp | | | `-- number | | | `-- IntConst: 716 | | `-- Semi: ; | |-- blockItem | | `-- stmt | | `-- block | | |-- L_BRACE: { | | |-- blockItem | | | `-- decl | | | `-- varDecl | | | |-- bType | | | | `-- Int: int | | | |-- varDef | | | | |-- Ident: a | | | | |-- Assign: = | | | | `-- initVal | | | | `-- exp | | | | `-- addExp | | | | `-- mulExp | | | | `-- unaryExp | | | | `-- primaryExp | | | | `-- number | | | | `-- IntConst: 837 | | | `-- Semi: ; | | |-- blockItem | | | `-- stmt | | | |-- lVal | | | | `-- Ident: a | | | |-- Assign: = | | | |-- exp | | | | `-- addExp | | | | |-- addExp | | | | | `-- mulExp | | | | | `-- unaryExp | | | | | `-- primaryExp | | | | | `-- lVal | | | | | `-- Ident: a | | | | |-- AddOp: + | | | | `-- mulExp | | | | `-- unaryExp | | | | `-- primaryExp | | | | `-- number | | | | `-- IntConst: 128 | | | `-- Semi: ; | | |-- blockItem | | | `-- stmt | | | |-- lVal | | | | `-- Ident: b | | | |-- Assign: = | | | |-- exp | | | | `-- addExp | | | | |-- addExp | | | | | `-- mulExp | | | | | `-- unaryExp | | | | | `-- primaryExp | | | | | `-- lVal | | | | | `-- Ident: b | | | | |-- AddOp: + | | | | `-- mulExp | | | | `-- unaryExp | | | | `-- primaryExp | | | | `-- lVal | | | | `-- Ident: a | | | `-- Semi: ; | | |-- blockItem | | | `-- stmt | | | `-- block | | | |-- L_BRACE: { | | | |-- blockItem | | | | `-- decl | | | | `-- varDecl | | | | |-- bType | | | | | `-- Int: int | | | | |-- varDef | | | | | |-- Ident: b | | | | | |-- Assign: = | | | | | `-- initVal | | | | | `-- exp | | | | | `-- addExp | | | | | `-- mulExp | | | | | `-- unaryExp | | | | | `-- primaryExp | | | | | `-- number | | | | | `-- IntConst: 241 | | | | `-- Semi: ; | | | |-- blockItem | | | | `-- stmt | | | | |-- lVal | | | | | `-- Ident: a | | | | |-- Assign: = | | | | |-- exp | | | | | `-- addExp | | | | | |-- addExp | | | | | | |-- addExp | | | | | | | `-- mulExp | | | | | | | `-- unaryExp | | | | | | | `-- primaryExp | | | | | | | `-- lVal | | | | | | | `-- Ident: a | | | | | | |-- AddOp: + | | | | | | `-- mulExp | | | | | | `-- unaryExp | | | | | | `-- primaryExp | | | | | | `-- lVal | | | | | | `-- Ident: b | | | | | |-- SubOp: - | | | | | `-- mulExp | | | | | `-- unaryExp | | | | | `-- primaryExp | | | | | `-- number | | | | | `-- IntConst: 412 | | | | `-- Semi: ; | | | |-- blockItem | | | | `-- stmt | | | | `-- block | | | | |-- L_BRACE: { | | | | |-- blockItem | | | | | `-- decl | | | | | `-- varDecl | | | | | |-- bType | | | | | | `-- Int: int | | | | | |-- varDef | | | | | | |-- Ident: a | | | | | | |-- Assign: = | | | | | | `-- initVal | | | | | | `-- exp | | | | | | `-- addExp | | | | | | `-- mulExp | | | | | | `-- unaryExp | | | | | | `-- primaryExp | | | | | | `-- number | | | | | | `-- IntConst: 771 | | | | | `-- Semi: ; | | | | |-- blockItem | | | | | `-- stmt | | | | | |-- lVal | | | | | | `-- Ident: b | | | | | |-- Assign: = | | | | | |-- exp | | | | | | `-- addExp | | | | | | |-- addExp | | | | | | | |-- addExp | | | | | | | | `-- mulExp | | | | | | | | `-- unaryExp | | | | | | | | `-- primaryExp | | | | | | | | `-- lVal | | | | | | | | `-- Ident: b | | | | | | | |-- AddOp: + | | | | | | | `-- mulExp | | | | | | | `-- unaryExp | | | | | | | `-- primaryExp | | | | | | | `-- lVal | | | | | | | `-- Ident: a | | | | | | |-- SubOp: - | | | | | | `-- mulExp | | | | | | `-- unaryExp | | | | | | `-- primaryExp | | | | | | `-- number | | | | | | `-- IntConst: 18 | | | | | `-- Semi: ; | | | | |-- blockItem | | | | | `-- stmt | | | | | |-- lVal | | | | | | `-- Ident: a | | | | | |-- Assign: = | | | | | |-- exp | | | | | | `-- addExp | | | | | | |-- addExp | | | | | | | `-- mulExp | | | | | | | `-- unaryExp | | | | | | | `-- primaryExp | | | | | | | `-- lVal | | | | | | | `-- Ident: b | | | | | | |-- AddOp: + | | | | | | `-- mulExp | | | | | | `-- unaryExp | | | | | | `-- primaryExp | | | | | | `-- number | | | | | | `-- IntConst: 66 | | | | | `-- Semi: ; | | | | `-- R_BRACE: } | | | |-- blockItem | | | | `-- stmt | | | | |-- lVal | | | | | `-- Ident: b | | | | |-- Assign: = | | | | |-- exp | | | | | `-- addExp | | | | | |-- addExp | | | | | | |-- addExp | | | | | | | `-- mulExp | | | | | | | `-- unaryExp | | | | | | | `-- primaryExp | | | | | | | `-- lVal | | | | | | | `-- Ident: b | | | | | | |-- AddOp: + | | | | | | `-- mulExp | | | | | | `-- unaryExp | | | | | | `-- primaryExp | | | | | | `-- lVal | | | | | | `-- Ident: a | | | | | |-- SubOp: - | | | | | `-- mulExp | | | | | `-- unaryExp | | | | | `-- primaryExp | | | | | `-- number | | | | | `-- IntConst: 33 | | | | `-- Semi: ; | | | |-- blockItem | | | | `-- stmt | | | | |-- lVal | | | | | `-- Ident: a | | | | |-- Assign: = | | | | |-- exp | | | | | `-- addExp | | | | | |-- addExp | | | | | | `-- mulExp | | | | | | `-- unaryExp | | | | | | `-- primaryExp | | | | | | `-- lVal | | | | | | `-- Ident: b | | | | | |-- SubOp: - | | | | | `-- mulExp | | | | | `-- unaryExp | | | | | `-- primaryExp | | | | | `-- number | | | | | `-- IntConst: 55 | | | | `-- Semi: ; | | | |-- blockItem | | | | `-- stmt | | | | `-- block | | | | |-- L_BRACE: { | | | | |-- blockItem | | | | | `-- stmt | | | | | |-- Return: return | | | | | |-- exp | | | | | | `-- addExp | | | | | | `-- mulExp | | | | | | |-- mulExp | | | | | | | `-- unaryExp | | | | | | | `-- primaryExp | | | | | | | |-- L_PAREN: ( | | | | | | | |-- exp | | | | | | | | `-- addExp | | | | | | | | |-- addExp | | | | | | | | | `-- mulExp | | | | | | | | | `-- unaryExp | | | | | | | | | `-- primaryExp | | | | | | | | | `-- lVal | | | | | | | | | `-- Ident: a | | | | | | | | |-- AddOp: + | | | | | | | | `-- mulExp | | | | | | | | `-- unaryExp | | | | | | | | `-- primaryExp | | | | | | | | `-- lVal | | | | | | | | `-- Ident: b | | | | | | | `-- R_PAREN: ) | | | | | | |-- ModOp: % | | | | | | `-- unaryExp | | | | | | `-- primaryExp | | | | | | `-- number | | | | | | `-- IntConst: 21 | | | | | `-- Semi: ; | | | | `-- R_BRACE: } | | | `-- R_BRACE: } | | |-- blockItem | | | `-- stmt | | | |-- lVal | | | | `-- Ident: a | | | |-- Assign: = | | | |-- exp | | | | `-- addExp | | | | |-- addExp | | | | | |-- addExp | | | | | | `-- mulExp | | | | | | `-- unaryExp | | | | | | `-- primaryExp | | | | | | `-- lVal | | | | | | `-- Ident: b | | | | | |-- AddOp: + | | | | | `-- mulExp | | | | | `-- unaryExp | | | | | `-- primaryExp | | | | | `-- lVal | | | | | `-- Ident: a | | | | |-- SubOp: - | | | | `-- mulExp | | | | `-- unaryExp | | | | `-- primaryExp | | | | `-- number | | | | `-- IntConst: 97 | | | `-- Semi: ; | | |-- blockItem | | | `-- stmt | | | |-- lVal | | | | `-- Ident: b | | | |-- Assign: = | | | |-- exp | | | | `-- addExp | | | | `-- mulExp | | | | |-- mulExp | | | | | `-- unaryExp | | | | | `-- primaryExp | | | | | |-- L_PAREN: ( | | | | | |-- exp | | | | | | `-- addExp | | | | | | |-- addExp | | | | | | | `-- mulExp | | | | | | | `-- unaryExp | | | | | | | `-- primaryExp | | | | | | | `-- lVal | | | | | | | `-- Ident: b | | | | | | |-- SubOp: - | | | | | | `-- mulExp | | | | | | `-- unaryExp | | | | | | `-- primaryExp | | | | | | `-- lVal | | | | | | `-- Ident: a | | | | | `-- R_PAREN: ) | | | | |-- ModOp: % | | | | `-- unaryExp | | | | `-- primaryExp | | | | `-- number | | | | `-- IntConst: 62 | | | `-- Semi: ; | | |-- blockItem | | | `-- stmt | | | `-- block | | | |-- L_BRACE: { | | | |-- blockItem | | | | `-- stmt | | | | |-- Return: return | | | | |-- exp | | | | | `-- addExp | | | | | `-- mulExp | | | | | |-- mulExp | | | | | | `-- unaryExp | | | | | | `-- primaryExp | | | | | | |-- L_PAREN: ( | | | | | | |-- exp | | | | | | | `-- addExp | | | | | | | |-- addExp | | | | | | | | `-- mulExp | | | | | | | | `-- unaryExp | | | | | | | | `-- primaryExp | | | | | | | | `-- lVal | | | | | | | | `-- Ident: a | | | | | | | |-- AddOp: + | | | | | | | `-- mulExp | | | | | | | `-- unaryExp | | | | | | | `-- primaryExp | | | | | | | `-- lVal | | | | | | | `-- Ident: b | | | | | | `-- R_PAREN: ) | | | | | |-- ModOp: % | | | | | `-- unaryExp | | | | | `-- primaryExp | | | | | `-- number | | | | | `-- IntConst: 17 | | | | `-- Semi: ; | | | `-- R_BRACE: } | | |-- blockItem | | | `-- stmt | | | |-- Return: return | | | |-- exp | | | | `-- addExp | | | | `-- mulExp | | | | |-- mulExp | | | | | `-- unaryExp | | | | | `-- primaryExp | | | | | |-- L_PAREN: ( | | | | | |-- exp | | | | | | `-- addExp | | | | | | |-- addExp | | | | | | | `-- mulExp | | | | | | | `-- unaryExp | | | | | | | `-- primaryExp | | | | | | | `-- lVal | | | | | | | `-- Ident: a | | | | | | |-- AddOp: + | | | | | | `-- mulExp | | | | | | `-- unaryExp | | | | | | `-- primaryExp | | | | | | `-- lVal | | | | | | `-- Ident: b | | | | | `-- R_PAREN: ) | | | | |-- ModOp: % | | | | `-- unaryExp | | | | `-- primaryExp | | | | `-- number | | | | `-- IntConst: 13 | | | `-- Semi: ; | | `-- R_BRACE: } | |-- blockItem | | `-- stmt | | |-- lVal | | | `-- Ident: a | | |-- Assign: = | | |-- exp | | | `-- addExp | | | `-- mulExp | | | |-- mulExp | | | | `-- unaryExp | | | | `-- primaryExp | | | | |-- L_PAREN: ( | | | | |-- exp | | | | | `-- addExp | | | | | `-- mulExp | | | | | |-- mulExp | | | | | | `-- unaryExp | | | | | | `-- primaryExp | | | | | | `-- lVal | | | | | | `-- Ident: b | | | | | |-- MulOp: * | | | | | `-- unaryExp | | | | | `-- primaryExp | | | | | `-- lVal | | | | | `-- Ident: a | | | | `-- R_PAREN: ) | | | |-- ModOp: % | | | `-- unaryExp | | | `-- primaryExp | | | `-- number | | | `-- IntConst: 83 | | `-- Semi: ; | |-- blockItem | | `-- stmt | | |-- lVal | | | `-- Ident: b | | |-- Assign: = | | |-- exp | | | `-- addExp | | | |-- addExp | | | | |-- addExp | | | | | `-- mulExp | | | | | `-- unaryExp | | | | | `-- primaryExp | | | | | `-- lVal | | | | | `-- Ident: a | | | | |-- AddOp: + | | | | `-- mulExp | | | | `-- unaryExp | | | | `-- primaryExp | | | | `-- lVal | | | | `-- Ident: b | | | |-- SubOp: - | | | `-- mulExp | | | `-- unaryExp | | | `-- primaryExp | | | `-- number | | | `-- IntConst: 771 | | `-- Semi: ; | |-- blockItem | | `-- stmt | | |-- Return: return | | |-- exp | | | `-- addExp | | | `-- mulExp | | | |-- mulExp | | | | `-- unaryExp | | | | `-- primaryExp | | | | |-- L_PAREN: ( | | | | |-- exp | | | | | `-- addExp | | | | | |-- addExp | | | | | | `-- mulExp | | | | | | `-- unaryExp | | | | | | `-- primaryExp | | | | | | `-- lVal | | | | | | `-- Ident: a | | | | | |-- AddOp: + | | | | | `-- mulExp | | | | | `-- unaryExp | | | | | `-- primaryExp | | | | | `-- lVal | | | | | `-- Ident: b | | | | `-- R_PAREN: ) | | | |-- ModOp: % | | | `-- unaryExp | | | `-- primaryExp | | | `-- number | | | `-- IntConst: 11 | | `-- Semi: ; | `-- R_BRACE: } `-- EOF: