From 1e5379f1ddedee19511465d732210719315aab67 Mon Sep 17 00:00:00 2001 From: LuoHello <2901023943@qq.com> Date: Thu, 19 Mar 2026 00:46:35 +0800 Subject: [PATCH] feat(antlr4):adjust Number defined --- result.txt | 23961 +++++++++++++++++++++++++++++++++++++++++++ run.sh | 96 + src/antlr4/SysY.g4 | 253 +- 3 files changed, 24263 insertions(+), 47 deletions(-) create mode 100644 result.txt create mode 100755 run.sh diff --git a/result.txt b/result.txt new file mode 100644 index 0000000..b4f1ace --- /dev/null +++ b/result.txt @@ -0,0 +1,23961 @@ +========== test/test_case/functional/05_arr_defn4.sy ========== +compUnit +|-- funcDef +| |-- funcType +| | `-- Int: int +| |-- Ident: main +| |-- L_PAREN: ( +| |-- R_PAREN: ) +| `-- block +| |-- L_BRACE: { +| |-- blockItem +| | `-- decl +| | `-- constDecl +| | |-- Const: const +| | |-- bType +| | | `-- Int: int +| | |-- constDef +| | | |-- Ident: a +| | | |-- L_BRACK: [ +| | | |-- constExp +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- DECIMAL_INT: 4 +| | | |-- R_BRACK: ] +| | | |-- L_BRACK: [ +| | | |-- constExp +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- DECIMAL_INT: 2 +| | | |-- R_BRACK: ] +| | | |-- Assign: = +| | | `-- constInitVal +| | | |-- L_BRACE: { +| | | |-- constInitVal +| | | | |-- L_BRACE: { +| | | | |-- constInitVal +| | | | | `-- constExp +| | | | | `-- addExp +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- DECIMAL_INT: 1 +| | | | |-- Comma: , +| | | | |-- constInitVal +| | | | | `-- constExp +| | | | | `-- addExp +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- DECIMAL_INT: 2 +| | | | `-- R_BRACE: } +| | | |-- Comma: , +| | | |-- constInitVal +| | | | |-- L_BRACE: { +| | | | |-- constInitVal +| | | | | `-- constExp +| | | | | `-- addExp +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- DECIMAL_INT: 3 +| | | | |-- Comma: , +| | | | |-- constInitVal +| | | | | `-- constExp +| | | | | `-- addExp +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- DECIMAL_INT: 4 +| | | | `-- R_BRACE: } +| | | |-- Comma: , +| | | |-- constInitVal +| | | | |-- L_BRACE: { +| | | | `-- R_BRACE: } +| | | |-- Comma: , +| | | |-- constInitVal +| | | | `-- constExp +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- DECIMAL_INT: 7 +| | | `-- R_BRACE: } +| | `-- Semi: ; +| |-- blockItem +| | `-- decl +| | `-- constDecl +| | |-- Const: const +| | |-- bType +| | | `-- Int: int +| | |-- constDef +| | | |-- Ident: N +| | | |-- Assign: = +| | | `-- constInitVal +| | | `-- constExp +| | | `-- addExp +| | | `-- mulExp +| | | `-- unaryExp +| | | `-- primary +| | | `-- DECIMAL_INT: 3 +| | `-- Semi: ; +| |-- blockItem +| | `-- decl +| | `-- varDecl +| | |-- bType +| | | `-- Int: int +| | |-- varDef +| | | |-- Ident: b +| | | |-- L_BRACK: [ +| | | |-- constExp +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- DECIMAL_INT: 4 +| | | |-- R_BRACK: ] +| | | |-- L_BRACK: [ +| | | |-- constExp +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- DECIMAL_INT: 2 +| | | |-- R_BRACK: ] +| | | |-- Assign: = +| | | `-- initVal +| | | |-- L_BRACE: { +| | | `-- R_BRACE: } +| | `-- Semi: ; +| |-- blockItem +| | `-- decl +| | `-- varDecl +| | |-- bType +| | | `-- Int: int +| | |-- varDef +| | | |-- Ident: c +| | | |-- L_BRACK: [ +| | | |-- constExp +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- DECIMAL_INT: 4 +| | | |-- R_BRACK: ] +| | | |-- L_BRACK: [ +| | | |-- constExp +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- DECIMAL_INT: 2 +| | | |-- R_BRACK: ] +| | | |-- Assign: = +| | | `-- initVal +| | | |-- L_BRACE: { +| | | |-- initVal +| | | | `-- exp +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- DECIMAL_INT: 1 +| | | |-- Comma: , +| | | |-- initVal +| | | | `-- exp +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- DECIMAL_INT: 2 +| | | |-- Comma: , +| | | |-- initVal +| | | | `-- exp +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- DECIMAL_INT: 3 +| | | |-- Comma: , +| | | |-- initVal +| | | | `-- exp +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- DECIMAL_INT: 4 +| | | |-- Comma: , +| | | |-- initVal +| | | | `-- exp +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- DECIMAL_INT: 5 +| | | |-- Comma: , +| | | |-- initVal +| | | | `-- exp +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- DECIMAL_INT: 6 +| | | |-- Comma: , +| | | |-- initVal +| | | | `-- exp +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- DECIMAL_INT: 7 +| | | |-- Comma: , +| | | |-- initVal +| | | | `-- exp +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- DECIMAL_INT: 8 +| | | `-- R_BRACE: } +| | `-- Semi: ; +| |-- blockItem +| | `-- decl +| | `-- varDecl +| | |-- bType +| | | `-- Int: int +| | |-- varDef +| | | |-- Ident: d +| | | |-- L_BRACK: [ +| | | |-- constExp +| | | | `-- addExp +| | | | |-- addExp +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- lVal +| | | | | `-- Ident: N +| | | | |-- AddOp: + +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- DECIMAL_INT: 1 +| | | |-- R_BRACK: ] +| | | |-- L_BRACK: [ +| | | |-- constExp +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- DECIMAL_INT: 2 +| | | |-- R_BRACK: ] +| | | |-- Assign: = +| | | `-- initVal +| | | |-- L_BRACE: { +| | | |-- initVal +| | | | `-- exp +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- DECIMAL_INT: 1 +| | | |-- Comma: , +| | | |-- initVal +| | | | `-- exp +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- DECIMAL_INT: 2 +| | | |-- Comma: , +| | | |-- initVal +| | | | |-- L_BRACE: { +| | | | |-- initVal +| | | | | `-- exp +| | | | | `-- addExp +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- DECIMAL_INT: 3 +| | | | `-- R_BRACE: } +| | | |-- Comma: , +| | | |-- initVal +| | | | |-- L_BRACE: { +| | | | |-- initVal +| | | | | `-- exp +| | | | | `-- addExp +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- DECIMAL_INT: 5 +| | | | `-- R_BRACE: } +| | | |-- Comma: , +| | | |-- initVal +| | | | `-- exp +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- lVal +| | | | |-- Ident: a +| | | | |-- L_BRACK: [ +| | | | |-- exp +| | | | | `-- addExp +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- DECIMAL_INT: 3 +| | | | |-- R_BRACK: ] +| | | | |-- L_BRACK: [ +| | | | |-- exp +| | | | | `-- addExp +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- OCTAL_INT: 0 +| | | | `-- R_BRACK: ] +| | | |-- Comma: , +| | | |-- initVal +| | | | `-- exp +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- DECIMAL_INT: 8 +| | | `-- R_BRACE: } +| | `-- Semi: ; +| |-- blockItem +| | `-- decl +| | `-- varDecl +| | |-- bType +| | | `-- Int: int +| | |-- varDef +| | | |-- Ident: e +| | | |-- L_BRACK: [ +| | | |-- constExp +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- DECIMAL_INT: 4 +| | | |-- R_BRACK: ] +| | | |-- L_BRACK: [ +| | | |-- constExp +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- DECIMAL_INT: 2 +| | | |-- R_BRACK: ] +| | | |-- L_BRACK: [ +| | | |-- constExp +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- DECIMAL_INT: 1 +| | | |-- R_BRACK: ] +| | | |-- Assign: = +| | | `-- initVal +| | | |-- L_BRACE: { +| | | |-- initVal +| | | | |-- L_BRACE: { +| | | | |-- initVal +| | | | | `-- exp +| | | | | `-- addExp +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- lVal +| | | | | |-- Ident: d +| | | | | |-- L_BRACK: [ +| | | | | |-- exp +| | | | | | `-- addExp +| | | | | | `-- mulExp +| | | | | | `-- unaryExp +| | | | | | `-- primary +| | | | | | `-- DECIMAL_INT: 2 +| | | | | |-- R_BRACK: ] +| | | | | |-- L_BRACK: [ +| | | | | |-- exp +| | | | | | `-- addExp +| | | | | | `-- mulExp +| | | | | | `-- unaryExp +| | | | | | `-- primary +| | | | | | `-- DECIMAL_INT: 1 +| | | | | `-- R_BRACK: ] +| | | | |-- Comma: , +| | | | |-- initVal +| | | | | |-- L_BRACE: { +| | | | | |-- initVal +| | | | | | `-- exp +| | | | | | `-- addExp +| | | | | | `-- mulExp +| | | | | | `-- unaryExp +| | | | | | `-- primary +| | | | | | `-- lVal +| | | | | | |-- Ident: c +| | | | | | |-- L_BRACK: [ +| | | | | | |-- exp +| | | | | | | `-- addExp +| | | | | | | `-- mulExp +| | | | | | | `-- unaryExp +| | | | | | | `-- primary +| | | | | | | `-- DECIMAL_INT: 2 +| | | | | | |-- R_BRACK: ] +| | | | | | |-- L_BRACK: [ +| | | | | | |-- exp +| | | | | | | `-- addExp +| | | | | | | `-- mulExp +| | | | | | | `-- unaryExp +| | | | | | | `-- primary +| | | | | | | `-- DECIMAL_INT: 1 +| | | | | | `-- R_BRACK: ] +| | | | | `-- R_BRACE: } +| | | | `-- R_BRACE: } +| | | |-- Comma: , +| | | |-- initVal +| | | | |-- L_BRACE: { +| | | | |-- initVal +| | | | | `-- exp +| | | | | `-- addExp +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- DECIMAL_INT: 3 +| | | | |-- Comma: , +| | | | |-- initVal +| | | | | `-- exp +| | | | | `-- addExp +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- DECIMAL_INT: 4 +| | | | `-- R_BRACE: } +| | | |-- Comma: , +| | | |-- initVal +| | | | |-- L_BRACE: { +| | | | |-- initVal +| | | | | `-- exp +| | | | | `-- addExp +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- DECIMAL_INT: 5 +| | | | |-- Comma: , +| | | | |-- initVal +| | | | | `-- exp +| | | | | `-- addExp +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- DECIMAL_INT: 6 +| | | | `-- R_BRACE: } +| | | |-- Comma: , +| | | |-- initVal +| | | | |-- L_BRACE: { +| | | | |-- initVal +| | | | | `-- exp +| | | | | `-- addExp +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- DECIMAL_INT: 7 +| | | | |-- Comma: , +| | | | |-- initVal +| | | | | `-- exp +| | | | | `-- addExp +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- DECIMAL_INT: 8 +| | | | `-- R_BRACE: } +| | | `-- R_BRACE: } +| | `-- Semi: ; +| |-- blockItem +| | `-- stmt +| | `-- returnStmt +| | |-- Return: return +| | |-- exp +| | | `-- addExp +| | | |-- addExp +| | | | |-- addExp +| | | | | |-- addExp +| | | | | | `-- mulExp +| | | | | | `-- unaryExp +| | | | | | `-- primary +| | | | | | `-- lVal +| | | | | | |-- Ident: e +| | | | | | |-- L_BRACK: [ +| | | | | | |-- exp +| | | | | | | `-- addExp +| | | | | | | `-- mulExp +| | | | | | | `-- unaryExp +| | | | | | | `-- primary +| | | | | | | `-- DECIMAL_INT: 3 +| | | | | | |-- R_BRACK: ] +| | | | | | |-- L_BRACK: [ +| | | | | | |-- exp +| | | | | | | `-- addExp +| | | | | | | `-- mulExp +| | | | | | | `-- unaryExp +| | | | | | | `-- primary +| | | | | | | `-- DECIMAL_INT: 1 +| | | | | | |-- R_BRACK: ] +| | | | | | |-- L_BRACK: [ +| | | | | | |-- exp +| | | | | | | `-- addExp +| | | | | | | `-- mulExp +| | | | | | | `-- unaryExp +| | | | | | | `-- primary +| | | | | | | `-- OCTAL_INT: 0 +| | | | | | `-- R_BRACK: ] +| | | | | |-- AddOp: + +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- lVal +| | | | | |-- Ident: e +| | | | | |-- L_BRACK: [ +| | | | | |-- exp +| | | | | | `-- addExp +| | | | | | `-- mulExp +| | | | | | `-- unaryExp +| | | | | | `-- primary +| | | | | | `-- OCTAL_INT: 0 +| | | | | |-- R_BRACK: ] +| | | | | |-- L_BRACK: [ +| | | | | |-- exp +| | | | | | `-- addExp +| | | | | | `-- mulExp +| | | | | | `-- unaryExp +| | | | | | `-- primary +| | | | | | `-- OCTAL_INT: 0 +| | | | | |-- R_BRACK: ] +| | | | | |-- L_BRACK: [ +| | | | | |-- exp +| | | | | | `-- addExp +| | | | | | `-- mulExp +| | | | | | `-- unaryExp +| | | | | | `-- primary +| | | | | | `-- OCTAL_INT: 0 +| | | | | `-- R_BRACK: ] +| | | | |-- AddOp: + +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- lVal +| | | | |-- Ident: e +| | | | |-- L_BRACK: [ +| | | | |-- exp +| | | | | `-- addExp +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- OCTAL_INT: 0 +| | | | |-- R_BRACK: ] +| | | | |-- L_BRACK: [ +| | | | |-- exp +| | | | | `-- addExp +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- DECIMAL_INT: 1 +| | | | |-- R_BRACK: ] +| | | | |-- L_BRACK: [ +| | | | |-- exp +| | | | | `-- addExp +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- OCTAL_INT: 0 +| | | | `-- R_BRACK: ] +| | | |-- AddOp: + +| | | `-- mulExp +| | | `-- unaryExp +| | | `-- primary +| | | `-- lVal +| | | |-- Ident: d +| | | |-- L_BRACK: [ +| | | |-- exp +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- DECIMAL_INT: 3 +| | | |-- R_BRACK: ] +| | | |-- L_BRACK: [ +| | | |-- exp +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- OCTAL_INT: 0 +| | | `-- R_BRACK: ] +| | `-- Semi: ; +| `-- R_BRACE: } +`-- EOF: + +========== test/test_case/functional/09_func_defn.sy ========== +compUnit +|-- program +| |-- decl +| | `-- varDecl +| | |-- bType +| | | `-- Int: int +| | |-- varDef +| | | `-- Ident: a +| | `-- Semi: ; +| |-- funcDef +| | |-- funcType +| | | `-- Int: int +| | |-- Ident: func +| | |-- L_PAREN: ( +| | |-- funcFParams +| | | `-- funcFParam +| | | |-- bType +| | | | `-- Int: int +| | | `-- Ident: p +| | |-- R_PAREN: ) +| | `-- block +| | |-- L_BRACE: { +| | |-- blockItem +| | | `-- stmt +| | | |-- lVal +| | | | `-- Ident: p +| | | |-- Assign: = +| | | |-- exp +| | | | `-- addExp +| | | | |-- addExp +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- lVal +| | | | | `-- Ident: p +| | | | |-- SubOp: - +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- DECIMAL_INT: 1 +| | | `-- Semi: ; +| | |-- blockItem +| | | `-- stmt +| | | `-- returnStmt +| | | |-- Return: return +| | | |-- exp +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- lVal +| | | | `-- Ident: p +| | | `-- Semi: ; +| | `-- R_BRACE: } +| `-- funcDef +| |-- funcType +| | `-- Int: int +| |-- Ident: main +| |-- L_PAREN: ( +| |-- R_PAREN: ) +| `-- block +| |-- L_BRACE: { +| |-- blockItem +| | `-- decl +| | `-- varDecl +| | |-- bType +| | | `-- Int: int +| | |-- varDef +| | | `-- Ident: b +| | `-- Semi: ; +| |-- blockItem +| | `-- stmt +| | |-- lVal +| | | `-- Ident: a +| | |-- Assign: = +| | |-- exp +| | | `-- addExp +| | | `-- mulExp +| | | `-- unaryExp +| | | `-- primary +| | | `-- DECIMAL_INT: 10 +| | `-- Semi: ; +| |-- blockItem +| | `-- stmt +| | |-- lVal +| | | `-- Ident: b +| | |-- Assign: = +| | |-- exp +| | | `-- addExp +| | | `-- mulExp +| | | `-- unaryExp +| | | |-- Ident: func +| | | |-- L_PAREN: ( +| | | |-- funcRParams +| | | | `-- exp +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- lVal +| | | | `-- Ident: a +| | | `-- R_PAREN: ) +| | `-- Semi: ; +| |-- blockItem +| | `-- stmt +| | `-- returnStmt +| | |-- Return: return +| | |-- exp +| | | `-- addExp +| | | `-- mulExp +| | | `-- unaryExp +| | | `-- primary +| | | `-- lVal +| | | `-- Ident: b +| | `-- Semi: ; +| `-- R_BRACE: } +`-- EOF: + +========== test/test_case/functional/11_add2.sy ========== +compUnit +|-- funcDef +| |-- funcType +| | `-- Int: int +| |-- Ident: main +| |-- L_PAREN: ( +| |-- R_PAREN: ) +| `-- block +| |-- L_BRACE: { +| |-- blockItem +| | `-- decl +| | `-- varDecl +| | |-- bType +| | | `-- Int: int +| | |-- varDef +| | | `-- Ident: a +| | |-- Comma: , +| | |-- varDef +| | | `-- Ident: b +| | `-- Semi: ; +| |-- blockItem +| | `-- stmt +| | |-- lVal +| | | `-- Ident: a +| | |-- Assign: = +| | |-- exp +| | | `-- addExp +| | | `-- mulExp +| | | `-- unaryExp +| | | `-- primary +| | | `-- DECIMAL_INT: 10 +| | `-- Semi: ; +| |-- blockItem +| | `-- stmt +| | |-- lVal +| | | `-- Ident: b +| | |-- Assign: = +| | |-- exp +| | | `-- addExp +| | | `-- mulExp +| | | `-- unaryExp +| | | |-- unaryOp +| | | | `-- SubOp: - +| | | `-- unaryExp +| | | `-- primary +| | | `-- DECIMAL_INT: 1 +| | `-- Semi: ; +| |-- blockItem +| | `-- stmt +| | `-- returnStmt +| | |-- Return: return +| | |-- exp +| | | `-- addExp +| | | |-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- lVal +| | | | `-- Ident: a +| | | |-- AddOp: + +| | | `-- mulExp +| | | `-- unaryExp +| | | `-- primary +| | | `-- lVal +| | | `-- Ident: b +| | `-- Semi: ; +| `-- R_BRACE: } +`-- EOF: + +========== test/test_case/functional/13_sub2.sy ========== +compUnit +|-- program +| |-- decl +| | `-- constDecl +| | |-- Const: const +| | |-- bType +| | | `-- Int: int +| | |-- constDef +| | | |-- Ident: a +| | | |-- Assign: = +| | | `-- constInitVal +| | | `-- constExp +| | | `-- addExp +| | | `-- mulExp +| | | `-- unaryExp +| | | `-- primary +| | | `-- DECIMAL_INT: 10 +| | `-- Semi: ; +| `-- funcDef +| |-- funcType +| | `-- Int: int +| |-- Ident: main +| |-- L_PAREN: ( +| |-- R_PAREN: ) +| `-- block +| |-- L_BRACE: { +| |-- blockItem +| | `-- decl +| | `-- varDecl +| | |-- bType +| | | `-- Int: int +| | |-- varDef +| | | `-- Ident: b +| | `-- Semi: ; +| |-- blockItem +| | `-- stmt +| | |-- lVal +| | | `-- Ident: b +| | |-- Assign: = +| | |-- exp +| | | `-- addExp +| | | `-- mulExp +| | | `-- unaryExp +| | | `-- primary +| | | `-- DECIMAL_INT: 2 +| | `-- Semi: ; +| |-- blockItem +| | `-- stmt +| | `-- returnStmt +| | |-- Return: return +| | |-- exp +| | | `-- addExp +| | | |-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- lVal +| | | | `-- Ident: b +| | | |-- SubOp: - +| | | `-- mulExp +| | | `-- unaryExp +| | | `-- primary +| | | `-- lVal +| | | `-- Ident: a +| | `-- Semi: ; +| `-- R_BRACE: } +`-- EOF: + +========== test/test_case/functional/15_graph_coloring.sy ========== +compUnit +|-- program +| |-- decl +| | `-- constDecl +| | |-- Const: const +| | |-- bType +| | | `-- Int: int +| | |-- constDef +| | | |-- Ident: V +| | | |-- Assign: = +| | | `-- constInitVal +| | | `-- constExp +| | | `-- addExp +| | | `-- mulExp +| | | `-- unaryExp +| | | `-- primary +| | | `-- DECIMAL_INT: 4 +| | `-- Semi: ; +| |-- decl +| | `-- constDecl +| | |-- Const: const +| | |-- bType +| | | `-- Int: int +| | |-- constDef +| | | |-- Ident: space +| | | |-- Assign: = +| | | `-- constInitVal +| | | `-- constExp +| | | `-- addExp +| | | `-- mulExp +| | | `-- unaryExp +| | | `-- primary +| | | `-- DECIMAL_INT: 32 +| | `-- Semi: ; +| |-- decl +| | `-- constDecl +| | |-- Const: const +| | |-- bType +| | | `-- Int: int +| | |-- constDef +| | | |-- Ident: LF +| | | |-- Assign: = +| | | `-- constInitVal +| | | `-- constExp +| | | `-- addExp +| | | `-- mulExp +| | | `-- unaryExp +| | | `-- primary +| | | `-- DECIMAL_INT: 10 +| | `-- Semi: ; +| |-- funcDef +| | |-- funcType +| | | `-- Void: void +| | |-- Ident: printSolution +| | |-- L_PAREN: ( +| | |-- funcFParams +| | | `-- funcFParam +| | | |-- bType +| | | | `-- Int: int +| | | |-- Ident: color +| | | |-- L_BRACK: [ +| | | `-- R_BRACK: ] +| | |-- R_PAREN: ) +| | `-- block +| | |-- L_BRACE: { +| | |-- blockItem +| | | `-- decl +| | | `-- varDecl +| | | |-- bType +| | | | `-- Int: int +| | | |-- varDef +| | | | |-- Ident: i +| | | | |-- Assign: = +| | | | `-- initVal +| | | | `-- exp +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- OCTAL_INT: 0 +| | | `-- Semi: ; +| | |-- blockItem +| | | `-- stmt +| | | |-- While: while +| | | |-- L_PAREN: ( +| | | |-- cond +| | | | `-- lOrExp +| | | | `-- lAndExp +| | | | `-- eqExp +| | | | `-- relExp +| | | | |-- relExp +| | | | | `-- addExp +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- lVal +| | | | | `-- Ident: i +| | | | |-- LOp: < +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- lVal +| | | | `-- Ident: V +| | | |-- R_PAREN: ) +| | | `-- stmt +| | | `-- block +| | | |-- L_BRACE: { +| | | |-- blockItem +| | | | `-- stmt +| | | | |-- exp +| | | | | `-- addExp +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | |-- Ident: putint +| | | | | |-- L_PAREN: ( +| | | | | |-- funcRParams +| | | | | | `-- exp +| | | | | | `-- addExp +| | | | | | `-- mulExp +| | | | | | `-- unaryExp +| | | | | | `-- primary +| | | | | | `-- lVal +| | | | | | |-- Ident: color +| | | | | | |-- L_BRACK: [ +| | | | | | |-- exp +| | | | | | | `-- addExp +| | | | | | | `-- mulExp +| | | | | | | `-- unaryExp +| | | | | | | `-- primary +| | | | | | | `-- lVal +| | | | | | | `-- Ident: i +| | | | | | `-- R_BRACK: ] +| | | | | `-- R_PAREN: ) +| | | | `-- Semi: ; +| | | |-- blockItem +| | | | `-- stmt +| | | | |-- exp +| | | | | `-- addExp +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | |-- Ident: putch +| | | | | |-- L_PAREN: ( +| | | | | |-- funcRParams +| | | | | | `-- exp +| | | | | | `-- addExp +| | | | | | `-- mulExp +| | | | | | `-- unaryExp +| | | | | | `-- primary +| | | | | | `-- lVal +| | | | | | `-- Ident: space +| | | | | `-- R_PAREN: ) +| | | | `-- Semi: ; +| | | |-- blockItem +| | | | `-- stmt +| | | | |-- lVal +| | | | | `-- Ident: i +| | | | |-- Assign: = +| | | | |-- exp +| | | | | `-- addExp +| | | | | |-- addExp +| | | | | | `-- mulExp +| | | | | | `-- unaryExp +| | | | | | `-- primary +| | | | | | `-- lVal +| | | | | | `-- Ident: i +| | | | | |-- AddOp: + +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- DECIMAL_INT: 1 +| | | | `-- Semi: ; +| | | `-- R_BRACE: } +| | |-- blockItem +| | | `-- stmt +| | | |-- exp +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | |-- Ident: putch +| | | | |-- L_PAREN: ( +| | | | |-- funcRParams +| | | | | `-- exp +| | | | | `-- addExp +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- lVal +| | | | | `-- Ident: LF +| | | | `-- R_PAREN: ) +| | | `-- Semi: ; +| | `-- R_BRACE: } +| |-- funcDef +| | |-- funcType +| | | `-- Void: void +| | |-- Ident: printMessage +| | |-- L_PAREN: ( +| | |-- R_PAREN: ) +| | `-- block +| | |-- L_BRACE: { +| | |-- blockItem +| | | `-- stmt +| | | |-- exp +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | |-- Ident: putch +| | | | |-- L_PAREN: ( +| | | | |-- funcRParams +| | | | | `-- exp +| | | | | `-- addExp +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- DECIMAL_INT: 78 +| | | | `-- R_PAREN: ) +| | | `-- Semi: ; +| | |-- blockItem +| | | `-- stmt +| | | |-- exp +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | |-- Ident: putch +| | | | |-- L_PAREN: ( +| | | | |-- funcRParams +| | | | | `-- exp +| | | | | `-- addExp +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- DECIMAL_INT: 111 +| | | | `-- R_PAREN: ) +| | | `-- Semi: ; +| | |-- blockItem +| | | `-- stmt +| | | |-- exp +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | |-- Ident: putch +| | | | |-- L_PAREN: ( +| | | | |-- funcRParams +| | | | | `-- exp +| | | | | `-- addExp +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- DECIMAL_INT: 116 +| | | | `-- R_PAREN: ) +| | | `-- Semi: ; +| | |-- blockItem +| | | `-- stmt +| | | |-- exp +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | |-- Ident: putch +| | | | |-- L_PAREN: ( +| | | | |-- funcRParams +| | | | | `-- exp +| | | | | `-- addExp +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- lVal +| | | | | `-- Ident: space +| | | | `-- R_PAREN: ) +| | | `-- Semi: ; +| | |-- blockItem +| | | `-- stmt +| | | |-- exp +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | |-- Ident: putch +| | | | |-- L_PAREN: ( +| | | | |-- funcRParams +| | | | | `-- exp +| | | | | `-- addExp +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- DECIMAL_INT: 101 +| | | | `-- R_PAREN: ) +| | | `-- Semi: ; +| | |-- blockItem +| | | `-- stmt +| | | |-- exp +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | |-- Ident: putch +| | | | |-- L_PAREN: ( +| | | | |-- funcRParams +| | | | | `-- exp +| | | | | `-- addExp +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- DECIMAL_INT: 120 +| | | | `-- R_PAREN: ) +| | | `-- Semi: ; +| | |-- blockItem +| | | `-- stmt +| | | |-- exp +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | |-- Ident: putch +| | | | |-- L_PAREN: ( +| | | | |-- funcRParams +| | | | | `-- exp +| | | | | `-- addExp +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- DECIMAL_INT: 105 +| | | | `-- R_PAREN: ) +| | | `-- Semi: ; +| | |-- blockItem +| | | `-- stmt +| | | |-- exp +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | |-- Ident: putch +| | | | |-- L_PAREN: ( +| | | | |-- funcRParams +| | | | | `-- exp +| | | | | `-- addExp +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- DECIMAL_INT: 115 +| | | | `-- R_PAREN: ) +| | | `-- Semi: ; +| | |-- blockItem +| | | `-- stmt +| | | |-- exp +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | |-- Ident: putch +| | | | |-- L_PAREN: ( +| | | | |-- funcRParams +| | | | | `-- exp +| | | | | `-- addExp +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- DECIMAL_INT: 116 +| | | | `-- R_PAREN: ) +| | | `-- Semi: ; +| | `-- R_BRACE: } +| |-- funcDef +| | |-- funcType +| | | `-- Int: int +| | |-- Ident: isSafe +| | |-- L_PAREN: ( +| | |-- funcFParams +| | | |-- funcFParam +| | | | |-- bType +| | | | | `-- Int: int +| | | | |-- Ident: graph +| | | | |-- L_BRACK: [ +| | | | |-- R_BRACK: ] +| | | | |-- L_BRACK: [ +| | | | |-- exp +| | | | | `-- addExp +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- lVal +| | | | | `-- Ident: V +| | | | `-- R_BRACK: ] +| | | |-- Comma: , +| | | `-- funcFParam +| | | |-- bType +| | | | `-- Int: int +| | | |-- Ident: color +| | | |-- L_BRACK: [ +| | | `-- R_BRACK: ] +| | |-- R_PAREN: ) +| | `-- block +| | |-- L_BRACE: { +| | |-- blockItem +| | | `-- decl +| | | `-- varDecl +| | | |-- bType +| | | | `-- Int: int +| | | |-- varDef +| | | | |-- Ident: i +| | | | |-- Assign: = +| | | | `-- initVal +| | | | `-- exp +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- OCTAL_INT: 0 +| | | `-- Semi: ; +| | |-- blockItem +| | | `-- stmt +| | | |-- While: while +| | | |-- L_PAREN: ( +| | | |-- cond +| | | | `-- lOrExp +| | | | `-- lAndExp +| | | | `-- eqExp +| | | | `-- relExp +| | | | |-- relExp +| | | | | `-- addExp +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- lVal +| | | | | `-- Ident: i +| | | | |-- LOp: < +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- lVal +| | | | `-- Ident: V +| | | |-- R_PAREN: ) +| | | `-- stmt +| | | `-- block +| | | |-- L_BRACE: { +| | | |-- blockItem +| | | | `-- decl +| | | | `-- varDecl +| | | | |-- bType +| | | | | `-- Int: int +| | | | |-- varDef +| | | | | |-- Ident: j +| | | | | |-- Assign: = +| | | | | `-- initVal +| | | | | `-- exp +| | | | | `-- addExp +| | | | | |-- addExp +| | | | | | `-- mulExp +| | | | | | `-- unaryExp +| | | | | | `-- primary +| | | | | | `-- lVal +| | | | | | `-- Ident: i +| | | | | |-- AddOp: + +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- DECIMAL_INT: 1 +| | | | `-- Semi: ; +| | | |-- blockItem +| | | | `-- stmt +| | | | |-- While: while +| | | | |-- L_PAREN: ( +| | | | |-- cond +| | | | | `-- lOrExp +| | | | | `-- lAndExp +| | | | | `-- eqExp +| | | | | `-- relExp +| | | | | |-- relExp +| | | | | | `-- addExp +| | | | | | `-- mulExp +| | | | | | `-- unaryExp +| | | | | | `-- primary +| | | | | | `-- lVal +| | | | | | `-- Ident: j +| | | | | |-- LOp: < +| | | | | `-- addExp +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- lVal +| | | | | `-- Ident: V +| | | | |-- R_PAREN: ) +| | | | `-- stmt +| | | | `-- block +| | | | |-- L_BRACE: { +| | | | |-- blockItem +| | | | | `-- stmt +| | | | | |-- If: if +| | | | | |-- L_PAREN: ( +| | | | | |-- cond +| | | | | | `-- lOrExp +| | | | | | `-- lAndExp +| | | | | | |-- lAndExp +| | | | | | | `-- eqExp +| | | | | | | `-- relExp +| | | | | | | `-- addExp +| | | | | | | `-- mulExp +| | | | | | | `-- unaryExp +| | | | | | | `-- primary +| | | | | | | `-- lVal +| | | | | | | |-- Ident: graph +| | | | | | | |-- L_BRACK: [ +| | | | | | | |-- exp +| | | | | | | | `-- addExp +| | | | | | | | `-- mulExp +| | | | | | | | `-- unaryExp +| | | | | | | | `-- primary +| | | | | | | | `-- lVal +| | | | | | | | `-- Ident: i +| | | | | | | |-- R_BRACK: ] +| | | | | | | |-- L_BRACK: [ +| | | | | | | |-- exp +| | | | | | | | `-- addExp +| | | | | | | | `-- mulExp +| | | | | | | | `-- unaryExp +| | | | | | | | `-- primary +| | | | | | | | `-- lVal +| | | | | | | | `-- Ident: j +| | | | | | | `-- R_BRACK: ] +| | | | | | |-- AndOp: && +| | | | | | `-- eqExp +| | | | | | |-- eqExp +| | | | | | | `-- relExp +| | | | | | | `-- addExp +| | | | | | | `-- mulExp +| | | | | | | `-- unaryExp +| | | | | | | `-- primary +| | | | | | | `-- lVal +| | | | | | | |-- Ident: color +| | | | | | | |-- L_BRACK: [ +| | | | | | | |-- exp +| | | | | | | | `-- addExp +| | | | | | | | `-- mulExp +| | | | | | | | `-- unaryExp +| | | | | | | | `-- primary +| | | | | | | | `-- lVal +| | | | | | | | `-- Ident: j +| | | | | | | `-- R_BRACK: ] +| | | | | | |-- EqOp: == +| | | | | | `-- relExp +| | | | | | `-- addExp +| | | | | | `-- mulExp +| | | | | | `-- unaryExp +| | | | | | `-- primary +| | | | | | `-- lVal +| | | | | | |-- Ident: color +| | | | | | |-- L_BRACK: [ +| | | | | | |-- exp +| | | | | | | `-- addExp +| | | | | | | `-- mulExp +| | | | | | | `-- unaryExp +| | | | | | | `-- primary +| | | | | | | `-- lVal +| | | | | | | `-- Ident: i +| | | | | | `-- R_BRACK: ] +| | | | | |-- R_PAREN: ) +| | | | | `-- stmt +| | | | | `-- returnStmt +| | | | | |-- Return: return +| | | | | |-- exp +| | | | | | `-- addExp +| | | | | | `-- mulExp +| | | | | | `-- unaryExp +| | | | | | `-- primary +| | | | | | `-- OCTAL_INT: 0 +| | | | | `-- Semi: ; +| | | | |-- blockItem +| | | | | `-- stmt +| | | | | |-- lVal +| | | | | | `-- Ident: j +| | | | | |-- Assign: = +| | | | | |-- exp +| | | | | | `-- addExp +| | | | | | |-- addExp +| | | | | | | `-- mulExp +| | | | | | | `-- unaryExp +| | | | | | | `-- primary +| | | | | | | `-- lVal +| | | | | | | `-- Ident: j +| | | | | | |-- AddOp: + +| | | | | | `-- mulExp +| | | | | | `-- unaryExp +| | | | | | `-- primary +| | | | | | `-- DECIMAL_INT: 1 +| | | | | `-- Semi: ; +| | | | `-- R_BRACE: } +| | | |-- blockItem +| | | | `-- stmt +| | | | |-- lVal +| | | | | `-- Ident: i +| | | | |-- Assign: = +| | | | |-- exp +| | | | | `-- addExp +| | | | | |-- addExp +| | | | | | `-- mulExp +| | | | | | `-- unaryExp +| | | | | | `-- primary +| | | | | | `-- lVal +| | | | | | `-- Ident: i +| | | | | |-- AddOp: + +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- DECIMAL_INT: 1 +| | | | `-- Semi: ; +| | | `-- R_BRACE: } +| | |-- blockItem +| | | `-- stmt +| | | `-- returnStmt +| | | |-- Return: return +| | | |-- exp +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- DECIMAL_INT: 1 +| | | `-- Semi: ; +| | `-- R_BRACE: } +| |-- funcDef +| | |-- funcType +| | | `-- Int: int +| | |-- Ident: graphColoring +| | |-- L_PAREN: ( +| | |-- funcFParams +| | | |-- funcFParam +| | | | |-- bType +| | | | | `-- Int: int +| | | | |-- Ident: graph +| | | | |-- L_BRACK: [ +| | | | |-- R_BRACK: ] +| | | | |-- L_BRACK: [ +| | | | |-- exp +| | | | | `-- addExp +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- lVal +| | | | | `-- Ident: V +| | | | `-- R_BRACK: ] +| | | |-- Comma: , +| | | |-- funcFParam +| | | | |-- bType +| | | | | `-- Int: int +| | | | `-- Ident: m +| | | |-- Comma: , +| | | |-- funcFParam +| | | | |-- bType +| | | | | `-- Int: int +| | | | `-- Ident: i +| | | |-- Comma: , +| | | `-- funcFParam +| | | |-- bType +| | | | `-- Int: int +| | | |-- Ident: color +| | | |-- L_BRACK: [ +| | | `-- R_BRACK: ] +| | |-- R_PAREN: ) +| | `-- block +| | |-- L_BRACE: { +| | |-- blockItem +| | | `-- stmt +| | | |-- If: if +| | | |-- L_PAREN: ( +| | | |-- cond +| | | | `-- lOrExp +| | | | `-- lAndExp +| | | | `-- eqExp +| | | | |-- eqExp +| | | | | `-- relExp +| | | | | `-- addExp +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- lVal +| | | | | `-- Ident: i +| | | | |-- EqOp: == +| | | | `-- relExp +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- lVal +| | | | `-- Ident: V +| | | |-- R_PAREN: ) +| | | `-- stmt +| | | `-- block +| | | |-- L_BRACE: { +| | | |-- blockItem +| | | | `-- stmt +| | | | |-- If: if +| | | | |-- L_PAREN: ( +| | | | |-- cond +| | | | | `-- lOrExp +| | | | | `-- lAndExp +| | | | | `-- eqExp +| | | | | `-- relExp +| | | | | `-- addExp +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | |-- Ident: isSafe +| | | | | |-- L_PAREN: ( +| | | | | |-- funcRParams +| | | | | | |-- exp +| | | | | | | `-- addExp +| | | | | | | `-- mulExp +| | | | | | | `-- unaryExp +| | | | | | | `-- primary +| | | | | | | `-- lVal +| | | | | | | `-- Ident: graph +| | | | | | |-- Comma: , +| | | | | | `-- exp +| | | | | | `-- addExp +| | | | | | `-- mulExp +| | | | | | `-- unaryExp +| | | | | | `-- primary +| | | | | | `-- lVal +| | | | | | `-- Ident: color +| | | | | `-- R_PAREN: ) +| | | | |-- R_PAREN: ) +| | | | `-- stmt +| | | | `-- block +| | | | |-- L_BRACE: { +| | | | |-- blockItem +| | | | | `-- stmt +| | | | | |-- exp +| | | | | | `-- addExp +| | | | | | `-- mulExp +| | | | | | `-- unaryExp +| | | | | | |-- Ident: printSolution +| | | | | | |-- L_PAREN: ( +| | | | | | |-- funcRParams +| | | | | | | `-- exp +| | | | | | | `-- addExp +| | | | | | | `-- mulExp +| | | | | | | `-- unaryExp +| | | | | | | `-- primary +| | | | | | | `-- lVal +| | | | | | | `-- Ident: color +| | | | | | `-- R_PAREN: ) +| | | | | `-- Semi: ; +| | | | |-- blockItem +| | | | | `-- stmt +| | | | | `-- returnStmt +| | | | | |-- Return: return +| | | | | |-- exp +| | | | | | `-- addExp +| | | | | | `-- mulExp +| | | | | | `-- unaryExp +| | | | | | `-- primary +| | | | | | `-- DECIMAL_INT: 1 +| | | | | `-- Semi: ; +| | | | `-- R_BRACE: } +| | | |-- blockItem +| | | | `-- stmt +| | | | `-- returnStmt +| | | | |-- Return: return +| | | | |-- exp +| | | | | `-- addExp +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- OCTAL_INT: 0 +| | | | `-- Semi: ; +| | | `-- R_BRACE: } +| | |-- blockItem +| | | `-- decl +| | | `-- varDecl +| | | |-- bType +| | | | `-- Int: int +| | | |-- varDef +| | | | |-- Ident: j +| | | | |-- Assign: = +| | | | `-- initVal +| | | | `-- exp +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- DECIMAL_INT: 1 +| | | `-- Semi: ; +| | |-- blockItem +| | | `-- stmt +| | | |-- While: while +| | | |-- L_PAREN: ( +| | | |-- cond +| | | | `-- lOrExp +| | | | `-- lAndExp +| | | | `-- eqExp +| | | | `-- relExp +| | | | |-- relExp +| | | | | `-- addExp +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- lVal +| | | | | `-- Ident: j +| | | | |-- LeOp: <= +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- lVal +| | | | `-- Ident: m +| | | |-- R_PAREN: ) +| | | `-- stmt +| | | `-- block +| | | |-- L_BRACE: { +| | | |-- blockItem +| | | | `-- stmt +| | | | |-- lVal +| | | | | |-- Ident: color +| | | | | |-- L_BRACK: [ +| | | | | |-- exp +| | | | | | `-- addExp +| | | | | | `-- mulExp +| | | | | | `-- unaryExp +| | | | | | `-- primary +| | | | | | `-- lVal +| | | | | | `-- Ident: i +| | | | | `-- R_BRACK: ] +| | | | |-- Assign: = +| | | | |-- exp +| | | | | `-- addExp +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- lVal +| | | | | `-- Ident: j +| | | | `-- Semi: ; +| | | |-- blockItem +| | | | `-- stmt +| | | | |-- If: if +| | | | |-- L_PAREN: ( +| | | | |-- cond +| | | | | `-- lOrExp +| | | | | `-- lAndExp +| | | | | `-- eqExp +| | | | | `-- relExp +| | | | | `-- addExp +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | |-- Ident: graphColoring +| | | | | |-- L_PAREN: ( +| | | | | |-- funcRParams +| | | | | | |-- exp +| | | | | | | `-- addExp +| | | | | | | `-- mulExp +| | | | | | | `-- unaryExp +| | | | | | | `-- primary +| | | | | | | `-- lVal +| | | | | | | `-- Ident: graph +| | | | | | |-- Comma: , +| | | | | | |-- exp +| | | | | | | `-- addExp +| | | | | | | `-- mulExp +| | | | | | | `-- unaryExp +| | | | | | | `-- primary +| | | | | | | `-- lVal +| | | | | | | `-- Ident: m +| | | | | | |-- Comma: , +| | | | | | |-- exp +| | | | | | | `-- addExp +| | | | | | | |-- addExp +| | | | | | | | `-- mulExp +| | | | | | | | `-- unaryExp +| | | | | | | | `-- primary +| | | | | | | | `-- lVal +| | | | | | | | `-- Ident: i +| | | | | | | |-- AddOp: + +| | | | | | | `-- mulExp +| | | | | | | `-- unaryExp +| | | | | | | `-- primary +| | | | | | | `-- DECIMAL_INT: 1 +| | | | | | |-- Comma: , +| | | | | | `-- exp +| | | | | | `-- addExp +| | | | | | `-- mulExp +| | | | | | `-- unaryExp +| | | | | | `-- primary +| | | | | | `-- lVal +| | | | | | `-- Ident: color +| | | | | `-- R_PAREN: ) +| | | | |-- R_PAREN: ) +| | | | `-- stmt +| | | | `-- returnStmt +| | | | |-- Return: return +| | | | |-- exp +| | | | | `-- addExp +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- DECIMAL_INT: 1 +| | | | `-- Semi: ; +| | | |-- blockItem +| | | | `-- stmt +| | | | |-- lVal +| | | | | |-- Ident: color +| | | | | |-- L_BRACK: [ +| | | | | |-- exp +| | | | | | `-- addExp +| | | | | | `-- mulExp +| | | | | | `-- unaryExp +| | | | | | `-- primary +| | | | | | `-- lVal +| | | | | | `-- Ident: i +| | | | | `-- R_BRACK: ] +| | | | |-- Assign: = +| | | | |-- exp +| | | | | `-- addExp +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- OCTAL_INT: 0 +| | | | `-- Semi: ; +| | | |-- blockItem +| | | | `-- stmt +| | | | |-- lVal +| | | | | `-- Ident: j +| | | | |-- Assign: = +| | | | |-- exp +| | | | | `-- addExp +| | | | | |-- addExp +| | | | | | `-- mulExp +| | | | | | `-- unaryExp +| | | | | | `-- primary +| | | | | | `-- lVal +| | | | | | `-- Ident: j +| | | | | |-- AddOp: + +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- DECIMAL_INT: 1 +| | | | `-- Semi: ; +| | | `-- R_BRACE: } +| | |-- blockItem +| | | `-- stmt +| | | `-- returnStmt +| | | |-- Return: return +| | | |-- exp +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- OCTAL_INT: 0 +| | | `-- Semi: ; +| | `-- R_BRACE: } +| `-- funcDef +| |-- funcType +| | `-- Int: int +| |-- Ident: main +| |-- L_PAREN: ( +| |-- R_PAREN: ) +| `-- block +| |-- L_BRACE: { +| |-- blockItem +| | `-- decl +| | `-- varDecl +| | |-- bType +| | | `-- Int: int +| | |-- varDef +| | | |-- Ident: graph +| | | |-- L_BRACK: [ +| | | |-- constExp +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- lVal +| | | | `-- Ident: V +| | | |-- R_BRACK: ] +| | | |-- L_BRACK: [ +| | | |-- constExp +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- lVal +| | | | `-- Ident: V +| | | |-- R_BRACK: ] +| | | |-- Assign: = +| | | `-- initVal +| | | |-- L_BRACE: { +| | | |-- initVal +| | | | |-- L_BRACE: { +| | | | |-- initVal +| | | | | `-- exp +| | | | | `-- addExp +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- OCTAL_INT: 0 +| | | | |-- Comma: , +| | | | |-- initVal +| | | | | `-- exp +| | | | | `-- addExp +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- DECIMAL_INT: 1 +| | | | |-- Comma: , +| | | | |-- initVal +| | | | | `-- exp +| | | | | `-- addExp +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- DECIMAL_INT: 1 +| | | | |-- Comma: , +| | | | |-- initVal +| | | | | `-- exp +| | | | | `-- addExp +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- DECIMAL_INT: 1 +| | | | `-- R_BRACE: } +| | | |-- Comma: , +| | | |-- initVal +| | | | |-- L_BRACE: { +| | | | |-- initVal +| | | | | `-- exp +| | | | | `-- addExp +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- DECIMAL_INT: 1 +| | | | |-- Comma: , +| | | | |-- initVal +| | | | | `-- exp +| | | | | `-- addExp +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- OCTAL_INT: 0 +| | | | |-- Comma: , +| | | | |-- initVal +| | | | | `-- exp +| | | | | `-- addExp +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- DECIMAL_INT: 1 +| | | | |-- Comma: , +| | | | |-- initVal +| | | | | `-- exp +| | | | | `-- addExp +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- OCTAL_INT: 0 +| | | | `-- R_BRACE: } +| | | |-- Comma: , +| | | |-- initVal +| | | | |-- L_BRACE: { +| | | | |-- initVal +| | | | | `-- exp +| | | | | `-- addExp +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- DECIMAL_INT: 1 +| | | | |-- Comma: , +| | | | |-- initVal +| | | | | `-- exp +| | | | | `-- addExp +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- DECIMAL_INT: 1 +| | | | |-- Comma: , +| | | | |-- initVal +| | | | | `-- exp +| | | | | `-- addExp +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- OCTAL_INT: 0 +| | | | |-- Comma: , +| | | | |-- initVal +| | | | | `-- exp +| | | | | `-- addExp +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- DECIMAL_INT: 1 +| | | | `-- R_BRACE: } +| | | |-- Comma: , +| | | |-- initVal +| | | | |-- L_BRACE: { +| | | | |-- initVal +| | | | | `-- exp +| | | | | `-- addExp +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- DECIMAL_INT: 1 +| | | | |-- Comma: , +| | | | |-- initVal +| | | | | `-- exp +| | | | | `-- addExp +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- OCTAL_INT: 0 +| | | | |-- Comma: , +| | | | |-- initVal +| | | | | `-- exp +| | | | | `-- addExp +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- DECIMAL_INT: 1 +| | | | |-- Comma: , +| | | | |-- initVal +| | | | | `-- exp +| | | | | `-- addExp +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- OCTAL_INT: 0 +| | | | `-- R_BRACE: } +| | | `-- R_BRACE: } +| | |-- Comma: , +| | |-- varDef +| | | |-- Ident: m +| | | |-- Assign: = +| | | `-- initVal +| | | `-- exp +| | | `-- addExp +| | | `-- mulExp +| | | `-- unaryExp +| | | `-- primary +| | | `-- DECIMAL_INT: 3 +| | `-- Semi: ; +| |-- blockItem +| | `-- decl +| | `-- varDecl +| | |-- bType +| | | `-- Int: int +| | |-- varDef +| | | |-- Ident: color +| | | |-- L_BRACK: [ +| | | |-- constExp +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- lVal +| | | | `-- Ident: V +| | | `-- R_BRACK: ] +| | |-- Comma: , +| | |-- varDef +| | | |-- Ident: i +| | | |-- Assign: = +| | | `-- initVal +| | | `-- exp +| | | `-- addExp +| | | `-- mulExp +| | | `-- unaryExp +| | | `-- primary +| | | `-- OCTAL_INT: 0 +| | `-- Semi: ; +| |-- blockItem +| | `-- stmt +| | |-- While: while +| | |-- L_PAREN: ( +| | |-- cond +| | | `-- lOrExp +| | | `-- lAndExp +| | | `-- eqExp +| | | `-- relExp +| | | |-- relExp +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- lVal +| | | | `-- Ident: i +| | | |-- LOp: < +| | | `-- addExp +| | | `-- mulExp +| | | `-- unaryExp +| | | `-- primary +| | | `-- lVal +| | | `-- Ident: V +| | |-- R_PAREN: ) +| | `-- stmt +| | `-- block +| | |-- L_BRACE: { +| | |-- blockItem +| | | `-- stmt +| | | |-- lVal +| | | | |-- Ident: color +| | | | |-- L_BRACK: [ +| | | | |-- exp +| | | | | `-- addExp +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- lVal +| | | | | `-- Ident: i +| | | | `-- R_BRACK: ] +| | | |-- Assign: = +| | | |-- exp +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- OCTAL_INT: 0 +| | | `-- Semi: ; +| | |-- blockItem +| | | `-- stmt +| | | |-- lVal +| | | | `-- Ident: i +| | | |-- Assign: = +| | | |-- exp +| | | | `-- addExp +| | | | |-- addExp +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- lVal +| | | | | `-- Ident: i +| | | | |-- AddOp: + +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- DECIMAL_INT: 1 +| | | `-- Semi: ; +| | `-- R_BRACE: } +| |-- blockItem +| | `-- stmt +| | |-- If: if +| | |-- L_PAREN: ( +| | |-- cond +| | | `-- lOrExp +| | | `-- lAndExp +| | | `-- eqExp +| | | `-- relExp +| | | `-- addExp +| | | `-- mulExp +| | | `-- unaryExp +| | | |-- unaryOp +| | | | `-- NotOp: ! +| | | `-- unaryExp +| | | |-- Ident: graphColoring +| | | |-- L_PAREN: ( +| | | |-- funcRParams +| | | | |-- exp +| | | | | `-- addExp +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- lVal +| | | | | `-- Ident: graph +| | | | |-- Comma: , +| | | | |-- exp +| | | | | `-- addExp +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- lVal +| | | | | `-- Ident: m +| | | | |-- Comma: , +| | | | |-- exp +| | | | | `-- addExp +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- OCTAL_INT: 0 +| | | | |-- Comma: , +| | | | `-- exp +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- lVal +| | | | `-- Ident: color +| | | `-- R_PAREN: ) +| | |-- R_PAREN: ) +| | `-- stmt +| | |-- exp +| | | `-- addExp +| | | `-- mulExp +| | | `-- unaryExp +| | | |-- Ident: printMessage +| | | |-- L_PAREN: ( +| | | `-- R_PAREN: ) +| | `-- Semi: ; +| |-- blockItem +| | `-- stmt +| | `-- returnStmt +| | |-- Return: return +| | |-- exp +| | | `-- addExp +| | | `-- mulExp +| | | `-- unaryExp +| | | `-- primary +| | | `-- OCTAL_INT: 0 +| | `-- Semi: ; +| `-- R_BRACE: } +`-- EOF: + +========== test/test_case/functional/22_matrix_multiply.sy ========== +compUnit +|-- program +| |-- decl +| | `-- constDecl +| | |-- Const: const +| | |-- bType +| | | `-- Int: int +| | |-- constDef +| | | |-- Ident: MAX_SIZE +| | | |-- Assign: = +| | | `-- constInitVal +| | | `-- constExp +| | | `-- addExp +| | | `-- mulExp +| | | `-- unaryExp +| | | `-- primary +| | | `-- DECIMAL_INT: 100 +| | `-- Semi: ; +| |-- decl +| | `-- varDecl +| | |-- bType +| | | `-- Int: int +| | |-- varDef +| | | |-- Ident: a +| | | |-- L_BRACK: [ +| | | |-- constExp +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- lVal +| | | | `-- Ident: MAX_SIZE +| | | |-- R_BRACK: ] +| | | |-- L_BRACK: [ +| | | |-- constExp +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- lVal +| | | | `-- Ident: MAX_SIZE +| | | `-- R_BRACK: ] +| | |-- Comma: , +| | |-- varDef +| | | |-- Ident: b +| | | |-- L_BRACK: [ +| | | |-- constExp +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- lVal +| | | | `-- Ident: MAX_SIZE +| | | |-- R_BRACK: ] +| | | |-- L_BRACK: [ +| | | |-- constExp +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- lVal +| | | | `-- Ident: MAX_SIZE +| | | `-- R_BRACK: ] +| | `-- Semi: ; +| |-- decl +| | `-- varDecl +| | |-- bType +| | | `-- Int: int +| | |-- varDef +| | | |-- Ident: res +| | | |-- L_BRACK: [ +| | | |-- constExp +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- lVal +| | | | `-- Ident: MAX_SIZE +| | | |-- R_BRACK: ] +| | | |-- L_BRACK: [ +| | | |-- constExp +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- lVal +| | | | `-- Ident: MAX_SIZE +| | | `-- R_BRACK: ] +| | `-- Semi: ; +| |-- decl +| | `-- varDecl +| | |-- bType +| | | `-- Int: int +| | |-- varDef +| | | `-- Ident: n1 +| | |-- Comma: , +| | |-- varDef +| | | `-- Ident: m1 +| | |-- Comma: , +| | |-- varDef +| | | `-- Ident: n2 +| | |-- Comma: , +| | |-- varDef +| | | `-- Ident: m2 +| | `-- Semi: ; +| |-- funcDef +| | |-- funcType +| | | `-- Void: void +| | |-- Ident: matrix_multiply +| | |-- L_PAREN: ( +| | |-- R_PAREN: ) +| | `-- block +| | |-- L_BRACE: { +| | |-- blockItem +| | | `-- decl +| | | `-- varDecl +| | | |-- bType +| | | | `-- Int: int +| | | |-- varDef +| | | | |-- Ident: i +| | | | |-- Assign: = +| | | | `-- initVal +| | | | `-- exp +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- OCTAL_INT: 0 +| | | `-- Semi: ; +| | |-- blockItem +| | | `-- stmt +| | | |-- While: while +| | | |-- L_PAREN: ( +| | | |-- cond +| | | | `-- lOrExp +| | | | `-- lAndExp +| | | | `-- eqExp +| | | | `-- relExp +| | | | |-- relExp +| | | | | `-- addExp +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- lVal +| | | | | `-- Ident: i +| | | | |-- LOp: < +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- lVal +| | | | `-- Ident: m1 +| | | |-- R_PAREN: ) +| | | `-- stmt +| | | `-- block +| | | |-- L_BRACE: { +| | | |-- blockItem +| | | | `-- decl +| | | | `-- varDecl +| | | | |-- bType +| | | | | `-- Int: int +| | | | |-- varDef +| | | | | |-- Ident: j +| | | | | |-- Assign: = +| | | | | `-- initVal +| | | | | `-- exp +| | | | | `-- addExp +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- OCTAL_INT: 0 +| | | | `-- Semi: ; +| | | |-- blockItem +| | | | `-- stmt +| | | | |-- While: while +| | | | |-- L_PAREN: ( +| | | | |-- cond +| | | | | `-- lOrExp +| | | | | `-- lAndExp +| | | | | `-- eqExp +| | | | | `-- relExp +| | | | | |-- relExp +| | | | | | `-- addExp +| | | | | | `-- mulExp +| | | | | | `-- unaryExp +| | | | | | `-- primary +| | | | | | `-- lVal +| | | | | | `-- Ident: j +| | | | | |-- LOp: < +| | | | | `-- addExp +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- lVal +| | | | | `-- Ident: n2 +| | | | |-- R_PAREN: ) +| | | | `-- stmt +| | | | `-- block +| | | | |-- L_BRACE: { +| | | | |-- blockItem +| | | | | `-- decl +| | | | | `-- varDecl +| | | | | |-- bType +| | | | | | `-- Int: int +| | | | | |-- varDef +| | | | | | |-- Ident: k +| | | | | | |-- Assign: = +| | | | | | `-- initVal +| | | | | | `-- exp +| | | | | | `-- addExp +| | | | | | `-- mulExp +| | | | | | `-- unaryExp +| | | | | | `-- primary +| | | | | | `-- OCTAL_INT: 0 +| | | | | `-- Semi: ; +| | | | |-- blockItem +| | | | | `-- stmt +| | | | | |-- While: while +| | | | | |-- L_PAREN: ( +| | | | | |-- cond +| | | | | | `-- lOrExp +| | | | | | `-- lAndExp +| | | | | | `-- eqExp +| | | | | | `-- relExp +| | | | | | |-- relExp +| | | | | | | `-- addExp +| | | | | | | `-- mulExp +| | | | | | | `-- unaryExp +| | | | | | | `-- primary +| | | | | | | `-- lVal +| | | | | | | `-- Ident: k +| | | | | | |-- LOp: < +| | | | | | `-- addExp +| | | | | | `-- mulExp +| | | | | | `-- unaryExp +| | | | | | `-- primary +| | | | | | `-- lVal +| | | | | | `-- Ident: n1 +| | | | | |-- R_PAREN: ) +| | | | | `-- stmt +| | | | | `-- block +| | | | | |-- L_BRACE: { +| | | | | |-- blockItem +| | | | | | `-- stmt +| | | | | | |-- lVal +| | | | | | | |-- Ident: res +| | | | | | | |-- L_BRACK: [ +| | | | | | | |-- exp +| | | | | | | | `-- addExp +| | | | | | | | `-- mulExp +| | | | | | | | `-- unaryExp +| | | | | | | | `-- primary +| | | | | | | | `-- lVal +| | | | | | | | `-- Ident: i +| | | | | | | |-- R_BRACK: ] +| | | | | | | |-- L_BRACK: [ +| | | | | | | |-- exp +| | | | | | | | `-- addExp +| | | | | | | | `-- mulExp +| | | | | | | | `-- unaryExp +| | | | | | | | `-- primary +| | | | | | | | `-- lVal +| | | | | | | | `-- Ident: j +| | | | | | | `-- R_BRACK: ] +| | | | | | |-- Assign: = +| | | | | | |-- exp +| | | | | | | `-- addExp +| | | | | | | |-- addExp +| | | | | | | | `-- mulExp +| | | | | | | | `-- unaryExp +| | | | | | | | `-- primary +| | | | | | | | `-- lVal +| | | | | | | | |-- Ident: res +| | | | | | | | |-- L_BRACK: [ +| | | | | | | | |-- exp +| | | | | | | | | `-- addExp +| | | | | | | | | `-- mulExp +| | | | | | | | | `-- unaryExp +| | | | | | | | | `-- primary +| | | | | | | | | `-- lVal +| | | | | | | | | `-- Ident: i +| | | | | | | | |-- R_BRACK: ] +| | | | | | | | |-- L_BRACK: [ +| | | | | | | | |-- exp +| | | | | | | | | `-- addExp +| | | | | | | | | `-- mulExp +| | | | | | | | | `-- unaryExp +| | | | | | | | | `-- primary +| | | | | | | | | `-- lVal +| | | | | | | | | `-- Ident: j +| | | | | | | | `-- R_BRACK: ] +| | | | | | | |-- AddOp: + +| | | | | | | `-- mulExp +| | | | | | | |-- mulExp +| | | | | | | | `-- unaryExp +| | | | | | | | `-- primary +| | | | | | | | `-- lVal +| | | | | | | | |-- Ident: a +| | | | | | | | |-- L_BRACK: [ +| | | | | | | | |-- exp +| | | | | | | | | `-- addExp +| | | | | | | | | `-- mulExp +| | | | | | | | | `-- unaryExp +| | | | | | | | | `-- primary +| | | | | | | | | `-- lVal +| | | | | | | | | `-- Ident: i +| | | | | | | | |-- R_BRACK: ] +| | | | | | | | |-- L_BRACK: [ +| | | | | | | | |-- exp +| | | | | | | | | `-- addExp +| | | | | | | | | `-- mulExp +| | | | | | | | | `-- unaryExp +| | | | | | | | | `-- primary +| | | | | | | | | `-- lVal +| | | | | | | | | `-- Ident: k +| | | | | | | | `-- R_BRACK: ] +| | | | | | | |-- MulOp: * +| | | | | | | `-- unaryExp +| | | | | | | `-- primary +| | | | | | | `-- lVal +| | | | | | | |-- Ident: b +| | | | | | | |-- L_BRACK: [ +| | | | | | | |-- exp +| | | | | | | | `-- addExp +| | | | | | | | `-- mulExp +| | | | | | | | `-- unaryExp +| | | | | | | | `-- primary +| | | | | | | | `-- lVal +| | | | | | | | `-- Ident: k +| | | | | | | |-- R_BRACK: ] +| | | | | | | |-- L_BRACK: [ +| | | | | | | |-- exp +| | | | | | | | `-- addExp +| | | | | | | | `-- mulExp +| | | | | | | | `-- unaryExp +| | | | | | | | `-- primary +| | | | | | | | `-- lVal +| | | | | | | | `-- Ident: j +| | | | | | | `-- R_BRACK: ] +| | | | | | `-- Semi: ; +| | | | | |-- blockItem +| | | | | | `-- stmt +| | | | | | |-- lVal +| | | | | | | `-- Ident: k +| | | | | | |-- Assign: = +| | | | | | |-- exp +| | | | | | | `-- addExp +| | | | | | | |-- addExp +| | | | | | | | `-- mulExp +| | | | | | | | `-- unaryExp +| | | | | | | | `-- primary +| | | | | | | | `-- lVal +| | | | | | | | `-- Ident: k +| | | | | | | |-- AddOp: + +| | | | | | | `-- mulExp +| | | | | | | `-- unaryExp +| | | | | | | `-- primary +| | | | | | | `-- DECIMAL_INT: 1 +| | | | | | `-- Semi: ; +| | | | | `-- R_BRACE: } +| | | | |-- blockItem +| | | | | `-- stmt +| | | | | |-- lVal +| | | | | | `-- Ident: j +| | | | | |-- Assign: = +| | | | | |-- exp +| | | | | | `-- addExp +| | | | | | |-- addExp +| | | | | | | `-- mulExp +| | | | | | | `-- unaryExp +| | | | | | | `-- primary +| | | | | | | `-- lVal +| | | | | | | `-- Ident: j +| | | | | | |-- AddOp: + +| | | | | | `-- mulExp +| | | | | | `-- unaryExp +| | | | | | `-- primary +| | | | | | `-- DECIMAL_INT: 1 +| | | | | `-- Semi: ; +| | | | `-- R_BRACE: } +| | | |-- blockItem +| | | | `-- stmt +| | | | |-- lVal +| | | | | `-- Ident: i +| | | | |-- Assign: = +| | | | |-- exp +| | | | | `-- addExp +| | | | | |-- addExp +| | | | | | `-- mulExp +| | | | | | `-- unaryExp +| | | | | | `-- primary +| | | | | | `-- lVal +| | | | | | `-- Ident: i +| | | | | |-- AddOp: + +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- DECIMAL_INT: 1 +| | | | `-- Semi: ; +| | | `-- R_BRACE: } +| | `-- R_BRACE: } +| `-- funcDef +| |-- funcType +| | `-- Int: int +| |-- Ident: main +| |-- L_PAREN: ( +| |-- R_PAREN: ) +| `-- block +| |-- L_BRACE: { +| |-- blockItem +| | `-- decl +| | `-- varDecl +| | |-- bType +| | | `-- Int: int +| | |-- varDef +| | | `-- Ident: i +| | |-- Comma: , +| | |-- varDef +| | | `-- Ident: j +| | `-- Semi: ; +| |-- blockItem +| | `-- stmt +| | |-- lVal +| | | `-- Ident: m1 +| | |-- Assign: = +| | |-- exp +| | | `-- addExp +| | | `-- mulExp +| | | `-- unaryExp +| | | |-- Ident: getint +| | | |-- L_PAREN: ( +| | | `-- R_PAREN: ) +| | `-- Semi: ; +| |-- blockItem +| | `-- stmt +| | |-- lVal +| | | `-- Ident: n1 +| | |-- Assign: = +| | |-- exp +| | | `-- addExp +| | | `-- mulExp +| | | `-- unaryExp +| | | |-- Ident: getint +| | | |-- L_PAREN: ( +| | | `-- R_PAREN: ) +| | `-- Semi: ; +| |-- blockItem +| | `-- stmt +| | |-- lVal +| | | `-- Ident: i +| | |-- Assign: = +| | |-- exp +| | | `-- addExp +| | | `-- mulExp +| | | `-- unaryExp +| | | `-- primary +| | | `-- OCTAL_INT: 0 +| | `-- Semi: ; +| |-- blockItem +| | `-- stmt +| | |-- While: while +| | |-- L_PAREN: ( +| | |-- cond +| | | `-- lOrExp +| | | `-- lAndExp +| | | `-- eqExp +| | | `-- relExp +| | | |-- relExp +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- lVal +| | | | `-- Ident: i +| | | |-- LOp: < +| | | `-- addExp +| | | `-- mulExp +| | | `-- unaryExp +| | | `-- primary +| | | `-- lVal +| | | `-- Ident: m1 +| | |-- R_PAREN: ) +| | `-- stmt +| | `-- block +| | |-- L_BRACE: { +| | |-- blockItem +| | | `-- stmt +| | | |-- lVal +| | | | `-- Ident: j +| | | |-- Assign: = +| | | |-- exp +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- OCTAL_INT: 0 +| | | `-- Semi: ; +| | |-- blockItem +| | | `-- stmt +| | | |-- While: while +| | | |-- L_PAREN: ( +| | | |-- cond +| | | | `-- lOrExp +| | | | `-- lAndExp +| | | | `-- eqExp +| | | | `-- relExp +| | | | |-- relExp +| | | | | `-- addExp +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- lVal +| | | | | `-- Ident: j +| | | | |-- LOp: < +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- lVal +| | | | `-- Ident: n1 +| | | |-- R_PAREN: ) +| | | `-- stmt +| | | `-- block +| | | |-- L_BRACE: { +| | | |-- blockItem +| | | | `-- stmt +| | | | |-- lVal +| | | | | |-- Ident: a +| | | | | |-- L_BRACK: [ +| | | | | |-- exp +| | | | | | `-- addExp +| | | | | | `-- mulExp +| | | | | | `-- unaryExp +| | | | | | `-- primary +| | | | | | `-- lVal +| | | | | | `-- Ident: i +| | | | | |-- R_BRACK: ] +| | | | | |-- L_BRACK: [ +| | | | | |-- exp +| | | | | | `-- addExp +| | | | | | `-- mulExp +| | | | | | `-- unaryExp +| | | | | | `-- primary +| | | | | | `-- lVal +| | | | | | `-- Ident: j +| | | | | `-- R_BRACK: ] +| | | | |-- Assign: = +| | | | |-- exp +| | | | | `-- addExp +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | |-- Ident: getint +| | | | | |-- L_PAREN: ( +| | | | | `-- R_PAREN: ) +| | | | `-- Semi: ; +| | | |-- blockItem +| | | | `-- stmt +| | | | |-- lVal +| | | | | `-- Ident: j +| | | | |-- Assign: = +| | | | |-- exp +| | | | | `-- addExp +| | | | | |-- addExp +| | | | | | `-- mulExp +| | | | | | `-- unaryExp +| | | | | | `-- primary +| | | | | | `-- lVal +| | | | | | `-- Ident: j +| | | | | |-- AddOp: + +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- DECIMAL_INT: 1 +| | | | `-- Semi: ; +| | | `-- R_BRACE: } +| | |-- blockItem +| | | `-- stmt +| | | |-- lVal +| | | | `-- Ident: i +| | | |-- Assign: = +| | | |-- exp +| | | | `-- addExp +| | | | |-- addExp +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- lVal +| | | | | `-- Ident: i +| | | | |-- AddOp: + +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- DECIMAL_INT: 1 +| | | `-- Semi: ; +| | `-- R_BRACE: } +| |-- blockItem +| | `-- stmt +| | |-- lVal +| | | `-- Ident: m2 +| | |-- Assign: = +| | |-- exp +| | | `-- addExp +| | | `-- mulExp +| | | `-- unaryExp +| | | |-- Ident: getint +| | | |-- L_PAREN: ( +| | | `-- R_PAREN: ) +| | `-- Semi: ; +| |-- blockItem +| | `-- stmt +| | |-- lVal +| | | `-- Ident: n2 +| | |-- Assign: = +| | |-- exp +| | | `-- addExp +| | | `-- mulExp +| | | `-- unaryExp +| | | |-- Ident: getint +| | | |-- L_PAREN: ( +| | | `-- R_PAREN: ) +| | `-- Semi: ; +| |-- blockItem +| | `-- stmt +| | |-- lVal +| | | `-- Ident: i +| | |-- Assign: = +| | |-- exp +| | | `-- addExp +| | | `-- mulExp +| | | `-- unaryExp +| | | `-- primary +| | | `-- OCTAL_INT: 0 +| | `-- Semi: ; +| |-- blockItem +| | `-- stmt +| | |-- While: while +| | |-- L_PAREN: ( +| | |-- cond +| | | `-- lOrExp +| | | `-- lAndExp +| | | `-- eqExp +| | | `-- relExp +| | | |-- relExp +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- lVal +| | | | `-- Ident: i +| | | |-- LOp: < +| | | `-- addExp +| | | `-- mulExp +| | | `-- unaryExp +| | | `-- primary +| | | `-- lVal +| | | `-- Ident: m2 +| | |-- R_PAREN: ) +| | `-- stmt +| | `-- block +| | |-- L_BRACE: { +| | |-- blockItem +| | | `-- stmt +| | | |-- lVal +| | | | `-- Ident: j +| | | |-- Assign: = +| | | |-- exp +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- OCTAL_INT: 0 +| | | `-- Semi: ; +| | |-- blockItem +| | | `-- stmt +| | | |-- While: while +| | | |-- L_PAREN: ( +| | | |-- cond +| | | | `-- lOrExp +| | | | `-- lAndExp +| | | | `-- eqExp +| | | | `-- relExp +| | | | |-- relExp +| | | | | `-- addExp +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- lVal +| | | | | `-- Ident: j +| | | | |-- LOp: < +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- lVal +| | | | `-- Ident: n2 +| | | |-- R_PAREN: ) +| | | `-- stmt +| | | `-- block +| | | |-- L_BRACE: { +| | | |-- blockItem +| | | | `-- stmt +| | | | |-- lVal +| | | | | |-- Ident: b +| | | | | |-- L_BRACK: [ +| | | | | |-- exp +| | | | | | `-- addExp +| | | | | | `-- mulExp +| | | | | | `-- unaryExp +| | | | | | `-- primary +| | | | | | `-- lVal +| | | | | | `-- Ident: i +| | | | | |-- R_BRACK: ] +| | | | | |-- L_BRACK: [ +| | | | | |-- exp +| | | | | | `-- addExp +| | | | | | `-- mulExp +| | | | | | `-- unaryExp +| | | | | | `-- primary +| | | | | | `-- lVal +| | | | | | `-- Ident: j +| | | | | `-- R_BRACK: ] +| | | | |-- Assign: = +| | | | |-- exp +| | | | | `-- addExp +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | |-- Ident: getint +| | | | | |-- L_PAREN: ( +| | | | | `-- R_PAREN: ) +| | | | `-- Semi: ; +| | | |-- blockItem +| | | | `-- stmt +| | | | |-- lVal +| | | | | `-- Ident: j +| | | | |-- Assign: = +| | | | |-- exp +| | | | | `-- addExp +| | | | | |-- addExp +| | | | | | `-- mulExp +| | | | | | `-- unaryExp +| | | | | | `-- primary +| | | | | | `-- lVal +| | | | | | `-- Ident: j +| | | | | |-- AddOp: + +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- DECIMAL_INT: 1 +| | | | `-- Semi: ; +| | | `-- R_BRACE: } +| | |-- blockItem +| | | `-- stmt +| | | |-- lVal +| | | | `-- Ident: i +| | | |-- Assign: = +| | | |-- exp +| | | | `-- addExp +| | | | |-- addExp +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- lVal +| | | | | `-- Ident: i +| | | | |-- AddOp: + +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- DECIMAL_INT: 1 +| | | `-- Semi: ; +| | `-- R_BRACE: } +| |-- blockItem +| | `-- stmt +| | |-- exp +| | | `-- addExp +| | | `-- mulExp +| | | `-- unaryExp +| | | |-- Ident: matrix_multiply +| | | |-- L_PAREN: ( +| | | `-- R_PAREN: ) +| | `-- Semi: ; +| |-- blockItem +| | `-- stmt +| | |-- lVal +| | | `-- Ident: i +| | |-- Assign: = +| | |-- exp +| | | `-- addExp +| | | `-- mulExp +| | | `-- unaryExp +| | | `-- primary +| | | `-- OCTAL_INT: 0 +| | `-- Semi: ; +| |-- blockItem +| | `-- stmt +| | |-- While: while +| | |-- L_PAREN: ( +| | |-- cond +| | | `-- lOrExp +| | | `-- lAndExp +| | | `-- eqExp +| | | `-- relExp +| | | |-- relExp +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- lVal +| | | | `-- Ident: i +| | | |-- LOp: < +| | | `-- addExp +| | | `-- mulExp +| | | `-- unaryExp +| | | `-- primary +| | | `-- lVal +| | | `-- Ident: m1 +| | |-- R_PAREN: ) +| | `-- stmt +| | `-- block +| | |-- L_BRACE: { +| | |-- blockItem +| | | `-- stmt +| | | |-- lVal +| | | | `-- Ident: j +| | | |-- Assign: = +| | | |-- exp +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- OCTAL_INT: 0 +| | | `-- Semi: ; +| | |-- blockItem +| | | `-- stmt +| | | |-- While: while +| | | |-- L_PAREN: ( +| | | |-- cond +| | | | `-- lOrExp +| | | | `-- lAndExp +| | | | `-- eqExp +| | | | `-- relExp +| | | | |-- relExp +| | | | | `-- addExp +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- lVal +| | | | | `-- Ident: j +| | | | |-- LOp: < +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- lVal +| | | | `-- Ident: n2 +| | | |-- R_PAREN: ) +| | | `-- stmt +| | | `-- block +| | | |-- L_BRACE: { +| | | |-- blockItem +| | | | `-- stmt +| | | | |-- exp +| | | | | `-- addExp +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | |-- Ident: putint +| | | | | |-- L_PAREN: ( +| | | | | |-- funcRParams +| | | | | | `-- exp +| | | | | | `-- addExp +| | | | | | `-- mulExp +| | | | | | `-- unaryExp +| | | | | | `-- primary +| | | | | | `-- lVal +| | | | | | |-- Ident: res +| | | | | | |-- L_BRACK: [ +| | | | | | |-- exp +| | | | | | | `-- addExp +| | | | | | | `-- mulExp +| | | | | | | `-- unaryExp +| | | | | | | `-- primary +| | | | | | | `-- lVal +| | | | | | | `-- Ident: i +| | | | | | |-- R_BRACK: ] +| | | | | | |-- L_BRACK: [ +| | | | | | |-- exp +| | | | | | | `-- addExp +| | | | | | | `-- mulExp +| | | | | | | `-- unaryExp +| | | | | | | `-- primary +| | | | | | | `-- lVal +| | | | | | | `-- Ident: j +| | | | | | `-- R_BRACK: ] +| | | | | `-- R_PAREN: ) +| | | | `-- Semi: ; +| | | |-- blockItem +| | | | `-- stmt +| | | | |-- exp +| | | | | `-- addExp +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | |-- Ident: putch +| | | | | |-- L_PAREN: ( +| | | | | |-- funcRParams +| | | | | | `-- exp +| | | | | | `-- addExp +| | | | | | `-- mulExp +| | | | | | `-- unaryExp +| | | | | | `-- primary +| | | | | | `-- DECIMAL_INT: 32 +| | | | | `-- R_PAREN: ) +| | | | `-- Semi: ; +| | | |-- blockItem +| | | | `-- stmt +| | | | |-- lVal +| | | | | `-- Ident: j +| | | | |-- Assign: = +| | | | |-- exp +| | | | | `-- addExp +| | | | | |-- addExp +| | | | | | `-- mulExp +| | | | | | `-- unaryExp +| | | | | | `-- primary +| | | | | | `-- lVal +| | | | | | `-- Ident: j +| | | | | |-- AddOp: + +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- DECIMAL_INT: 1 +| | | | `-- Semi: ; +| | | `-- R_BRACE: } +| | |-- blockItem +| | | `-- stmt +| | | |-- exp +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | |-- Ident: putch +| | | | |-- L_PAREN: ( +| | | | |-- funcRParams +| | | | | `-- exp +| | | | | `-- addExp +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- DECIMAL_INT: 10 +| | | | `-- R_PAREN: ) +| | | `-- Semi: ; +| | |-- blockItem +| | | `-- stmt +| | | |-- lVal +| | | | `-- Ident: i +| | | |-- Assign: = +| | | |-- exp +| | | | `-- addExp +| | | | |-- addExp +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- lVal +| | | | | `-- Ident: i +| | | | |-- AddOp: + +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- DECIMAL_INT: 1 +| | | `-- Semi: ; +| | `-- R_BRACE: } +| |-- blockItem +| | `-- stmt +| | `-- returnStmt +| | |-- Return: return +| | |-- exp +| | | `-- addExp +| | | `-- mulExp +| | | `-- unaryExp +| | | `-- primary +| | | `-- OCTAL_INT: 0 +| | `-- Semi: ; +| `-- R_BRACE: } +`-- EOF: + +========== test/test_case/functional/25_scope3.sy ========== +compUnit +|-- funcDef +| |-- funcType +| | `-- Int: int +| |-- Ident: main +| |-- L_PAREN: ( +| |-- R_PAREN: ) +| `-- block +| |-- L_BRACE: { +| |-- blockItem +| | `-- stmt +| | |-- exp +| | | `-- addExp +| | | `-- mulExp +| | | `-- unaryExp +| | | |-- Ident: putch +| | | |-- L_PAREN: ( +| | | |-- funcRParams +| | | | `-- exp +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- DECIMAL_INT: 97 +| | | `-- R_PAREN: ) +| | `-- Semi: ; +| |-- blockItem +| | `-- stmt +| | |-- exp +| | | `-- addExp +| | | `-- mulExp +| | | `-- unaryExp +| | | |-- Ident: putch +| | | |-- L_PAREN: ( +| | | |-- funcRParams +| | | | `-- exp +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- DECIMAL_INT: 10 +| | | `-- R_PAREN: ) +| | `-- Semi: ; +| |-- blockItem +| | `-- decl +| | `-- varDecl +| | |-- bType +| | | `-- Int: int +| | |-- varDef +| | | |-- Ident: a +| | | |-- Assign: = +| | | `-- initVal +| | | `-- exp +| | | `-- addExp +| | | `-- mulExp +| | | `-- unaryExp +| | | `-- primary +| | | `-- DECIMAL_INT: 1 +| | |-- Comma: , +| | |-- varDef +| | | |-- Ident: putch +| | | |-- Assign: = +| | | `-- initVal +| | | `-- exp +| | | `-- addExp +| | | `-- mulExp +| | | `-- unaryExp +| | | `-- primary +| | | `-- OCTAL_INT: 0 +| | `-- Semi: ; +| |-- blockItem +| | `-- stmt +| | `-- block +| | |-- L_BRACE: { +| | |-- blockItem +| | | `-- stmt +| | | |-- lVal +| | | | `-- Ident: a +| | | |-- Assign: = +| | | |-- exp +| | | | `-- addExp +| | | | |-- addExp +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- lVal +| | | | | `-- Ident: a +| | | | |-- AddOp: + +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- DECIMAL_INT: 2 +| | | `-- Semi: ; +| | |-- blockItem +| | | `-- decl +| | | `-- varDecl +| | | |-- bType +| | | | `-- Int: int +| | | |-- varDef +| | | | |-- Ident: b +| | | | |-- Assign: = +| | | | `-- initVal +| | | | `-- exp +| | | | `-- addExp +| | | | |-- addExp +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- lVal +| | | | | `-- Ident: a +| | | | |-- AddOp: + +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- DECIMAL_INT: 3 +| | | `-- Semi: ; +| | |-- blockItem +| | | `-- stmt +| | | |-- lVal +| | | | `-- Ident: b +| | | |-- Assign: = +| | | |-- exp +| | | | `-- addExp +| | | | |-- addExp +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- lVal +| | | | | `-- Ident: b +| | | | |-- AddOp: + +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- DECIMAL_INT: 4 +| | | `-- Semi: ; +| | |-- blockItem +| | | `-- stmt +| | | |-- lVal +| | | | `-- Ident: putch +| | | |-- Assign: = +| | | |-- exp +| | | | `-- addExp +| | | | |-- addExp +| | | | | |-- addExp +| | | | | | `-- mulExp +| | | | | | `-- unaryExp +| | | | | | `-- primary +| | | | | | `-- lVal +| | | | | | `-- Ident: putch +| | | | | |-- AddOp: + +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- lVal +| | | | | `-- Ident: a +| | | | |-- AddOp: + +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- lVal +| | | | `-- Ident: b +| | | `-- Semi: ; +| | |-- blockItem +| | | `-- stmt +| | | `-- block +| | | |-- L_BRACE: { +| | | |-- blockItem +| | | | `-- stmt +| | | | |-- lVal +| | | | | `-- Ident: b +| | | | |-- Assign: = +| | | | |-- exp +| | | | | `-- addExp +| | | | | |-- addExp +| | | | | | `-- mulExp +| | | | | | `-- unaryExp +| | | | | | `-- primary +| | | | | | `-- lVal +| | | | | | `-- Ident: b +| | | | | |-- AddOp: + +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- DECIMAL_INT: 5 +| | | | `-- Semi: ; +| | | |-- blockItem +| | | | `-- decl +| | | | `-- varDecl +| | | | |-- bType +| | | | | `-- Int: int +| | | | |-- varDef +| | | | | |-- Ident: main +| | | | | |-- Assign: = +| | | | | `-- initVal +| | | | | `-- exp +| | | | | `-- addExp +| | | | | |-- addExp +| | | | | | `-- mulExp +| | | | | | `-- unaryExp +| | | | | | `-- primary +| | | | | | `-- lVal +| | | | | | `-- Ident: b +| | | | | |-- AddOp: + +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- DECIMAL_INT: 6 +| | | | `-- Semi: ; +| | | |-- blockItem +| | | | `-- stmt +| | | | |-- lVal +| | | | | `-- Ident: a +| | | | |-- Assign: = +| | | | |-- exp +| | | | | `-- addExp +| | | | | |-- addExp +| | | | | | `-- mulExp +| | | | | | `-- unaryExp +| | | | | | `-- primary +| | | | | | `-- lVal +| | | | | | `-- Ident: a +| | | | | |-- AddOp: + +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- lVal +| | | | | `-- Ident: main +| | | | `-- Semi: ; +| | | |-- blockItem +| | | | `-- stmt +| | | | |-- lVal +| | | | | `-- Ident: putch +| | | | |-- Assign: = +| | | | |-- exp +| | | | | `-- addExp +| | | | | |-- addExp +| | | | | | |-- addExp +| | | | | | | |-- addExp +| | | | | | | | `-- mulExp +| | | | | | | | `-- unaryExp +| | | | | | | | `-- primary +| | | | | | | | `-- lVal +| | | | | | | | `-- Ident: putch +| | | | | | | |-- AddOp: + +| | | | | | | `-- mulExp +| | | | | | | `-- unaryExp +| | | | | | | `-- primary +| | | | | | | `-- lVal +| | | | | | | `-- Ident: a +| | | | | | |-- AddOp: + +| | | | | | `-- mulExp +| | | | | | `-- unaryExp +| | | | | | `-- primary +| | | | | | `-- lVal +| | | | | | `-- Ident: b +| | | | | |-- AddOp: + +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- lVal +| | | | | `-- Ident: main +| | | | `-- Semi: ; +| | | |-- blockItem +| | | | `-- stmt +| | | | `-- block +| | | | |-- L_BRACE: { +| | | | |-- blockItem +| | | | | `-- stmt +| | | | | |-- lVal +| | | | | | `-- Ident: b +| | | | | |-- Assign: = +| | | | | |-- exp +| | | | | | `-- addExp +| | | | | | |-- addExp +| | | | | | | `-- mulExp +| | | | | | | `-- unaryExp +| | | | | | | `-- primary +| | | | | | | `-- lVal +| | | | | | | `-- Ident: b +| | | | | | |-- AddOp: + +| | | | | | `-- mulExp +| | | | | | `-- unaryExp +| | | | | | `-- primary +| | | | | | `-- lVal +| | | | | | `-- Ident: a +| | | | | `-- Semi: ; +| | | | |-- blockItem +| | | | | `-- decl +| | | | | `-- varDecl +| | | | | |-- bType +| | | | | | `-- Int: int +| | | | | |-- varDef +| | | | | | |-- Ident: a +| | | | | | |-- Assign: = +| | | | | | `-- initVal +| | | | | | `-- exp +| | | | | | `-- addExp +| | | | | | |-- addExp +| | | | | | | `-- mulExp +| | | | | | | `-- unaryExp +| | | | | | | `-- primary +| | | | | | | `-- lVal +| | | | | | | `-- Ident: main +| | | | | | |-- AddOp: + +| | | | | | `-- mulExp +| | | | | | `-- unaryExp +| | | | | | `-- primary +| | | | | | `-- DECIMAL_INT: 7 +| | | | | `-- Semi: ; +| | | | |-- blockItem +| | | | | `-- stmt +| | | | | |-- lVal +| | | | | | `-- Ident: a +| | | | | |-- Assign: = +| | | | | |-- exp +| | | | | | `-- addExp +| | | | | | |-- addExp +| | | | | | | `-- mulExp +| | | | | | | `-- unaryExp +| | | | | | | `-- primary +| | | | | | | `-- lVal +| | | | | | | `-- Ident: a +| | | | | | |-- AddOp: + +| | | | | | `-- mulExp +| | | | | | `-- unaryExp +| | | | | | `-- primary +| | | | | | `-- DECIMAL_INT: 8 +| | | | | `-- Semi: ; +| | | | |-- blockItem +| | | | | `-- stmt +| | | | | |-- lVal +| | | | | | `-- Ident: putch +| | | | | |-- Assign: = +| | | | | |-- exp +| | | | | | `-- addExp +| | | | | | |-- addExp +| | | | | | | |-- addExp +| | | | | | | | |-- addExp +| | | | | | | | | `-- mulExp +| | | | | | | | | `-- unaryExp +| | | | | | | | | `-- primary +| | | | | | | | | `-- lVal +| | | | | | | | | `-- Ident: putch +| | | | | | | | |-- AddOp: + +| | | | | | | | `-- mulExp +| | | | | | | | `-- unaryExp +| | | | | | | | `-- primary +| | | | | | | | `-- lVal +| | | | | | | | `-- Ident: a +| | | | | | | |-- AddOp: + +| | | | | | | `-- mulExp +| | | | | | | `-- unaryExp +| | | | | | | `-- primary +| | | | | | | `-- lVal +| | | | | | | `-- Ident: b +| | | | | | |-- AddOp: + +| | | | | | `-- mulExp +| | | | | | `-- unaryExp +| | | | | | `-- primary +| | | | | | `-- lVal +| | | | | | `-- Ident: main +| | | | | `-- Semi: ; +| | | | |-- blockItem +| | | | | `-- stmt +| | | | | `-- block +| | | | | |-- L_BRACE: { +| | | | | |-- blockItem +| | | | | | `-- stmt +| | | | | | |-- lVal +| | | | | | | `-- Ident: b +| | | | | | |-- Assign: = +| | | | | | |-- exp +| | | | | | | `-- addExp +| | | | | | | |-- addExp +| | | | | | | | `-- mulExp +| | | | | | | | `-- unaryExp +| | | | | | | | `-- primary +| | | | | | | | `-- lVal +| | | | | | | | `-- Ident: b +| | | | | | | |-- AddOp: + +| | | | | | | `-- mulExp +| | | | | | | `-- unaryExp +| | | | | | | `-- primary +| | | | | | | `-- lVal +| | | | | | | `-- Ident: a +| | | | | | `-- Semi: ; +| | | | | |-- blockItem +| | | | | | `-- decl +| | | | | | `-- varDecl +| | | | | | |-- bType +| | | | | | | `-- Int: int +| | | | | | |-- varDef +| | | | | | | |-- Ident: b +| | | | | | | |-- Assign: = +| | | | | | | `-- initVal +| | | | | | | `-- exp +| | | | | | | `-- addExp +| | | | | | | |-- addExp +| | | | | | | | `-- mulExp +| | | | | | | | `-- unaryExp +| | | | | | | | `-- primary +| | | | | | | | `-- lVal +| | | | | | | | `-- Ident: main +| | | | | | | |-- AddOp: + +| | | | | | | `-- mulExp +| | | | | | | `-- unaryExp +| | | | | | | `-- primary +| | | | | | | `-- DECIMAL_INT: 9 +| | | | | | `-- Semi: ; +| | | | | |-- blockItem +| | | | | | `-- stmt +| | | | | | |-- lVal +| | | | | | | `-- Ident: a +| | | | | | |-- Assign: = +| | | | | | |-- exp +| | | | | | | `-- addExp +| | | | | | | |-- addExp +| | | | | | | | `-- mulExp +| | | | | | | | `-- unaryExp +| | | | | | | | `-- primary +| | | | | | | | `-- lVal +| | | | | | | | `-- Ident: a +| | | | | | | |-- AddOp: + +| | | | | | | `-- mulExp +| | | | | | | `-- unaryExp +| | | | | | | `-- primary +| | | | | | | `-- DECIMAL_INT: 10 +| | | | | | `-- Semi: ; +| | | | | |-- blockItem +| | | | | | `-- decl +| | | | | | `-- constDecl +| | | | | | |-- Const: const +| | | | | | |-- bType +| | | | | | | `-- Int: int +| | | | | | |-- constDef +| | | | | | | |-- Ident: a +| | | | | | | |-- Assign: = +| | | | | | | `-- constInitVal +| | | | | | | `-- constExp +| | | | | | | `-- addExp +| | | | | | | `-- mulExp +| | | | | | | `-- unaryExp +| | | | | | | `-- primary +| | | | | | | `-- DECIMAL_INT: 11 +| | | | | | `-- Semi: ; +| | | | | |-- blockItem +| | | | | | `-- stmt +| | | | | | |-- lVal +| | | | | | | `-- Ident: b +| | | | | | |-- Assign: = +| | | | | | |-- exp +| | | | | | | `-- addExp +| | | | | | | |-- addExp +| | | | | | | | `-- mulExp +| | | | | | | | `-- unaryExp +| | | | | | | | `-- primary +| | | | | | | | `-- lVal +| | | | | | | | `-- Ident: b +| | | | | | | |-- AddOp: + +| | | | | | | `-- mulExp +| | | | | | | `-- unaryExp +| | | | | | | `-- primary +| | | | | | | `-- DECIMAL_INT: 12 +| | | | | | `-- Semi: ; +| | | | | |-- blockItem +| | | | | | `-- stmt +| | | | | | |-- lVal +| | | | | | | `-- Ident: putch +| | | | | | |-- Assign: = +| | | | | | |-- exp +| | | | | | | `-- addExp +| | | | | | | |-- addExp +| | | | | | | | |-- addExp +| | | | | | | | | |-- addExp +| | | | | | | | | | `-- mulExp +| | | | | | | | | | `-- unaryExp +| | | | | | | | | | `-- primary +| | | | | | | | | | `-- lVal +| | | | | | | | | | `-- Ident: putch +| | | | | | | | | |-- AddOp: + +| | | | | | | | | `-- mulExp +| | | | | | | | | `-- unaryExp +| | | | | | | | | `-- primary +| | | | | | | | | `-- lVal +| | | | | | | | | `-- Ident: a +| | | | | | | | |-- AddOp: + +| | | | | | | | `-- mulExp +| | | | | | | | `-- unaryExp +| | | | | | | | `-- primary +| | | | | | | | `-- lVal +| | | | | | | | `-- Ident: b +| | | | | | | |-- AddOp: + +| | | | | | | `-- mulExp +| | | | | | | `-- unaryExp +| | | | | | | `-- primary +| | | | | | | `-- lVal +| | | | | | | `-- Ident: main +| | | | | | `-- Semi: ; +| | | | | |-- blockItem +| | | | | | `-- stmt +| | | | | | `-- block +| | | | | | |-- L_BRACE: { +| | | | | | |-- blockItem +| | | | | | | `-- stmt +| | | | | | | |-- lVal +| | | | | | | | `-- Ident: main +| | | | | | | |-- Assign: = +| | | | | | | |-- exp +| | | | | | | | `-- addExp +| | | | | | | | |-- addExp +| | | | | | | | | `-- mulExp +| | | | | | | | | `-- unaryExp +| | | | | | | | | `-- primary +| | | | | | | | | `-- lVal +| | | | | | | | | `-- Ident: main +| | | | | | | | |-- AddOp: + +| | | | | | | | `-- mulExp +| | | | | | | | `-- unaryExp +| | | | | | | | `-- primary +| | | | | | | | `-- lVal +| | | | | | | | `-- Ident: b +| | | | | | | `-- Semi: ; +| | | | | | |-- blockItem +| | | | | | | `-- decl +| | | | | | | `-- varDecl +| | | | | | | |-- bType +| | | | | | | | `-- Int: int +| | | | | | | |-- varDef +| | | | | | | | |-- Ident: main +| | | | | | | | |-- Assign: = +| | | | | | | | `-- initVal +| | | | | | | | `-- exp +| | | | | | | | `-- addExp +| | | | | | | | |-- addExp +| | | | | | | | | `-- mulExp +| | | | | | | | | `-- unaryExp +| | | | | | | | | `-- primary +| | | | | | | | | `-- lVal +| | | | | | | | | `-- Ident: b +| | | | | | | | |-- AddOp: + +| | | | | | | | `-- mulExp +| | | | | | | | `-- unaryExp +| | | | | | | | `-- primary +| | | | | | | | `-- DECIMAL_INT: 13 +| | | | | | | `-- Semi: ; +| | | | | | |-- blockItem +| | | | | | | `-- stmt +| | | | | | | |-- lVal +| | | | | | | | `-- Ident: main +| | | | | | | |-- Assign: = +| | | | | | | |-- exp +| | | | | | | | `-- addExp +| | | | | | | | |-- addExp +| | | | | | | | | `-- mulExp +| | | | | | | | | `-- unaryExp +| | | | | | | | | `-- primary +| | | | | | | | | `-- lVal +| | | | | | | | | `-- Ident: main +| | | | | | | | |-- AddOp: + +| | | | | | | | `-- mulExp +| | | | | | | | `-- unaryExp +| | | | | | | | `-- primary +| | | | | | | | `-- lVal +| | | | | | | | `-- Ident: a +| | | | | | | `-- Semi: ; +| | | | | | |-- blockItem +| | | | | | | `-- stmt +| | | | | | | |-- lVal +| | | | | | | | `-- Ident: putch +| | | | | | | |-- Assign: = +| | | | | | | |-- exp +| | | | | | | | `-- addExp +| | | | | | | | |-- addExp +| | | | | | | | | |-- addExp +| | | | | | | | | | |-- addExp +| | | | | | | | | | | `-- mulExp +| | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | `-- primary +| | | | | | | | | | | `-- lVal +| | | | | | | | | | | `-- Ident: putch +| | | | | | | | | | |-- AddOp: + +| | | | | | | | | | `-- mulExp +| | | | | | | | | | `-- unaryExp +| | | | | | | | | | `-- primary +| | | | | | | | | | `-- lVal +| | | | | | | | | | `-- Ident: a +| | | | | | | | | |-- AddOp: + +| | | | | | | | | `-- mulExp +| | | | | | | | | `-- unaryExp +| | | | | | | | | `-- primary +| | | | | | | | | `-- lVal +| | | | | | | | | `-- Ident: b +| | | | | | | | |-- AddOp: + +| | | | | | | | `-- mulExp +| | | | | | | | `-- unaryExp +| | | | | | | | `-- primary +| | | | | | | | `-- lVal +| | | | | | | | `-- Ident: main +| | | | | | | `-- Semi: ; +| | | | | | `-- R_BRACE: } +| | | | | |-- blockItem +| | | | | | `-- stmt +| | | | | | |-- lVal +| | | | | | | `-- Ident: putch +| | | | | | |-- Assign: = +| | | | | | |-- exp +| | | | | | | `-- addExp +| | | | | | | |-- addExp +| | | | | | | | `-- mulExp +| | | | | | | | `-- unaryExp +| | | | | | | | `-- primary +| | | | | | | | `-- lVal +| | | | | | | | `-- Ident: putch +| | | | | | | |-- SubOp: - +| | | | | | | `-- mulExp +| | | | | | | `-- unaryExp +| | | | | | | `-- primary +| | | | | | | `-- lVal +| | | | | | | `-- Ident: main +| | | | | | `-- Semi: ; +| | | | | `-- R_BRACE: } +| | | | |-- blockItem +| | | | | `-- stmt +| | | | | |-- lVal +| | | | | | `-- Ident: putch +| | | | | |-- Assign: = +| | | | | |-- exp +| | | | | | `-- addExp +| | | | | | |-- addExp +| | | | | | | `-- mulExp +| | | | | | | `-- unaryExp +| | | | | | | `-- primary +| | | | | | | `-- lVal +| | | | | | | `-- Ident: putch +| | | | | | |-- SubOp: - +| | | | | | `-- mulExp +| | | | | | `-- unaryExp +| | | | | | `-- primary +| | | | | | `-- lVal +| | | | | | `-- Ident: b +| | | | | `-- Semi: ; +| | | | `-- R_BRACE: } +| | | |-- blockItem +| | | | `-- stmt +| | | | |-- lVal +| | | | | `-- Ident: putch +| | | | |-- Assign: = +| | | | |-- exp +| | | | | `-- addExp +| | | | | |-- addExp +| | | | | | `-- mulExp +| | | | | | `-- unaryExp +| | | | | | `-- primary +| | | | | | `-- lVal +| | | | | | `-- Ident: putch +| | | | | |-- SubOp: - +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- lVal +| | | | | `-- Ident: a +| | | | `-- Semi: ; +| | | `-- R_BRACE: } +| | `-- R_BRACE: } +| |-- blockItem +| | `-- stmt +| | `-- returnStmt +| | |-- Return: return +| | |-- exp +| | | `-- addExp +| | | `-- mulExp +| | | |-- mulExp +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- lVal +| | | | `-- Ident: putch +| | | |-- QuoOp: % +| | | `-- unaryExp +| | | `-- primary +| | | `-- DECIMAL_INT: 77 +| | `-- Semi: ; +| `-- R_BRACE: } +`-- EOF: + +========== test/test_case/functional/29_break.sy ========== +compUnit +|-- funcDef +| |-- funcType +| | `-- Int: int +| |-- Ident: main +| |-- L_PAREN: ( +| |-- R_PAREN: ) +| `-- block +| |-- L_BRACE: { +| |-- blockItem +| | `-- decl +| | `-- varDecl +| | |-- bType +| | | `-- Int: int +| | |-- varDef +| | | `-- Ident: i +| | `-- Semi: ; +| |-- blockItem +| | `-- stmt +| | |-- lVal +| | | `-- Ident: i +| | |-- Assign: = +| | |-- exp +| | | `-- addExp +| | | `-- mulExp +| | | `-- unaryExp +| | | `-- primary +| | | `-- OCTAL_INT: 0 +| | `-- Semi: ; +| |-- blockItem +| | `-- decl +| | `-- varDecl +| | |-- bType +| | | `-- Int: int +| | |-- varDef +| | | `-- Ident: sum +| | `-- Semi: ; +| |-- blockItem +| | `-- stmt +| | |-- lVal +| | | `-- Ident: sum +| | |-- Assign: = +| | |-- exp +| | | `-- addExp +| | | `-- mulExp +| | | `-- unaryExp +| | | `-- primary +| | | `-- OCTAL_INT: 0 +| | `-- Semi: ; +| |-- blockItem +| | `-- stmt +| | |-- While: while +| | |-- L_PAREN: ( +| | |-- cond +| | | `-- lOrExp +| | | `-- lAndExp +| | | `-- eqExp +| | | `-- relExp +| | | |-- relExp +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- lVal +| | | | `-- Ident: i +| | | |-- LOp: < +| | | `-- addExp +| | | `-- mulExp +| | | `-- unaryExp +| | | `-- primary +| | | `-- DECIMAL_INT: 100 +| | |-- R_PAREN: ) +| | `-- stmt +| | `-- block +| | |-- L_BRACE: { +| | |-- blockItem +| | | `-- stmt +| | | |-- If: if +| | | |-- L_PAREN: ( +| | | |-- cond +| | | | `-- lOrExp +| | | | `-- lAndExp +| | | | `-- eqExp +| | | | |-- eqExp +| | | | | `-- relExp +| | | | | `-- addExp +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- lVal +| | | | | `-- Ident: i +| | | | |-- EqOp: == +| | | | `-- relExp +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- DECIMAL_INT: 50 +| | | |-- R_PAREN: ) +| | | `-- stmt +| | | `-- block +| | | |-- L_BRACE: { +| | | |-- blockItem +| | | | `-- stmt +| | | | |-- Break: break +| | | | `-- Semi: ; +| | | `-- R_BRACE: } +| | |-- blockItem +| | | `-- stmt +| | | |-- lVal +| | | | `-- Ident: sum +| | | |-- Assign: = +| | | |-- exp +| | | | `-- addExp +| | | | |-- addExp +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- lVal +| | | | | `-- Ident: sum +| | | | |-- AddOp: + +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- lVal +| | | | `-- Ident: i +| | | `-- Semi: ; +| | |-- blockItem +| | | `-- stmt +| | | |-- lVal +| | | | `-- Ident: i +| | | |-- Assign: = +| | | |-- exp +| | | | `-- addExp +| | | | |-- addExp +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- lVal +| | | | | `-- Ident: i +| | | | |-- AddOp: + +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- DECIMAL_INT: 1 +| | | `-- Semi: ; +| | `-- R_BRACE: } +| |-- blockItem +| | `-- stmt +| | `-- returnStmt +| | |-- Return: return +| | |-- exp +| | | `-- addExp +| | | `-- mulExp +| | | `-- unaryExp +| | | `-- primary +| | | `-- lVal +| | | `-- Ident: sum +| | `-- Semi: ; +| `-- R_BRACE: } +`-- EOF: + +========== test/test_case/functional/36_op_priority2.sy ========== +compUnit +|-- funcDef +| |-- funcType +| | `-- Int: int +| |-- Ident: main +| |-- L_PAREN: ( +| |-- R_PAREN: ) +| `-- block +| |-- L_BRACE: { +| |-- blockItem +| | `-- decl +| | `-- varDecl +| | |-- bType +| | | `-- Int: int +| | |-- varDef +| | | `-- Ident: a +| | |-- Comma: , +| | |-- varDef +| | | `-- Ident: b +| | |-- Comma: , +| | |-- varDef +| | | `-- Ident: c +| | |-- Comma: , +| | |-- varDef +| | | `-- Ident: d +| | `-- Semi: ; +| |-- blockItem +| | `-- stmt +| | |-- lVal +| | | `-- Ident: a +| | |-- Assign: = +| | |-- exp +| | | `-- addExp +| | | `-- mulExp +| | | `-- unaryExp +| | | `-- primary +| | | `-- DECIMAL_INT: 10 +| | `-- Semi: ; +| |-- blockItem +| | `-- stmt +| | |-- lVal +| | | `-- Ident: b +| | |-- Assign: = +| | |-- exp +| | | `-- addExp +| | | `-- mulExp +| | | `-- unaryExp +| | | `-- primary +| | | `-- DECIMAL_INT: 4 +| | `-- Semi: ; +| |-- blockItem +| | `-- stmt +| | |-- lVal +| | | `-- Ident: c +| | |-- Assign: = +| | |-- exp +| | | `-- addExp +| | | `-- mulExp +| | | `-- unaryExp +| | | `-- primary +| | | `-- DECIMAL_INT: 2 +| | `-- Semi: ; +| |-- blockItem +| | `-- stmt +| | |-- lVal +| | | `-- Ident: d +| | |-- Assign: = +| | |-- exp +| | | `-- addExp +| | | `-- mulExp +| | | `-- unaryExp +| | | `-- primary +| | | `-- DECIMAL_INT: 2 +| | `-- Semi: ; +| |-- blockItem +| | `-- stmt +| | `-- returnStmt +| | |-- Return: return +| | |-- exp +| | | `-- addExp +| | | `-- mulExp +| | | |-- mulExp +| | | | `-- unaryExp +| | | | `-- primary +| | | | |-- L_PAREN: ( +| | | | |-- exp +| | | | | `-- addExp +| | | | | |-- addExp +| | | | | | `-- mulExp +| | | | | | `-- unaryExp +| | | | | | `-- primary +| | | | | | `-- lVal +| | | | | | `-- Ident: c +| | | | | |-- AddOp: + +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- lVal +| | | | | `-- Ident: a +| | | | `-- R_PAREN: ) +| | | |-- MulOp: * +| | | `-- unaryExp +| | | `-- primary +| | | |-- L_PAREN: ( +| | | |-- exp +| | | | `-- addExp +| | | | |-- addExp +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- lVal +| | | | | `-- Ident: b +| | | | |-- SubOp: - +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- lVal +| | | | `-- Ident: d +| | | `-- R_PAREN: ) +| | `-- Semi: ; +| `-- R_BRACE: } +`-- EOF: + +========== test/test_case/functional/95_float.sy ========== +compUnit +|-- program +| |-- decl +| | `-- constDecl +| | |-- Const: const +| | |-- bType +| | | `-- Float: float +| | |-- constDef +| | | |-- Ident: RADIUS +| | | |-- Assign: = +| | | `-- constInitVal +| | | `-- constExp +| | | `-- addExp +| | | `-- mulExp +| | | `-- unaryExp +| | | `-- primary +| | | `-- DEC_FLOAT: 5.5 +| | |-- Comma: , +| | |-- constDef +| | | |-- Ident: PI +| | | |-- Assign: = +| | | `-- constInitVal +| | | `-- constExp +| | | `-- addExp +| | | `-- mulExp +| | | `-- unaryExp +| | | `-- primary +| | | `-- DEC_FLOAT: 03.141592653589793 +| | |-- Comma: , +| | |-- constDef +| | | |-- Ident: EPS +| | | |-- Assign: = +| | | `-- constInitVal +| | | `-- constExp +| | | `-- addExp +| | | `-- mulExp +| | | `-- unaryExp +| | | `-- primary +| | | `-- DEC_FLOAT: 1e-6 +| | `-- Semi: ; +| |-- decl +| | `-- constDecl +| | |-- Const: const +| | |-- bType +| | | `-- Float: float +| | |-- constDef +| | | |-- Ident: PI_HEX +| | | |-- Assign: = +| | | `-- constInitVal +| | | `-- constExp +| | | `-- addExp +| | | `-- mulExp +| | | `-- unaryExp +| | | `-- primary +| | | `-- HEX_FLOAT: 0x1.921fb6p+1 +| | |-- Comma: , +| | |-- constDef +| | | |-- Ident: HEX2 +| | | |-- Assign: = +| | | `-- constInitVal +| | | `-- constExp +| | | `-- addExp +| | | `-- mulExp +| | | `-- unaryExp +| | | `-- primary +| | | `-- HEX_FLOAT: 0x.AP-3 +| | `-- Semi: ; +| |-- decl +| | `-- constDecl +| | |-- Const: const +| | |-- bType +| | | `-- Float: float +| | |-- constDef +| | | |-- Ident: FACT +| | | |-- Assign: = +| | | `-- constInitVal +| | | `-- constExp +| | | `-- addExp +| | | `-- mulExp +| | | `-- unaryExp +| | | |-- unaryOp +| | | | `-- SubOp: - +| | | `-- unaryExp +| | | `-- primary +| | | `-- DEC_FLOAT: .33E+5 +| | |-- Comma: , +| | |-- constDef +| | | |-- Ident: EVAL1 +| | | |-- Assign: = +| | | `-- constInitVal +| | | `-- constExp +| | | `-- addExp +| | | `-- mulExp +| | | |-- mulExp +| | | | |-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- lVal +| | | | | `-- Ident: PI +| | | | |-- MulOp: * +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- lVal +| | | | `-- Ident: RADIUS +| | | |-- MulOp: * +| | | `-- unaryExp +| | | `-- primary +| | | `-- lVal +| | | `-- Ident: RADIUS +| | |-- Comma: , +| | |-- constDef +| | | |-- Ident: EVAL2 +| | | |-- Assign: = +| | | `-- constInitVal +| | | `-- constExp +| | | `-- addExp +| | | `-- mulExp +| | | |-- mulExp +| | | | |-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- DECIMAL_INT: 2 +| | | | |-- MulOp: * +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- lVal +| | | | `-- Ident: PI_HEX +| | | |-- MulOp: * +| | | `-- unaryExp +| | | `-- primary +| | | `-- lVal +| | | `-- Ident: RADIUS +| | |-- Comma: , +| | |-- constDef +| | | |-- Ident: EVAL3 +| | | |-- Assign: = +| | | `-- constInitVal +| | | `-- constExp +| | | `-- addExp +| | | `-- mulExp +| | | |-- mulExp +| | | | |-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- lVal +| | | | | `-- Ident: PI +| | | | |-- MulOp: * +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- DECIMAL_INT: 2 +| | | |-- MulOp: * +| | | `-- unaryExp +| | | `-- primary +| | | `-- lVal +| | | `-- Ident: RADIUS +| | `-- Semi: ; +| |-- decl +| | `-- constDecl +| | |-- Const: const +| | |-- bType +| | | `-- Float: float +| | |-- constDef +| | | |-- Ident: CONV1 +| | | |-- Assign: = +| | | `-- constInitVal +| | | `-- constExp +| | | `-- addExp +| | | `-- mulExp +| | | `-- unaryExp +| | | `-- primary +| | | `-- DECIMAL_INT: 233 +| | |-- Comma: , +| | |-- constDef +| | | |-- Ident: CONV2 +| | | |-- Assign: = +| | | `-- constInitVal +| | | `-- constExp +| | | `-- addExp +| | | `-- mulExp +| | | `-- unaryExp +| | | `-- primary +| | | `-- HEX_INT: 0xfff +| | `-- Semi: ; +| |-- decl +| | `-- constDecl +| | |-- Const: const +| | |-- bType +| | | `-- Int: int +| | |-- constDef +| | | |-- Ident: MAX +| | | |-- Assign: = +| | | `-- constInitVal +| | | `-- constExp +| | | `-- addExp +| | | `-- mulExp +| | | `-- unaryExp +| | | `-- primary +| | | `-- DEC_FLOAT: 1e9 +| | |-- Comma: , +| | |-- constDef +| | | |-- Ident: TWO +| | | |-- Assign: = +| | | `-- constInitVal +| | | `-- constExp +| | | `-- addExp +| | | `-- mulExp +| | | `-- unaryExp +| | | `-- primary +| | | `-- DEC_FLOAT: 2.9 +| | |-- Comma: , +| | |-- constDef +| | | |-- Ident: THREE +| | | |-- Assign: = +| | | `-- constInitVal +| | | `-- constExp +| | | `-- addExp +| | | `-- mulExp +| | | `-- unaryExp +| | | `-- primary +| | | `-- DEC_FLOAT: 3.2 +| | |-- Comma: , +| | |-- constDef +| | | |-- Ident: FIVE +| | | |-- Assign: = +| | | `-- constInitVal +| | | `-- constExp +| | | `-- addExp +| | | |-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- lVal +| | | | `-- Ident: TWO +| | | |-- AddOp: + +| | | `-- mulExp +| | | `-- unaryExp +| | | `-- primary +| | | `-- lVal +| | | `-- Ident: THREE +| | `-- Semi: ; +| |-- funcDef +| | |-- funcType +| | | `-- Float: float +| | |-- Ident: float_abs +| | |-- L_PAREN: ( +| | |-- funcFParams +| | | `-- funcFParam +| | | |-- bType +| | | | `-- Float: float +| | | `-- Ident: x +| | |-- R_PAREN: ) +| | `-- block +| | |-- L_BRACE: { +| | |-- blockItem +| | | `-- stmt +| | | |-- If: if +| | | |-- L_PAREN: ( +| | | |-- cond +| | | | `-- lOrExp +| | | | `-- lAndExp +| | | | `-- eqExp +| | | | `-- relExp +| | | | |-- relExp +| | | | | `-- addExp +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- lVal +| | | | | `-- Ident: x +| | | | |-- LOp: < +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- OCTAL_INT: 0 +| | | |-- R_PAREN: ) +| | | `-- stmt +| | | `-- returnStmt +| | | |-- Return: return +| | | |-- exp +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | |-- unaryOp +| | | | | `-- SubOp: - +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- lVal +| | | | `-- Ident: x +| | | `-- Semi: ; +| | |-- blockItem +| | | `-- stmt +| | | `-- returnStmt +| | | |-- Return: return +| | | |-- exp +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- lVal +| | | | `-- Ident: x +| | | `-- Semi: ; +| | `-- R_BRACE: } +| |-- funcDef +| | |-- funcType +| | | `-- Float: float +| | |-- Ident: circle_area +| | |-- L_PAREN: ( +| | |-- funcFParams +| | | `-- funcFParam +| | | |-- bType +| | | | `-- Int: int +| | | `-- Ident: radius +| | |-- R_PAREN: ) +| | `-- block +| | |-- L_BRACE: { +| | |-- blockItem +| | | `-- stmt +| | | `-- returnStmt +| | | |-- Return: return +| | | |-- exp +| | | | `-- addExp +| | | | `-- mulExp +| | | | |-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | |-- L_PAREN: ( +| | | | | |-- exp +| | | | | | `-- addExp +| | | | | | |-- addExp +| | | | | | | `-- mulExp +| | | | | | | |-- mulExp +| | | | | | | | |-- mulExp +| | | | | | | | | `-- unaryExp +| | | | | | | | | `-- primary +| | | | | | | | | `-- lVal +| | | | | | | | | `-- Ident: PI +| | | | | | | | |-- MulOp: * +| | | | | | | | `-- unaryExp +| | | | | | | | `-- primary +| | | | | | | | `-- lVal +| | | | | | | | `-- Ident: radius +| | | | | | | |-- MulOp: * +| | | | | | | `-- unaryExp +| | | | | | | `-- primary +| | | | | | | `-- lVal +| | | | | | | `-- Ident: radius +| | | | | | |-- AddOp: + +| | | | | | `-- mulExp +| | | | | | |-- mulExp +| | | | | | | `-- unaryExp +| | | | | | | `-- primary +| | | | | | | |-- L_PAREN: ( +| | | | | | | |-- exp +| | | | | | | | `-- addExp +| | | | | | | | `-- mulExp +| | | | | | | | |-- mulExp +| | | | | | | | | `-- unaryExp +| | | | | | | | | `-- primary +| | | | | | | | | `-- lVal +| | | | | | | | | `-- Ident: radius +| | | | | | | | |-- MulOp: * +| | | | | | | | `-- unaryExp +| | | | | | | | `-- primary +| | | | | | | | `-- lVal +| | | | | | | | `-- Ident: radius +| | | | | | | `-- R_PAREN: ) +| | | | | | |-- MulOp: * +| | | | | | `-- unaryExp +| | | | | | `-- primary +| | | | | | `-- lVal +| | | | | | `-- Ident: PI +| | | | | `-- R_PAREN: ) +| | | | |-- DivOp: / +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- DECIMAL_INT: 2 +| | | `-- Semi: ; +| | `-- R_BRACE: } +| |-- funcDef +| | |-- funcType +| | | `-- Int: int +| | |-- Ident: float_eq +| | |-- L_PAREN: ( +| | |-- funcFParams +| | | |-- funcFParam +| | | | |-- bType +| | | | | `-- Float: float +| | | | `-- Ident: a +| | | |-- Comma: , +| | | `-- funcFParam +| | | |-- bType +| | | | `-- Float: float +| | | `-- Ident: b +| | |-- R_PAREN: ) +| | `-- block +| | |-- L_BRACE: { +| | |-- blockItem +| | | `-- stmt +| | | |-- If: if +| | | |-- L_PAREN: ( +| | | |-- cond +| | | | `-- lOrExp +| | | | `-- lAndExp +| | | | `-- eqExp +| | | | `-- relExp +| | | | |-- relExp +| | | | | `-- addExp +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | |-- Ident: float_abs +| | | | | |-- L_PAREN: ( +| | | | | |-- funcRParams +| | | | | | `-- exp +| | | | | | `-- addExp +| | | | | | |-- addExp +| | | | | | | `-- mulExp +| | | | | | | `-- unaryExp +| | | | | | | `-- primary +| | | | | | | `-- lVal +| | | | | | | `-- Ident: a +| | | | | | |-- SubOp: - +| | | | | | `-- mulExp +| | | | | | `-- unaryExp +| | | | | | `-- primary +| | | | | | `-- lVal +| | | | | | `-- Ident: b +| | | | | `-- R_PAREN: ) +| | | | |-- LOp: < +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- lVal +| | | | `-- Ident: EPS +| | | |-- R_PAREN: ) +| | | |-- stmt +| | | | `-- block +| | | | |-- L_BRACE: { +| | | | |-- blockItem +| | | | | `-- stmt +| | | | | `-- returnStmt +| | | | | |-- Return: return +| | | | | |-- exp +| | | | | | `-- addExp +| | | | | | `-- mulExp +| | | | | | |-- mulExp +| | | | | | | |-- mulExp +| | | | | | | | `-- unaryExp +| | | | | | | | `-- primary +| | | | | | | | `-- DECIMAL_INT: 1 +| | | | | | | |-- MulOp: * +| | | | | | | `-- unaryExp +| | | | | | | `-- primary +| | | | | | | `-- DEC_FLOAT: 2. +| | | | | | |-- DivOp: / +| | | | | | `-- unaryExp +| | | | | | `-- primary +| | | | | | `-- DECIMAL_INT: 2 +| | | | | `-- Semi: ; +| | | | `-- R_BRACE: } +| | | |-- Else: else +| | | `-- stmt +| | | `-- block +| | | |-- L_BRACE: { +| | | |-- blockItem +| | | | `-- stmt +| | | | `-- returnStmt +| | | | |-- Return: return +| | | | |-- exp +| | | | | `-- addExp +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- OCTAL_INT: 0 +| | | | `-- Semi: ; +| | | `-- R_BRACE: } +| | `-- R_BRACE: } +| |-- funcDef +| | |-- funcType +| | | `-- Void: void +| | |-- Ident: error +| | |-- L_PAREN: ( +| | |-- R_PAREN: ) +| | `-- block +| | |-- L_BRACE: { +| | |-- blockItem +| | | `-- stmt +| | | |-- exp +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | |-- Ident: putch +| | | | |-- L_PAREN: ( +| | | | |-- funcRParams +| | | | | `-- exp +| | | | | `-- addExp +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- DECIMAL_INT: 101 +| | | | `-- R_PAREN: ) +| | | `-- Semi: ; +| | |-- blockItem +| | | `-- stmt +| | | |-- exp +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | |-- Ident: putch +| | | | |-- L_PAREN: ( +| | | | |-- funcRParams +| | | | | `-- exp +| | | | | `-- addExp +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- DECIMAL_INT: 114 +| | | | `-- R_PAREN: ) +| | | `-- Semi: ; +| | |-- blockItem +| | | `-- stmt +| | | |-- exp +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | |-- Ident: putch +| | | | |-- L_PAREN: ( +| | | | |-- funcRParams +| | | | | `-- exp +| | | | | `-- addExp +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- DECIMAL_INT: 114 +| | | | `-- R_PAREN: ) +| | | `-- Semi: ; +| | |-- blockItem +| | | `-- stmt +| | | |-- exp +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | |-- Ident: putch +| | | | |-- L_PAREN: ( +| | | | |-- funcRParams +| | | | | `-- exp +| | | | | `-- addExp +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- DECIMAL_INT: 111 +| | | | `-- R_PAREN: ) +| | | `-- Semi: ; +| | |-- blockItem +| | | `-- stmt +| | | |-- exp +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | |-- Ident: putch +| | | | |-- L_PAREN: ( +| | | | |-- funcRParams +| | | | | `-- exp +| | | | | `-- addExp +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- DECIMAL_INT: 114 +| | | | `-- R_PAREN: ) +| | | `-- Semi: ; +| | |-- blockItem +| | | `-- stmt +| | | |-- exp +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | |-- Ident: putch +| | | | |-- L_PAREN: ( +| | | | |-- funcRParams +| | | | | `-- exp +| | | | | `-- addExp +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- DECIMAL_INT: 10 +| | | | `-- R_PAREN: ) +| | | `-- Semi: ; +| | `-- R_BRACE: } +| |-- funcDef +| | |-- funcType +| | | `-- Void: void +| | |-- Ident: ok +| | |-- L_PAREN: ( +| | |-- R_PAREN: ) +| | `-- block +| | |-- L_BRACE: { +| | |-- blockItem +| | | `-- stmt +| | | |-- exp +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | |-- Ident: putch +| | | | |-- L_PAREN: ( +| | | | |-- funcRParams +| | | | | `-- exp +| | | | | `-- addExp +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- DECIMAL_INT: 111 +| | | | `-- R_PAREN: ) +| | | `-- Semi: ; +| | |-- blockItem +| | | `-- stmt +| | | |-- exp +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | |-- Ident: putch +| | | | |-- L_PAREN: ( +| | | | |-- funcRParams +| | | | | `-- exp +| | | | | `-- addExp +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- DECIMAL_INT: 107 +| | | | `-- R_PAREN: ) +| | | `-- Semi: ; +| | |-- blockItem +| | | `-- stmt +| | | |-- exp +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | |-- Ident: putch +| | | | |-- L_PAREN: ( +| | | | |-- funcRParams +| | | | | `-- exp +| | | | | `-- addExp +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- DECIMAL_INT: 10 +| | | | `-- R_PAREN: ) +| | | `-- Semi: ; +| | `-- R_BRACE: } +| |-- funcDef +| | |-- funcType +| | | `-- Void: void +| | |-- Ident: assert +| | |-- L_PAREN: ( +| | |-- funcFParams +| | | `-- funcFParam +| | | |-- bType +| | | | `-- Int: int +| | | `-- Ident: cond +| | |-- R_PAREN: ) +| | `-- block +| | |-- L_BRACE: { +| | |-- blockItem +| | | `-- stmt +| | | |-- If: if +| | | |-- L_PAREN: ( +| | | |-- cond +| | | | `-- lOrExp +| | | | `-- lAndExp +| | | | `-- eqExp +| | | | `-- relExp +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | |-- unaryOp +| | | | | `-- NotOp: ! +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- lVal +| | | | `-- Ident: cond +| | | |-- R_PAREN: ) +| | | |-- stmt +| | | | `-- block +| | | | |-- L_BRACE: { +| | | | |-- blockItem +| | | | | `-- stmt +| | | | | |-- exp +| | | | | | `-- addExp +| | | | | | `-- mulExp +| | | | | | `-- unaryExp +| | | | | | |-- Ident: error +| | | | | | |-- L_PAREN: ( +| | | | | | `-- R_PAREN: ) +| | | | | `-- Semi: ; +| | | | `-- R_BRACE: } +| | | |-- Else: else +| | | `-- stmt +| | | `-- block +| | | |-- L_BRACE: { +| | | |-- blockItem +| | | | `-- stmt +| | | | |-- exp +| | | | | `-- addExp +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | |-- Ident: ok +| | | | | |-- L_PAREN: ( +| | | | | `-- R_PAREN: ) +| | | | `-- Semi: ; +| | | `-- R_BRACE: } +| | `-- R_BRACE: } +| |-- funcDef +| | |-- funcType +| | | `-- Void: void +| | |-- Ident: assert_not +| | |-- L_PAREN: ( +| | |-- funcFParams +| | | `-- funcFParam +| | | |-- bType +| | | | `-- Int: int +| | | `-- Ident: cond +| | |-- R_PAREN: ) +| | `-- block +| | |-- L_BRACE: { +| | |-- blockItem +| | | `-- stmt +| | | |-- If: if +| | | |-- L_PAREN: ( +| | | |-- cond +| | | | `-- lOrExp +| | | | `-- lAndExp +| | | | `-- eqExp +| | | | `-- relExp +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- lVal +| | | | `-- Ident: cond +| | | |-- R_PAREN: ) +| | | |-- stmt +| | | | `-- block +| | | | |-- L_BRACE: { +| | | | |-- blockItem +| | | | | `-- stmt +| | | | | |-- exp +| | | | | | `-- addExp +| | | | | | `-- mulExp +| | | | | | `-- unaryExp +| | | | | | |-- Ident: error +| | | | | | |-- L_PAREN: ( +| | | | | | `-- R_PAREN: ) +| | | | | `-- Semi: ; +| | | | `-- R_BRACE: } +| | | |-- Else: else +| | | `-- stmt +| | | `-- block +| | | |-- L_BRACE: { +| | | |-- blockItem +| | | | `-- stmt +| | | | |-- exp +| | | | | `-- addExp +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | |-- Ident: ok +| | | | | |-- L_PAREN: ( +| | | | | `-- R_PAREN: ) +| | | | `-- Semi: ; +| | | `-- R_BRACE: } +| | `-- R_BRACE: } +| `-- funcDef +| |-- funcType +| | `-- Int: int +| |-- Ident: main +| |-- L_PAREN: ( +| |-- R_PAREN: ) +| `-- block +| |-- L_BRACE: { +| |-- blockItem +| | `-- stmt +| | |-- exp +| | | `-- addExp +| | | `-- mulExp +| | | `-- unaryExp +| | | |-- Ident: assert_not +| | | |-- L_PAREN: ( +| | | |-- funcRParams +| | | | `-- exp +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | |-- Ident: float_eq +| | | | |-- L_PAREN: ( +| | | | |-- funcRParams +| | | | | |-- exp +| | | | | | `-- addExp +| | | | | | `-- mulExp +| | | | | | `-- unaryExp +| | | | | | `-- primary +| | | | | | `-- lVal +| | | | | | `-- Ident: HEX2 +| | | | | |-- Comma: , +| | | | | `-- exp +| | | | | `-- addExp +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- lVal +| | | | | `-- Ident: FACT +| | | | `-- R_PAREN: ) +| | | `-- R_PAREN: ) +| | `-- Semi: ; +| |-- blockItem +| | `-- stmt +| | |-- exp +| | | `-- addExp +| | | `-- mulExp +| | | `-- unaryExp +| | | |-- Ident: assert_not +| | | |-- L_PAREN: ( +| | | |-- funcRParams +| | | | `-- exp +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | |-- Ident: float_eq +| | | | |-- L_PAREN: ( +| | | | |-- funcRParams +| | | | | |-- exp +| | | | | | `-- addExp +| | | | | | `-- mulExp +| | | | | | `-- unaryExp +| | | | | | `-- primary +| | | | | | `-- lVal +| | | | | | `-- Ident: EVAL1 +| | | | | |-- Comma: , +| | | | | `-- exp +| | | | | `-- addExp +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- lVal +| | | | | `-- Ident: EVAL2 +| | | | `-- R_PAREN: ) +| | | `-- R_PAREN: ) +| | `-- Semi: ; +| |-- blockItem +| | `-- stmt +| | |-- exp +| | | `-- addExp +| | | `-- mulExp +| | | `-- unaryExp +| | | |-- Ident: assert +| | | |-- L_PAREN: ( +| | | |-- funcRParams +| | | | `-- exp +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | |-- Ident: float_eq +| | | | |-- L_PAREN: ( +| | | | |-- funcRParams +| | | | | |-- exp +| | | | | | `-- addExp +| | | | | | `-- mulExp +| | | | | | `-- unaryExp +| | | | | | `-- primary +| | | | | | `-- lVal +| | | | | | `-- Ident: EVAL2 +| | | | | |-- Comma: , +| | | | | `-- exp +| | | | | `-- addExp +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- lVal +| | | | | `-- Ident: EVAL3 +| | | | `-- R_PAREN: ) +| | | `-- R_PAREN: ) +| | `-- Semi: ; +| |-- blockItem +| | `-- stmt +| | |-- exp +| | | `-- addExp +| | | `-- mulExp +| | | `-- unaryExp +| | | |-- Ident: assert +| | | |-- L_PAREN: ( +| | | |-- funcRParams +| | | | `-- exp +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | |-- Ident: float_eq +| | | | |-- L_PAREN: ( +| | | | |-- funcRParams +| | | | | |-- exp +| | | | | | `-- addExp +| | | | | | `-- mulExp +| | | | | | `-- unaryExp +| | | | | | |-- Ident: circle_area +| | | | | | |-- L_PAREN: ( +| | | | | | |-- funcRParams +| | | | | | | `-- exp +| | | | | | | `-- addExp +| | | | | | | `-- mulExp +| | | | | | | `-- unaryExp +| | | | | | | `-- primary +| | | | | | | `-- lVal +| | | | | | | `-- Ident: RADIUS +| | | | | | `-- R_PAREN: ) +| | | | | |-- Comma: , +| | | | | `-- exp +| | | | | `-- addExp +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | |-- Ident: circle_area +| | | | | |-- L_PAREN: ( +| | | | | |-- funcRParams +| | | | | | `-- exp +| | | | | | `-- addExp +| | | | | | `-- mulExp +| | | | | | `-- unaryExp +| | | | | | `-- primary +| | | | | | `-- lVal +| | | | | | `-- Ident: FIVE +| | | | | `-- R_PAREN: ) +| | | | `-- R_PAREN: ) +| | | `-- R_PAREN: ) +| | `-- Semi: ; +| |-- blockItem +| | `-- stmt +| | |-- exp +| | | `-- addExp +| | | `-- mulExp +| | | `-- unaryExp +| | | |-- Ident: assert_not +| | | |-- L_PAREN: ( +| | | |-- funcRParams +| | | | `-- exp +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | |-- Ident: float_eq +| | | | |-- L_PAREN: ( +| | | | |-- funcRParams +| | | | | |-- exp +| | | | | | `-- addExp +| | | | | | `-- mulExp +| | | | | | `-- unaryExp +| | | | | | `-- primary +| | | | | | `-- lVal +| | | | | | `-- Ident: CONV1 +| | | | | |-- Comma: , +| | | | | `-- exp +| | | | | `-- addExp +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- lVal +| | | | | `-- Ident: CONV2 +| | | | `-- R_PAREN: ) +| | | `-- R_PAREN: ) +| | `-- Semi: ; +| |-- blockItem +| | `-- stmt +| | |-- If: if +| | |-- L_PAREN: ( +| | |-- cond +| | | `-- lOrExp +| | | `-- lAndExp +| | | `-- eqExp +| | | `-- relExp +| | | `-- addExp +| | | `-- mulExp +| | | `-- unaryExp +| | | `-- primary +| | | `-- DEC_FLOAT: 1.5 +| | |-- R_PAREN: ) +| | `-- stmt +| | |-- exp +| | | `-- addExp +| | | `-- mulExp +| | | `-- unaryExp +| | | |-- Ident: ok +| | | |-- L_PAREN: ( +| | | `-- R_PAREN: ) +| | `-- Semi: ; +| |-- blockItem +| | `-- stmt +| | |-- If: if +| | |-- L_PAREN: ( +| | |-- cond +| | | `-- lOrExp +| | | `-- lAndExp +| | | `-- eqExp +| | | `-- relExp +| | | `-- addExp +| | | `-- mulExp +| | | `-- unaryExp +| | | |-- unaryOp +| | | | `-- NotOp: ! +| | | `-- unaryExp +| | | |-- unaryOp +| | | | `-- NotOp: ! +| | | `-- unaryExp +| | | `-- primary +| | | `-- DEC_FLOAT: 3.3 +| | |-- R_PAREN: ) +| | `-- stmt +| | |-- exp +| | | `-- addExp +| | | `-- mulExp +| | | `-- unaryExp +| | | |-- Ident: ok +| | | |-- L_PAREN: ( +| | | `-- R_PAREN: ) +| | `-- Semi: ; +| |-- blockItem +| | `-- stmt +| | |-- If: if +| | |-- L_PAREN: ( +| | |-- cond +| | | `-- lOrExp +| | | `-- lAndExp +| | | |-- lAndExp +| | | | `-- eqExp +| | | | `-- relExp +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- DEC_FLOAT: .0 +| | | |-- AndOp: && +| | | `-- eqExp +| | | `-- relExp +| | | `-- addExp +| | | `-- mulExp +| | | `-- unaryExp +| | | `-- primary +| | | `-- DECIMAL_INT: 3 +| | |-- R_PAREN: ) +| | `-- stmt +| | |-- exp +| | | `-- addExp +| | | `-- mulExp +| | | `-- unaryExp +| | | |-- Ident: error +| | | |-- L_PAREN: ( +| | | `-- R_PAREN: ) +| | `-- Semi: ; +| |-- blockItem +| | `-- stmt +| | |-- If: if +| | |-- L_PAREN: ( +| | |-- cond +| | | `-- lOrExp +| | | |-- lOrExp +| | | | `-- lAndExp +| | | | `-- eqExp +| | | | `-- relExp +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- OCTAL_INT: 0 +| | | |-- OrOp: || +| | | `-- lAndExp +| | | `-- eqExp +| | | `-- relExp +| | | `-- addExp +| | | `-- mulExp +| | | `-- unaryExp +| | | `-- primary +| | | `-- DEC_FLOAT: 0.3 +| | |-- R_PAREN: ) +| | `-- stmt +| | |-- exp +| | | `-- addExp +| | | `-- mulExp +| | | `-- unaryExp +| | | |-- Ident: ok +| | | |-- L_PAREN: ( +| | | `-- R_PAREN: ) +| | `-- Semi: ; +| |-- blockItem +| | `-- decl +| | `-- varDecl +| | |-- bType +| | | `-- Int: int +| | |-- varDef +| | | |-- Ident: i +| | | |-- Assign: = +| | | `-- initVal +| | | `-- exp +| | | `-- addExp +| | | `-- mulExp +| | | `-- unaryExp +| | | `-- primary +| | | `-- DECIMAL_INT: 1 +| | |-- Comma: , +| | |-- varDef +| | | |-- Ident: p +| | | |-- Assign: = +| | | `-- initVal +| | | `-- exp +| | | `-- addExp +| | | `-- mulExp +| | | `-- unaryExp +| | | `-- primary +| | | `-- OCTAL_INT: 0 +| | `-- Semi: ; +| |-- blockItem +| | `-- decl +| | `-- varDecl +| | |-- bType +| | | `-- Float: float +| | |-- varDef +| | | |-- Ident: arr +| | | |-- L_BRACK: [ +| | | |-- constExp +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- DECIMAL_INT: 10 +| | | |-- R_BRACK: ] +| | | |-- Assign: = +| | | `-- initVal +| | | |-- L_BRACE: { +| | | |-- initVal +| | | | `-- exp +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- DEC_FLOAT: 1. +| | | |-- Comma: , +| | | |-- initVal +| | | | `-- exp +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- DECIMAL_INT: 2 +| | | `-- R_BRACE: } +| | `-- Semi: ; +| |-- blockItem +| | `-- decl +| | `-- varDecl +| | |-- bType +| | | `-- Int: int +| | |-- varDef +| | | |-- Ident: len +| | | |-- Assign: = +| | | `-- initVal +| | | `-- exp +| | | `-- addExp +| | | `-- mulExp +| | | `-- unaryExp +| | | |-- Ident: getfarray +| | | |-- L_PAREN: ( +| | | |-- funcRParams +| | | | `-- exp +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- lVal +| | | | `-- Ident: arr +| | | `-- R_PAREN: ) +| | `-- Semi: ; +| |-- blockItem +| | `-- stmt +| | |-- While: while +| | |-- L_PAREN: ( +| | |-- cond +| | | `-- lOrExp +| | | `-- lAndExp +| | | `-- eqExp +| | | `-- relExp +| | | |-- relExp +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- lVal +| | | | `-- Ident: i +| | | |-- LOp: < +| | | `-- addExp +| | | `-- mulExp +| | | `-- unaryExp +| | | `-- primary +| | | `-- lVal +| | | `-- Ident: MAX +| | |-- R_PAREN: ) +| | `-- stmt +| | `-- block +| | |-- L_BRACE: { +| | |-- blockItem +| | | `-- decl +| | | `-- varDecl +| | | |-- bType +| | | | `-- Float: float +| | | |-- varDef +| | | | |-- Ident: input +| | | | |-- Assign: = +| | | | `-- initVal +| | | | `-- exp +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | |-- Ident: getfloat +| | | | |-- L_PAREN: ( +| | | | `-- R_PAREN: ) +| | | `-- Semi: ; +| | |-- blockItem +| | | `-- decl +| | | `-- varDecl +| | | |-- bType +| | | | `-- Float: float +| | | |-- varDef +| | | | |-- Ident: area +| | | | |-- Assign: = +| | | | `-- initVal +| | | | `-- exp +| | | | `-- addExp +| | | | `-- mulExp +| | | | |-- mulExp +| | | | | |-- mulExp +| | | | | | `-- unaryExp +| | | | | | `-- primary +| | | | | | `-- lVal +| | | | | | `-- Ident: PI +| | | | | |-- MulOp: * +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- lVal +| | | | | `-- Ident: input +| | | | |-- MulOp: * +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- lVal +| | | | `-- Ident: input +| | | |-- Comma: , +| | | |-- varDef +| | | | |-- Ident: area_trunc +| | | | |-- Assign: = +| | | | `-- initVal +| | | | `-- exp +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | |-- Ident: circle_area +| | | | |-- L_PAREN: ( +| | | | |-- funcRParams +| | | | | `-- exp +| | | | | `-- addExp +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- lVal +| | | | | `-- Ident: input +| | | | `-- R_PAREN: ) +| | | `-- Semi: ; +| | |-- blockItem +| | | `-- stmt +| | | |-- lVal +| | | | |-- Ident: arr +| | | | |-- L_BRACK: [ +| | | | |-- exp +| | | | | `-- addExp +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- lVal +| | | | | `-- Ident: p +| | | | `-- R_BRACK: ] +| | | |-- Assign: = +| | | |-- exp +| | | | `-- addExp +| | | | |-- addExp +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- lVal +| | | | | |-- Ident: arr +| | | | | |-- L_BRACK: [ +| | | | | |-- exp +| | | | | | `-- addExp +| | | | | | `-- mulExp +| | | | | | `-- unaryExp +| | | | | | `-- primary +| | | | | | `-- lVal +| | | | | | `-- Ident: p +| | | | | `-- R_BRACK: ] +| | | | |-- AddOp: + +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- lVal +| | | | `-- Ident: input +| | | `-- Semi: ; +| | |-- blockItem +| | | `-- stmt +| | | |-- exp +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | |-- Ident: putfloat +| | | | |-- L_PAREN: ( +| | | | |-- funcRParams +| | | | | `-- exp +| | | | | `-- addExp +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- lVal +| | | | | `-- Ident: area +| | | | `-- R_PAREN: ) +| | | `-- Semi: ; +| | |-- blockItem +| | | `-- stmt +| | | |-- exp +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | |-- Ident: putch +| | | | |-- L_PAREN: ( +| | | | |-- funcRParams +| | | | | `-- exp +| | | | | `-- addExp +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- DECIMAL_INT: 32 +| | | | `-- R_PAREN: ) +| | | `-- Semi: ; +| | |-- blockItem +| | | `-- stmt +| | | |-- exp +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | |-- Ident: putint +| | | | |-- L_PAREN: ( +| | | | |-- funcRParams +| | | | | `-- exp +| | | | | `-- addExp +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- lVal +| | | | | `-- Ident: area_trunc +| | | | `-- R_PAREN: ) +| | | `-- Semi: ; +| | |-- blockItem +| | | `-- stmt +| | | |-- exp +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | |-- Ident: putch +| | | | |-- L_PAREN: ( +| | | | |-- funcRParams +| | | | | `-- exp +| | | | | `-- addExp +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- DECIMAL_INT: 10 +| | | | `-- R_PAREN: ) +| | | `-- Semi: ; +| | |-- blockItem +| | | `-- stmt +| | | |-- lVal +| | | | `-- Ident: i +| | | |-- Assign: = +| | | |-- exp +| | | | `-- addExp +| | | | `-- mulExp +| | | | |-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- lVal +| | | | | `-- Ident: i +| | | | |-- MulOp: * +| | | | `-- unaryExp +| | | | |-- unaryOp +| | | | | `-- SubOp: - +| | | | `-- unaryExp +| | | | |-- unaryOp +| | | | | `-- SubOp: - +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- DEC_FLOAT: 1e1 +| | | `-- Semi: ; +| | |-- blockItem +| | | `-- stmt +| | | |-- lVal +| | | | `-- Ident: p +| | | |-- Assign: = +| | | |-- exp +| | | | `-- addExp +| | | | |-- addExp +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- lVal +| | | | | `-- Ident: p +| | | | |-- AddOp: + +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- DECIMAL_INT: 1 +| | | `-- Semi: ; +| | `-- R_BRACE: } +| |-- blockItem +| | `-- stmt +| | |-- exp +| | | `-- addExp +| | | `-- mulExp +| | | `-- unaryExp +| | | |-- Ident: putfarray +| | | |-- L_PAREN: ( +| | | |-- funcRParams +| | | | |-- exp +| | | | | `-- addExp +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- lVal +| | | | | `-- Ident: len +| | | | |-- Comma: , +| | | | `-- exp +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- lVal +| | | | `-- Ident: arr +| | | `-- R_PAREN: ) +| | `-- Semi: ; +| |-- blockItem +| | `-- stmt +| | `-- returnStmt +| | |-- Return: return +| | |-- exp +| | | `-- addExp +| | | `-- mulExp +| | | `-- unaryExp +| | | `-- primary +| | | `-- OCTAL_INT: 0 +| | `-- Semi: ; +| `-- R_BRACE: } +`-- EOF: + +========== test/test_case/functional/simple_add.sy ========== +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 +| | | `-- primary +| | | `-- DECIMAL_INT: 1 +| | `-- Semi: ; +| |-- blockItem +| | `-- decl +| | `-- varDecl +| | |-- bType +| | | `-- Int: int +| | |-- varDef +| | | |-- Ident: b +| | | |-- Assign: = +| | | `-- initVal +| | | `-- exp +| | | `-- addExp +| | | `-- mulExp +| | | `-- unaryExp +| | | `-- primary +| | | `-- DECIMAL_INT: 2 +| | `-- Semi: ; +| |-- blockItem +| | `-- stmt +| | `-- returnStmt +| | |-- Return: return +| | |-- exp +| | | `-- addExp +| | | |-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- lVal +| | | | `-- Ident: a +| | | |-- AddOp: + +| | | `-- mulExp +| | | `-- unaryExp +| | | `-- primary +| | | `-- lVal +| | | `-- Ident: b +| | `-- Semi: ; +| `-- R_BRACE: } +`-- EOF: + +========== test/test_case/performance/01_mm2.sy ========== +compUnit +|-- program +| |-- decl +| | `-- constDecl +| | |-- Const: const +| | |-- bType +| | | `-- Int: int +| | |-- constDef +| | | |-- Ident: N +| | | |-- Assign: = +| | | `-- constInitVal +| | | `-- constExp +| | | `-- addExp +| | | `-- mulExp +| | | `-- unaryExp +| | | `-- primary +| | | `-- DECIMAL_INT: 1024 +| | `-- Semi: ; +| |-- funcDef +| | |-- funcType +| | | `-- Void: void +| | |-- Ident: mm +| | |-- L_PAREN: ( +| | |-- funcFParams +| | | |-- funcFParam +| | | | |-- bType +| | | | | `-- Int: int +| | | | `-- Ident: n +| | | |-- Comma: , +| | | |-- funcFParam +| | | | |-- bType +| | | | | `-- Int: int +| | | | |-- Ident: A +| | | | |-- L_BRACK: [ +| | | | |-- R_BRACK: ] +| | | | |-- L_BRACK: [ +| | | | |-- exp +| | | | | `-- addExp +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- lVal +| | | | | `-- Ident: N +| | | | `-- R_BRACK: ] +| | | |-- Comma: , +| | | |-- funcFParam +| | | | |-- bType +| | | | | `-- Int: int +| | | | |-- Ident: B +| | | | |-- L_BRACK: [ +| | | | |-- R_BRACK: ] +| | | | |-- L_BRACK: [ +| | | | |-- exp +| | | | | `-- addExp +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- lVal +| | | | | `-- Ident: N +| | | | `-- R_BRACK: ] +| | | |-- Comma: , +| | | `-- funcFParam +| | | |-- bType +| | | | `-- Int: int +| | | |-- Ident: C +| | | |-- L_BRACK: [ +| | | |-- R_BRACK: ] +| | | |-- L_BRACK: [ +| | | |-- exp +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- lVal +| | | | `-- Ident: N +| | | `-- R_BRACK: ] +| | |-- R_PAREN: ) +| | `-- block +| | |-- L_BRACE: { +| | |-- blockItem +| | | `-- decl +| | | `-- varDecl +| | | |-- bType +| | | | `-- Int: int +| | | |-- varDef +| | | | `-- Ident: i +| | | |-- Comma: , +| | | |-- varDef +| | | | `-- Ident: j +| | | |-- Comma: , +| | | |-- varDef +| | | | `-- Ident: k +| | | `-- Semi: ; +| | |-- blockItem +| | | `-- stmt +| | | |-- lVal +| | | | `-- Ident: i +| | | |-- Assign: = +| | | |-- exp +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- OCTAL_INT: 0 +| | | `-- Semi: ; +| | |-- blockItem +| | | `-- stmt +| | | |-- lVal +| | | | `-- Ident: j +| | | |-- Assign: = +| | | |-- exp +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- OCTAL_INT: 0 +| | | `-- Semi: ; +| | |-- blockItem +| | | `-- stmt +| | | |-- While: while +| | | |-- L_PAREN: ( +| | | |-- cond +| | | | `-- lOrExp +| | | | `-- lAndExp +| | | | `-- eqExp +| | | | `-- relExp +| | | | |-- relExp +| | | | | `-- addExp +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- lVal +| | | | | `-- Ident: i +| | | | |-- LOp: < +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- lVal +| | | | `-- Ident: n +| | | |-- R_PAREN: ) +| | | `-- stmt +| | | `-- block +| | | |-- L_BRACE: { +| | | |-- blockItem +| | | | `-- stmt +| | | | |-- lVal +| | | | | `-- Ident: j +| | | | |-- Assign: = +| | | | |-- exp +| | | | | `-- addExp +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- OCTAL_INT: 0 +| | | | `-- Semi: ; +| | | |-- blockItem +| | | | `-- stmt +| | | | |-- While: while +| | | | |-- L_PAREN: ( +| | | | |-- cond +| | | | | `-- lOrExp +| | | | | `-- lAndExp +| | | | | `-- eqExp +| | | | | `-- relExp +| | | | | |-- relExp +| | | | | | `-- addExp +| | | | | | `-- mulExp +| | | | | | `-- unaryExp +| | | | | | `-- primary +| | | | | | `-- lVal +| | | | | | `-- Ident: j +| | | | | |-- LOp: < +| | | | | `-- addExp +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- lVal +| | | | | `-- Ident: n +| | | | |-- R_PAREN: ) +| | | | `-- stmt +| | | | `-- block +| | | | |-- L_BRACE: { +| | | | |-- blockItem +| | | | | `-- stmt +| | | | | |-- lVal +| | | | | | |-- Ident: C +| | | | | | |-- L_BRACK: [ +| | | | | | |-- exp +| | | | | | | `-- addExp +| | | | | | | `-- mulExp +| | | | | | | `-- unaryExp +| | | | | | | `-- primary +| | | | | | | `-- lVal +| | | | | | | `-- Ident: i +| | | | | | |-- R_BRACK: ] +| | | | | | |-- L_BRACK: [ +| | | | | | |-- exp +| | | | | | | `-- addExp +| | | | | | | `-- mulExp +| | | | | | | `-- unaryExp +| | | | | | | `-- primary +| | | | | | | `-- lVal +| | | | | | | `-- Ident: j +| | | | | | `-- R_BRACK: ] +| | | | | |-- Assign: = +| | | | | |-- exp +| | | | | | `-- addExp +| | | | | | `-- mulExp +| | | | | | `-- unaryExp +| | | | | | `-- primary +| | | | | | `-- OCTAL_INT: 0 +| | | | | `-- Semi: ; +| | | | |-- blockItem +| | | | | `-- stmt +| | | | | |-- lVal +| | | | | | `-- Ident: j +| | | | | |-- Assign: = +| | | | | |-- exp +| | | | | | `-- addExp +| | | | | | |-- addExp +| | | | | | | `-- mulExp +| | | | | | | `-- unaryExp +| | | | | | | `-- primary +| | | | | | | `-- lVal +| | | | | | | `-- Ident: j +| | | | | | |-- AddOp: + +| | | | | | `-- mulExp +| | | | | | `-- unaryExp +| | | | | | `-- primary +| | | | | | `-- DECIMAL_INT: 1 +| | | | | `-- Semi: ; +| | | | `-- R_BRACE: } +| | | |-- blockItem +| | | | `-- stmt +| | | | |-- lVal +| | | | | `-- Ident: i +| | | | |-- Assign: = +| | | | |-- exp +| | | | | `-- addExp +| | | | | |-- addExp +| | | | | | `-- mulExp +| | | | | | `-- unaryExp +| | | | | | `-- primary +| | | | | | `-- lVal +| | | | | | `-- Ident: i +| | | | | |-- AddOp: + +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- DECIMAL_INT: 1 +| | | | `-- Semi: ; +| | | `-- R_BRACE: } +| | |-- blockItem +| | | `-- stmt +| | | |-- lVal +| | | | `-- Ident: i +| | | |-- Assign: = +| | | |-- exp +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- OCTAL_INT: 0 +| | | `-- Semi: ; +| | |-- blockItem +| | | `-- stmt +| | | |-- lVal +| | | | `-- Ident: j +| | | |-- Assign: = +| | | |-- exp +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- OCTAL_INT: 0 +| | | `-- Semi: ; +| | |-- blockItem +| | | `-- stmt +| | | |-- lVal +| | | | `-- Ident: k +| | | |-- Assign: = +| | | |-- exp +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- OCTAL_INT: 0 +| | | `-- Semi: ; +| | |-- blockItem +| | | `-- stmt +| | | |-- While: while +| | | |-- L_PAREN: ( +| | | |-- cond +| | | | `-- lOrExp +| | | | `-- lAndExp +| | | | `-- eqExp +| | | | `-- relExp +| | | | |-- relExp +| | | | | `-- addExp +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- lVal +| | | | | `-- Ident: k +| | | | |-- LOp: < +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- lVal +| | | | `-- Ident: n +| | | |-- R_PAREN: ) +| | | `-- stmt +| | | `-- block +| | | |-- L_BRACE: { +| | | |-- blockItem +| | | | `-- stmt +| | | | |-- lVal +| | | | | `-- Ident: i +| | | | |-- Assign: = +| | | | |-- exp +| | | | | `-- addExp +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- OCTAL_INT: 0 +| | | | `-- Semi: ; +| | | |-- blockItem +| | | | `-- stmt +| | | | |-- While: while +| | | | |-- L_PAREN: ( +| | | | |-- cond +| | | | | `-- lOrExp +| | | | | `-- lAndExp +| | | | | `-- eqExp +| | | | | `-- relExp +| | | | | |-- relExp +| | | | | | `-- addExp +| | | | | | `-- mulExp +| | | | | | `-- unaryExp +| | | | | | `-- primary +| | | | | | `-- lVal +| | | | | | `-- Ident: i +| | | | | |-- LOp: < +| | | | | `-- addExp +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- lVal +| | | | | `-- Ident: n +| | | | |-- R_PAREN: ) +| | | | `-- stmt +| | | | `-- block +| | | | |-- L_BRACE: { +| | | | |-- blockItem +| | | | | `-- stmt +| | | | | |-- If: if +| | | | | |-- L_PAREN: ( +| | | | | |-- cond +| | | | | | `-- lOrExp +| | | | | | `-- lAndExp +| | | | | | `-- eqExp +| | | | | | |-- eqExp +| | | | | | | `-- relExp +| | | | | | | `-- addExp +| | | | | | | `-- mulExp +| | | | | | | `-- unaryExp +| | | | | | | `-- primary +| | | | | | | `-- lVal +| | | | | | | |-- Ident: A +| | | | | | | |-- L_BRACK: [ +| | | | | | | |-- exp +| | | | | | | | `-- addExp +| | | | | | | | `-- mulExp +| | | | | | | | `-- unaryExp +| | | | | | | | `-- primary +| | | | | | | | `-- lVal +| | | | | | | | `-- Ident: i +| | | | | | | |-- R_BRACK: ] +| | | | | | | |-- L_BRACK: [ +| | | | | | | |-- exp +| | | | | | | | `-- addExp +| | | | | | | | `-- mulExp +| | | | | | | | `-- unaryExp +| | | | | | | | `-- primary +| | | | | | | | `-- lVal +| | | | | | | | `-- Ident: k +| | | | | | | `-- R_BRACK: ] +| | | | | | |-- EqOp: == +| | | | | | `-- relExp +| | | | | | `-- addExp +| | | | | | `-- mulExp +| | | | | | `-- unaryExp +| | | | | | `-- primary +| | | | | | `-- OCTAL_INT: 0 +| | | | | |-- R_PAREN: ) +| | | | | `-- stmt +| | | | | `-- block +| | | | | |-- L_BRACE: { +| | | | | |-- blockItem +| | | | | | `-- stmt +| | | | | | |-- lVal +| | | | | | | `-- Ident: i +| | | | | | |-- Assign: = +| | | | | | |-- exp +| | | | | | | `-- addExp +| | | | | | | |-- addExp +| | | | | | | | `-- mulExp +| | | | | | | | `-- unaryExp +| | | | | | | | `-- primary +| | | | | | | | `-- lVal +| | | | | | | | `-- Ident: i +| | | | | | | |-- AddOp: + +| | | | | | | `-- mulExp +| | | | | | | `-- unaryExp +| | | | | | | `-- primary +| | | | | | | `-- DECIMAL_INT: 1 +| | | | | | `-- Semi: ; +| | | | | |-- blockItem +| | | | | | `-- stmt +| | | | | | |-- Continue: continue +| | | | | | `-- Semi: ; +| | | | | `-- R_BRACE: } +| | | | |-- blockItem +| | | | | `-- stmt +| | | | | |-- lVal +| | | | | | `-- Ident: j +| | | | | |-- Assign: = +| | | | | |-- exp +| | | | | | `-- addExp +| | | | | | `-- mulExp +| | | | | | `-- unaryExp +| | | | | | `-- primary +| | | | | | `-- OCTAL_INT: 0 +| | | | | `-- Semi: ; +| | | | |-- blockItem +| | | | | `-- stmt +| | | | | |-- While: while +| | | | | |-- L_PAREN: ( +| | | | | |-- cond +| | | | | | `-- lOrExp +| | | | | | `-- lAndExp +| | | | | | `-- eqExp +| | | | | | `-- relExp +| | | | | | |-- relExp +| | | | | | | `-- addExp +| | | | | | | `-- mulExp +| | | | | | | `-- unaryExp +| | | | | | | `-- primary +| | | | | | | `-- lVal +| | | | | | | `-- Ident: j +| | | | | | |-- LOp: < +| | | | | | `-- addExp +| | | | | | `-- mulExp +| | | | | | `-- unaryExp +| | | | | | `-- primary +| | | | | | `-- lVal +| | | | | | `-- Ident: n +| | | | | |-- R_PAREN: ) +| | | | | `-- stmt +| | | | | `-- block +| | | | | |-- L_BRACE: { +| | | | | |-- blockItem +| | | | | | `-- stmt +| | | | | | |-- lVal +| | | | | | | |-- Ident: C +| | | | | | | |-- L_BRACK: [ +| | | | | | | |-- exp +| | | | | | | | `-- addExp +| | | | | | | | `-- mulExp +| | | | | | | | `-- unaryExp +| | | | | | | | `-- primary +| | | | | | | | `-- lVal +| | | | | | | | `-- Ident: i +| | | | | | | |-- R_BRACK: ] +| | | | | | | |-- L_BRACK: [ +| | | | | | | |-- exp +| | | | | | | | `-- addExp +| | | | | | | | `-- mulExp +| | | | | | | | `-- unaryExp +| | | | | | | | `-- primary +| | | | | | | | `-- lVal +| | | | | | | | `-- Ident: j +| | | | | | | `-- R_BRACK: ] +| | | | | | |-- Assign: = +| | | | | | |-- exp +| | | | | | | `-- addExp +| | | | | | | |-- addExp +| | | | | | | | `-- mulExp +| | | | | | | | `-- unaryExp +| | | | | | | | `-- primary +| | | | | | | | `-- lVal +| | | | | | | | |-- Ident: C +| | | | | | | | |-- L_BRACK: [ +| | | | | | | | |-- exp +| | | | | | | | | `-- addExp +| | | | | | | | | `-- mulExp +| | | | | | | | | `-- unaryExp +| | | | | | | | | `-- primary +| | | | | | | | | `-- lVal +| | | | | | | | | `-- Ident: i +| | | | | | | | |-- R_BRACK: ] +| | | | | | | | |-- L_BRACK: [ +| | | | | | | | |-- exp +| | | | | | | | | `-- addExp +| | | | | | | | | `-- mulExp +| | | | | | | | | `-- unaryExp +| | | | | | | | | `-- primary +| | | | | | | | | `-- lVal +| | | | | | | | | `-- Ident: j +| | | | | | | | `-- R_BRACK: ] +| | | | | | | |-- AddOp: + +| | | | | | | `-- mulExp +| | | | | | | |-- mulExp +| | | | | | | | `-- unaryExp +| | | | | | | | `-- primary +| | | | | | | | `-- lVal +| | | | | | | | |-- Ident: A +| | | | | | | | |-- L_BRACK: [ +| | | | | | | | |-- exp +| | | | | | | | | `-- addExp +| | | | | | | | | `-- mulExp +| | | | | | | | | `-- unaryExp +| | | | | | | | | `-- primary +| | | | | | | | | `-- lVal +| | | | | | | | | `-- Ident: i +| | | | | | | | |-- R_BRACK: ] +| | | | | | | | |-- L_BRACK: [ +| | | | | | | | |-- exp +| | | | | | | | | `-- addExp +| | | | | | | | | `-- mulExp +| | | | | | | | | `-- unaryExp +| | | | | | | | | `-- primary +| | | | | | | | | `-- lVal +| | | | | | | | | `-- Ident: k +| | | | | | | | `-- R_BRACK: ] +| | | | | | | |-- MulOp: * +| | | | | | | `-- unaryExp +| | | | | | | `-- primary +| | | | | | | `-- lVal +| | | | | | | |-- Ident: B +| | | | | | | |-- L_BRACK: [ +| | | | | | | |-- exp +| | | | | | | | `-- addExp +| | | | | | | | `-- mulExp +| | | | | | | | `-- unaryExp +| | | | | | | | `-- primary +| | | | | | | | `-- lVal +| | | | | | | | `-- Ident: k +| | | | | | | |-- R_BRACK: ] +| | | | | | | |-- L_BRACK: [ +| | | | | | | |-- exp +| | | | | | | | `-- addExp +| | | | | | | | `-- mulExp +| | | | | | | | `-- unaryExp +| | | | | | | | `-- primary +| | | | | | | | `-- lVal +| | | | | | | | `-- Ident: j +| | | | | | | `-- R_BRACK: ] +| | | | | | `-- Semi: ; +| | | | | |-- blockItem +| | | | | | `-- stmt +| | | | | | |-- lVal +| | | | | | | `-- Ident: j +| | | | | | |-- Assign: = +| | | | | | |-- exp +| | | | | | | `-- addExp +| | | | | | | |-- addExp +| | | | | | | | `-- mulExp +| | | | | | | | `-- unaryExp +| | | | | | | | `-- primary +| | | | | | | | `-- lVal +| | | | | | | | `-- Ident: j +| | | | | | | |-- AddOp: + +| | | | | | | `-- mulExp +| | | | | | | `-- unaryExp +| | | | | | | `-- primary +| | | | | | | `-- DECIMAL_INT: 1 +| | | | | | `-- Semi: ; +| | | | | `-- R_BRACE: } +| | | | |-- blockItem +| | | | | `-- stmt +| | | | | |-- lVal +| | | | | | `-- Ident: i +| | | | | |-- Assign: = +| | | | | |-- exp +| | | | | | `-- addExp +| | | | | | |-- addExp +| | | | | | | `-- mulExp +| | | | | | | `-- unaryExp +| | | | | | | `-- primary +| | | | | | | `-- lVal +| | | | | | | `-- Ident: i +| | | | | | |-- AddOp: + +| | | | | | `-- mulExp +| | | | | | `-- unaryExp +| | | | | | `-- primary +| | | | | | `-- DECIMAL_INT: 1 +| | | | | `-- Semi: ; +| | | | `-- R_BRACE: } +| | | |-- blockItem +| | | | `-- stmt +| | | | |-- lVal +| | | | | `-- Ident: k +| | | | |-- Assign: = +| | | | |-- exp +| | | | | `-- addExp +| | | | | |-- addExp +| | | | | | `-- mulExp +| | | | | | `-- unaryExp +| | | | | | `-- primary +| | | | | | `-- lVal +| | | | | | `-- Ident: k +| | | | | |-- AddOp: + +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- DECIMAL_INT: 1 +| | | | `-- Semi: ; +| | | `-- R_BRACE: } +| | `-- R_BRACE: } +| |-- decl +| | `-- varDecl +| | |-- bType +| | | `-- Int: int +| | |-- varDef +| | | |-- Ident: A +| | | |-- L_BRACK: [ +| | | |-- constExp +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- lVal +| | | | `-- Ident: N +| | | |-- R_BRACK: ] +| | | |-- L_BRACK: [ +| | | |-- constExp +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- lVal +| | | | `-- Ident: N +| | | `-- R_BRACK: ] +| | `-- Semi: ; +| |-- decl +| | `-- varDecl +| | |-- bType +| | | `-- Int: int +| | |-- varDef +| | | |-- Ident: B +| | | |-- L_BRACK: [ +| | | |-- constExp +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- lVal +| | | | `-- Ident: N +| | | |-- R_BRACK: ] +| | | |-- L_BRACK: [ +| | | |-- constExp +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- lVal +| | | | `-- Ident: N +| | | `-- R_BRACK: ] +| | `-- Semi: ; +| |-- decl +| | `-- varDecl +| | |-- bType +| | | `-- Int: int +| | |-- varDef +| | | |-- Ident: C +| | | |-- L_BRACK: [ +| | | |-- constExp +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- lVal +| | | | `-- Ident: N +| | | |-- R_BRACK: ] +| | | |-- L_BRACK: [ +| | | |-- constExp +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- lVal +| | | | `-- Ident: N +| | | `-- R_BRACK: ] +| | `-- Semi: ; +| `-- funcDef +| |-- funcType +| | `-- Int: int +| |-- Ident: main +| |-- L_PAREN: ( +| |-- R_PAREN: ) +| `-- block +| |-- L_BRACE: { +| |-- blockItem +| | `-- decl +| | `-- varDecl +| | |-- bType +| | | `-- Int: int +| | |-- varDef +| | | |-- Ident: n +| | | |-- Assign: = +| | | `-- initVal +| | | `-- exp +| | | `-- addExp +| | | `-- mulExp +| | | `-- unaryExp +| | | |-- Ident: getint +| | | |-- L_PAREN: ( +| | | `-- R_PAREN: ) +| | `-- Semi: ; +| |-- blockItem +| | `-- decl +| | `-- varDecl +| | |-- bType +| | | `-- Int: int +| | |-- varDef +| | | `-- Ident: i +| | |-- Comma: , +| | |-- varDef +| | | `-- Ident: j +| | `-- Semi: ; +| |-- blockItem +| | `-- stmt +| | |-- lVal +| | | `-- Ident: i +| | |-- Assign: = +| | |-- exp +| | | `-- addExp +| | | `-- mulExp +| | | `-- unaryExp +| | | `-- primary +| | | `-- OCTAL_INT: 0 +| | `-- Semi: ; +| |-- blockItem +| | `-- stmt +| | |-- lVal +| | | `-- Ident: j +| | |-- Assign: = +| | |-- exp +| | | `-- addExp +| | | `-- mulExp +| | | `-- unaryExp +| | | `-- primary +| | | `-- OCTAL_INT: 0 +| | `-- Semi: ; +| |-- blockItem +| | `-- stmt +| | |-- While: while +| | |-- L_PAREN: ( +| | |-- cond +| | | `-- lOrExp +| | | `-- lAndExp +| | | `-- eqExp +| | | `-- relExp +| | | |-- relExp +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- lVal +| | | | `-- Ident: i +| | | |-- LOp: < +| | | `-- addExp +| | | `-- mulExp +| | | `-- unaryExp +| | | `-- primary +| | | `-- lVal +| | | `-- Ident: n +| | |-- R_PAREN: ) +| | `-- stmt +| | `-- block +| | |-- L_BRACE: { +| | |-- blockItem +| | | `-- stmt +| | | |-- lVal +| | | | `-- Ident: j +| | | |-- Assign: = +| | | |-- exp +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- OCTAL_INT: 0 +| | | `-- Semi: ; +| | |-- blockItem +| | | `-- stmt +| | | |-- While: while +| | | |-- L_PAREN: ( +| | | |-- cond +| | | | `-- lOrExp +| | | | `-- lAndExp +| | | | `-- eqExp +| | | | `-- relExp +| | | | |-- relExp +| | | | | `-- addExp +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- lVal +| | | | | `-- Ident: j +| | | | |-- LOp: < +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- lVal +| | | | `-- Ident: n +| | | |-- R_PAREN: ) +| | | `-- stmt +| | | `-- block +| | | |-- L_BRACE: { +| | | |-- blockItem +| | | | `-- stmt +| | | | |-- lVal +| | | | | |-- Ident: A +| | | | | |-- L_BRACK: [ +| | | | | |-- exp +| | | | | | `-- addExp +| | | | | | `-- mulExp +| | | | | | `-- unaryExp +| | | | | | `-- primary +| | | | | | `-- lVal +| | | | | | `-- Ident: i +| | | | | |-- R_BRACK: ] +| | | | | |-- L_BRACK: [ +| | | | | |-- exp +| | | | | | `-- addExp +| | | | | | `-- mulExp +| | | | | | `-- unaryExp +| | | | | | `-- primary +| | | | | | `-- lVal +| | | | | | `-- Ident: j +| | | | | `-- R_BRACK: ] +| | | | |-- Assign: = +| | | | |-- exp +| | | | | `-- addExp +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | |-- Ident: getint +| | | | | |-- L_PAREN: ( +| | | | | `-- R_PAREN: ) +| | | | `-- Semi: ; +| | | |-- blockItem +| | | | `-- stmt +| | | | |-- lVal +| | | | | `-- Ident: j +| | | | |-- Assign: = +| | | | |-- exp +| | | | | `-- addExp +| | | | | |-- addExp +| | | | | | `-- mulExp +| | | | | | `-- unaryExp +| | | | | | `-- primary +| | | | | | `-- lVal +| | | | | | `-- Ident: j +| | | | | |-- AddOp: + +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- DECIMAL_INT: 1 +| | | | `-- Semi: ; +| | | `-- R_BRACE: } +| | |-- blockItem +| | | `-- stmt +| | | |-- lVal +| | | | `-- Ident: i +| | | |-- Assign: = +| | | |-- exp +| | | | `-- addExp +| | | | |-- addExp +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- lVal +| | | | | `-- Ident: i +| | | | |-- AddOp: + +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- DECIMAL_INT: 1 +| | | `-- Semi: ; +| | `-- R_BRACE: } +| |-- blockItem +| | `-- stmt +| | |-- lVal +| | | `-- Ident: i +| | |-- Assign: = +| | |-- exp +| | | `-- addExp +| | | `-- mulExp +| | | `-- unaryExp +| | | `-- primary +| | | `-- OCTAL_INT: 0 +| | `-- Semi: ; +| |-- blockItem +| | `-- stmt +| | |-- lVal +| | | `-- Ident: j +| | |-- Assign: = +| | |-- exp +| | | `-- addExp +| | | `-- mulExp +| | | `-- unaryExp +| | | `-- primary +| | | `-- OCTAL_INT: 0 +| | `-- Semi: ; +| |-- blockItem +| | `-- stmt +| | |-- While: while +| | |-- L_PAREN: ( +| | |-- cond +| | | `-- lOrExp +| | | `-- lAndExp +| | | `-- eqExp +| | | `-- relExp +| | | |-- relExp +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- lVal +| | | | `-- Ident: i +| | | |-- LOp: < +| | | `-- addExp +| | | `-- mulExp +| | | `-- unaryExp +| | | `-- primary +| | | `-- lVal +| | | `-- Ident: n +| | |-- R_PAREN: ) +| | `-- stmt +| | `-- block +| | |-- L_BRACE: { +| | |-- blockItem +| | | `-- stmt +| | | |-- lVal +| | | | `-- Ident: j +| | | |-- Assign: = +| | | |-- exp +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- OCTAL_INT: 0 +| | | `-- Semi: ; +| | |-- blockItem +| | | `-- stmt +| | | |-- While: while +| | | |-- L_PAREN: ( +| | | |-- cond +| | | | `-- lOrExp +| | | | `-- lAndExp +| | | | `-- eqExp +| | | | `-- relExp +| | | | |-- relExp +| | | | | `-- addExp +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- lVal +| | | | | `-- Ident: j +| | | | |-- LOp: < +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- lVal +| | | | `-- Ident: n +| | | |-- R_PAREN: ) +| | | `-- stmt +| | | `-- block +| | | |-- L_BRACE: { +| | | |-- blockItem +| | | | `-- stmt +| | | | |-- lVal +| | | | | |-- Ident: B +| | | | | |-- L_BRACK: [ +| | | | | |-- exp +| | | | | | `-- addExp +| | | | | | `-- mulExp +| | | | | | `-- unaryExp +| | | | | | `-- primary +| | | | | | `-- lVal +| | | | | | `-- Ident: i +| | | | | |-- R_BRACK: ] +| | | | | |-- L_BRACK: [ +| | | | | |-- exp +| | | | | | `-- addExp +| | | | | | `-- mulExp +| | | | | | `-- unaryExp +| | | | | | `-- primary +| | | | | | `-- lVal +| | | | | | `-- Ident: j +| | | | | `-- R_BRACK: ] +| | | | |-- Assign: = +| | | | |-- exp +| | | | | `-- addExp +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | |-- Ident: getint +| | | | | |-- L_PAREN: ( +| | | | | `-- R_PAREN: ) +| | | | `-- Semi: ; +| | | |-- blockItem +| | | | `-- stmt +| | | | |-- lVal +| | | | | `-- Ident: j +| | | | |-- Assign: = +| | | | |-- exp +| | | | | `-- addExp +| | | | | |-- addExp +| | | | | | `-- mulExp +| | | | | | `-- unaryExp +| | | | | | `-- primary +| | | | | | `-- lVal +| | | | | | `-- Ident: j +| | | | | |-- AddOp: + +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- DECIMAL_INT: 1 +| | | | `-- Semi: ; +| | | `-- R_BRACE: } +| | |-- blockItem +| | | `-- stmt +| | | |-- lVal +| | | | `-- Ident: i +| | | |-- Assign: = +| | | |-- exp +| | | | `-- addExp +| | | | |-- addExp +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- lVal +| | | | | `-- Ident: i +| | | | |-- AddOp: + +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- DECIMAL_INT: 1 +| | | `-- Semi: ; +| | `-- R_BRACE: } +| |-- blockItem +| | `-- stmt +| | |-- exp +| | | `-- addExp +| | | `-- mulExp +| | | `-- unaryExp +| | | |-- Ident: starttime +| | | |-- L_PAREN: ( +| | | `-- R_PAREN: ) +| | `-- Semi: ; +| |-- blockItem +| | `-- stmt +| | |-- lVal +| | | `-- Ident: i +| | |-- Assign: = +| | |-- exp +| | | `-- addExp +| | | `-- mulExp +| | | `-- unaryExp +| | | `-- primary +| | | `-- OCTAL_INT: 0 +| | `-- Semi: ; +| |-- blockItem +| | `-- stmt +| | |-- While: while +| | |-- L_PAREN: ( +| | |-- cond +| | | `-- lOrExp +| | | `-- lAndExp +| | | `-- eqExp +| | | `-- relExp +| | | |-- relExp +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- lVal +| | | | `-- Ident: i +| | | |-- LOp: < +| | | `-- addExp +| | | `-- mulExp +| | | `-- unaryExp +| | | `-- primary +| | | `-- DECIMAL_INT: 5 +| | |-- R_PAREN: ) +| | `-- stmt +| | `-- block +| | |-- L_BRACE: { +| | |-- blockItem +| | | `-- stmt +| | | |-- exp +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | |-- Ident: mm +| | | | |-- L_PAREN: ( +| | | | |-- funcRParams +| | | | | |-- exp +| | | | | | `-- addExp +| | | | | | `-- mulExp +| | | | | | `-- unaryExp +| | | | | | `-- primary +| | | | | | `-- lVal +| | | | | | `-- Ident: n +| | | | | |-- Comma: , +| | | | | |-- exp +| | | | | | `-- addExp +| | | | | | `-- mulExp +| | | | | | `-- unaryExp +| | | | | | `-- primary +| | | | | | `-- lVal +| | | | | | `-- Ident: A +| | | | | |-- Comma: , +| | | | | |-- exp +| | | | | | `-- addExp +| | | | | | `-- mulExp +| | | | | | `-- unaryExp +| | | | | | `-- primary +| | | | | | `-- lVal +| | | | | | `-- Ident: B +| | | | | |-- Comma: , +| | | | | `-- exp +| | | | | `-- addExp +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- lVal +| | | | | `-- Ident: C +| | | | `-- R_PAREN: ) +| | | `-- Semi: ; +| | |-- blockItem +| | | `-- stmt +| | | |-- exp +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | |-- Ident: mm +| | | | |-- L_PAREN: ( +| | | | |-- funcRParams +| | | | | |-- exp +| | | | | | `-- addExp +| | | | | | `-- mulExp +| | | | | | `-- unaryExp +| | | | | | `-- primary +| | | | | | `-- lVal +| | | | | | `-- Ident: n +| | | | | |-- Comma: , +| | | | | |-- exp +| | | | | | `-- addExp +| | | | | | `-- mulExp +| | | | | | `-- unaryExp +| | | | | | `-- primary +| | | | | | `-- lVal +| | | | | | `-- Ident: A +| | | | | |-- Comma: , +| | | | | |-- exp +| | | | | | `-- addExp +| | | | | | `-- mulExp +| | | | | | `-- unaryExp +| | | | | | `-- primary +| | | | | | `-- lVal +| | | | | | `-- Ident: C +| | | | | |-- Comma: , +| | | | | `-- exp +| | | | | `-- addExp +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- lVal +| | | | | `-- Ident: B +| | | | `-- R_PAREN: ) +| | | `-- Semi: ; +| | |-- blockItem +| | | `-- stmt +| | | |-- lVal +| | | | `-- Ident: i +| | | |-- Assign: = +| | | |-- exp +| | | | `-- addExp +| | | | |-- addExp +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- lVal +| | | | | `-- Ident: i +| | | | |-- AddOp: + +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- DECIMAL_INT: 1 +| | | `-- Semi: ; +| | `-- R_BRACE: } +| |-- blockItem +| | `-- decl +| | `-- varDecl +| | |-- bType +| | | `-- Int: int +| | |-- varDef +| | | |-- Ident: ans +| | | |-- Assign: = +| | | `-- initVal +| | | `-- exp +| | | `-- addExp +| | | `-- mulExp +| | | `-- unaryExp +| | | `-- primary +| | | `-- OCTAL_INT: 0 +| | `-- Semi: ; +| |-- blockItem +| | `-- stmt +| | |-- lVal +| | | `-- Ident: i +| | |-- Assign: = +| | |-- exp +| | | `-- addExp +| | | `-- mulExp +| | | `-- unaryExp +| | | `-- primary +| | | `-- OCTAL_INT: 0 +| | `-- Semi: ; +| |-- blockItem +| | `-- stmt +| | |-- While: while +| | |-- L_PAREN: ( +| | |-- cond +| | | `-- lOrExp +| | | `-- lAndExp +| | | `-- eqExp +| | | `-- relExp +| | | |-- relExp +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- lVal +| | | | `-- Ident: i +| | | |-- LOp: < +| | | `-- addExp +| | | `-- mulExp +| | | `-- unaryExp +| | | `-- primary +| | | `-- lVal +| | | `-- Ident: n +| | |-- R_PAREN: ) +| | `-- stmt +| | `-- block +| | |-- L_BRACE: { +| | |-- blockItem +| | | `-- stmt +| | | |-- lVal +| | | | `-- Ident: j +| | | |-- Assign: = +| | | |-- exp +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- OCTAL_INT: 0 +| | | `-- Semi: ; +| | |-- blockItem +| | | `-- stmt +| | | |-- While: while +| | | |-- L_PAREN: ( +| | | |-- cond +| | | | `-- lOrExp +| | | | `-- lAndExp +| | | | `-- eqExp +| | | | `-- relExp +| | | | |-- relExp +| | | | | `-- addExp +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- lVal +| | | | | `-- Ident: j +| | | | |-- LOp: < +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- lVal +| | | | `-- Ident: n +| | | |-- R_PAREN: ) +| | | `-- stmt +| | | `-- block +| | | |-- L_BRACE: { +| | | |-- blockItem +| | | | `-- stmt +| | | | |-- lVal +| | | | | `-- Ident: ans +| | | | |-- Assign: = +| | | | |-- exp +| | | | | `-- addExp +| | | | | |-- addExp +| | | | | | `-- mulExp +| | | | | | `-- unaryExp +| | | | | | `-- primary +| | | | | | `-- lVal +| | | | | | `-- Ident: ans +| | | | | |-- AddOp: + +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- lVal +| | | | | |-- Ident: B +| | | | | |-- L_BRACK: [ +| | | | | |-- exp +| | | | | | `-- addExp +| | | | | | `-- mulExp +| | | | | | `-- unaryExp +| | | | | | `-- primary +| | | | | | `-- lVal +| | | | | | `-- Ident: i +| | | | | |-- R_BRACK: ] +| | | | | |-- L_BRACK: [ +| | | | | |-- exp +| | | | | | `-- addExp +| | | | | | `-- mulExp +| | | | | | `-- unaryExp +| | | | | | `-- primary +| | | | | | `-- lVal +| | | | | | `-- Ident: j +| | | | | `-- R_BRACK: ] +| | | | `-- Semi: ; +| | | |-- blockItem +| | | | `-- stmt +| | | | |-- lVal +| | | | | `-- Ident: j +| | | | |-- Assign: = +| | | | |-- exp +| | | | | `-- addExp +| | | | | |-- addExp +| | | | | | `-- mulExp +| | | | | | `-- unaryExp +| | | | | | `-- primary +| | | | | | `-- lVal +| | | | | | `-- Ident: j +| | | | | |-- AddOp: + +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- DECIMAL_INT: 1 +| | | | `-- Semi: ; +| | | `-- R_BRACE: } +| | |-- blockItem +| | | `-- stmt +| | | |-- lVal +| | | | `-- Ident: i +| | | |-- Assign: = +| | | |-- exp +| | | | `-- addExp +| | | | |-- addExp +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- lVal +| | | | | `-- Ident: i +| | | | |-- AddOp: + +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- DECIMAL_INT: 1 +| | | `-- Semi: ; +| | `-- R_BRACE: } +| |-- blockItem +| | `-- stmt +| | |-- exp +| | | `-- addExp +| | | `-- mulExp +| | | `-- unaryExp +| | | |-- Ident: stoptime +| | | |-- L_PAREN: ( +| | | `-- R_PAREN: ) +| | `-- Semi: ; +| |-- blockItem +| | `-- stmt +| | |-- exp +| | | `-- addExp +| | | `-- mulExp +| | | `-- unaryExp +| | | |-- Ident: putint +| | | |-- L_PAREN: ( +| | | |-- funcRParams +| | | | `-- exp +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- lVal +| | | | `-- Ident: ans +| | | `-- R_PAREN: ) +| | `-- Semi: ; +| |-- blockItem +| | `-- stmt +| | |-- exp +| | | `-- addExp +| | | `-- mulExp +| | | `-- unaryExp +| | | |-- Ident: putch +| | | |-- L_PAREN: ( +| | | |-- funcRParams +| | | | `-- exp +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- DECIMAL_INT: 10 +| | | `-- R_PAREN: ) +| | `-- Semi: ; +| |-- blockItem +| | `-- stmt +| | `-- returnStmt +| | |-- Return: return +| | |-- exp +| | | `-- addExp +| | | `-- mulExp +| | | `-- unaryExp +| | | `-- primary +| | | `-- OCTAL_INT: 0 +| | `-- Semi: ; +| `-- R_BRACE: } +`-- EOF: + +========== test/test_case/performance/02_mv3.sy ========== +compUnit +|-- program +| |-- decl +| | `-- varDecl +| | |-- bType +| | | `-- Int: int +| | |-- varDef +| | | `-- Ident: x +| | `-- Semi: ; +| |-- decl +| | `-- constDecl +| | |-- Const: const +| | |-- bType +| | | `-- Int: int +| | |-- constDef +| | | |-- Ident: N +| | | |-- Assign: = +| | | `-- constInitVal +| | | `-- constExp +| | | `-- addExp +| | | `-- mulExp +| | | `-- unaryExp +| | | `-- primary +| | | `-- DECIMAL_INT: 2010 +| | `-- Semi: ; +| |-- funcDef +| | |-- funcType +| | | `-- Void: void +| | |-- Ident: mv +| | |-- L_PAREN: ( +| | |-- funcFParams +| | | |-- funcFParam +| | | | |-- bType +| | | | | `-- Int: int +| | | | `-- Ident: n +| | | |-- Comma: , +| | | |-- funcFParam +| | | | |-- bType +| | | | | `-- Int: int +| | | | |-- Ident: A +| | | | |-- L_BRACK: [ +| | | | |-- R_BRACK: ] +| | | | |-- L_BRACK: [ +| | | | |-- exp +| | | | | `-- addExp +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- lVal +| | | | | `-- Ident: N +| | | | `-- R_BRACK: ] +| | | |-- Comma: , +| | | |-- funcFParam +| | | | |-- bType +| | | | | `-- Int: int +| | | | |-- Ident: b +| | | | |-- L_BRACK: [ +| | | | `-- R_BRACK: ] +| | | |-- Comma: , +| | | `-- funcFParam +| | | |-- bType +| | | | `-- Int: int +| | | |-- Ident: res +| | | |-- L_BRACK: [ +| | | `-- R_BRACK: ] +| | |-- R_PAREN: ) +| | `-- block +| | |-- L_BRACE: { +| | |-- blockItem +| | | `-- decl +| | | `-- varDecl +| | | |-- bType +| | | | `-- Int: int +| | | |-- varDef +| | | | `-- Ident: x +| | | |-- Comma: , +| | | |-- varDef +| | | | `-- Ident: y +| | | `-- Semi: ; +| | |-- blockItem +| | | `-- stmt +| | | |-- lVal +| | | | `-- Ident: y +| | | |-- Assign: = +| | | |-- exp +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- OCTAL_INT: 0 +| | | `-- Semi: ; +| | |-- blockItem +| | | `-- stmt +| | | |-- lVal +| | | | `-- Ident: x +| | | |-- Assign: = +| | | |-- exp +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- DECIMAL_INT: 11 +| | | `-- Semi: ; +| | |-- blockItem +| | | `-- decl +| | | `-- varDecl +| | | |-- bType +| | | | `-- Int: int +| | | |-- varDef +| | | | `-- Ident: i +| | | |-- Comma: , +| | | |-- varDef +| | | | `-- Ident: j +| | | `-- Semi: ; +| | |-- blockItem +| | | `-- stmt +| | | |-- lVal +| | | | `-- Ident: i +| | | |-- Assign: = +| | | |-- exp +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- OCTAL_INT: 0 +| | | `-- Semi: ; +| | |-- blockItem +| | | `-- stmt +| | | |-- While: while +| | | |-- L_PAREN: ( +| | | |-- cond +| | | | `-- lOrExp +| | | | `-- lAndExp +| | | | `-- eqExp +| | | | `-- relExp +| | | | |-- relExp +| | | | | `-- addExp +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- lVal +| | | | | `-- Ident: i +| | | | |-- LOp: < +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- lVal +| | | | `-- Ident: n +| | | |-- R_PAREN: ) +| | | `-- stmt +| | | `-- block +| | | |-- L_BRACE: { +| | | |-- blockItem +| | | | `-- stmt +| | | | |-- lVal +| | | | | |-- Ident: res +| | | | | |-- L_BRACK: [ +| | | | | |-- exp +| | | | | | `-- addExp +| | | | | | `-- mulExp +| | | | | | `-- unaryExp +| | | | | | `-- primary +| | | | | | `-- lVal +| | | | | | `-- Ident: i +| | | | | `-- R_BRACK: ] +| | | | |-- Assign: = +| | | | |-- exp +| | | | | `-- addExp +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- OCTAL_INT: 0 +| | | | `-- Semi: ; +| | | |-- blockItem +| | | | `-- stmt +| | | | |-- lVal +| | | | | `-- Ident: i +| | | | |-- Assign: = +| | | | |-- exp +| | | | | `-- addExp +| | | | | |-- addExp +| | | | | | `-- mulExp +| | | | | | `-- unaryExp +| | | | | | `-- primary +| | | | | | `-- lVal +| | | | | | `-- Ident: i +| | | | | |-- AddOp: + +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- DECIMAL_INT: 1 +| | | | `-- Semi: ; +| | | `-- R_BRACE: } +| | |-- blockItem +| | | `-- stmt +| | | |-- lVal +| | | | `-- Ident: i +| | | |-- Assign: = +| | | |-- exp +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- OCTAL_INT: 0 +| | | `-- Semi: ; +| | |-- blockItem +| | | `-- stmt +| | | |-- lVal +| | | | `-- Ident: j +| | | |-- Assign: = +| | | |-- exp +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- OCTAL_INT: 0 +| | | `-- Semi: ; +| | |-- blockItem +| | | `-- stmt +| | | |-- While: while +| | | |-- L_PAREN: ( +| | | |-- cond +| | | | `-- lOrExp +| | | | `-- lAndExp +| | | | `-- eqExp +| | | | `-- relExp +| | | | |-- relExp +| | | | | `-- addExp +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- lVal +| | | | | `-- Ident: i +| | | | |-- LOp: < +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- lVal +| | | | `-- Ident: n +| | | |-- R_PAREN: ) +| | | `-- stmt +| | | `-- block +| | | |-- L_BRACE: { +| | | |-- blockItem +| | | | `-- stmt +| | | | |-- lVal +| | | | | `-- Ident: j +| | | | |-- Assign: = +| | | | |-- exp +| | | | | `-- addExp +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- OCTAL_INT: 0 +| | | | `-- Semi: ; +| | | |-- blockItem +| | | | `-- stmt +| | | | |-- While: while +| | | | |-- L_PAREN: ( +| | | | |-- cond +| | | | | `-- lOrExp +| | | | | `-- lAndExp +| | | | | `-- eqExp +| | | | | `-- relExp +| | | | | |-- relExp +| | | | | | `-- addExp +| | | | | | `-- mulExp +| | | | | | `-- unaryExp +| | | | | | `-- primary +| | | | | | `-- lVal +| | | | | | `-- Ident: j +| | | | | |-- LOp: < +| | | | | `-- addExp +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- lVal +| | | | | `-- Ident: n +| | | | |-- R_PAREN: ) +| | | | `-- stmt +| | | | `-- block +| | | | |-- L_BRACE: { +| | | | |-- blockItem +| | | | | `-- stmt +| | | | | |-- If: if +| | | | | |-- L_PAREN: ( +| | | | | |-- cond +| | | | | | `-- lOrExp +| | | | | | `-- lAndExp +| | | | | | `-- eqExp +| | | | | | |-- eqExp +| | | | | | | `-- relExp +| | | | | | | `-- addExp +| | | | | | | `-- mulExp +| | | | | | | `-- unaryExp +| | | | | | | `-- primary +| | | | | | | `-- lVal +| | | | | | | |-- Ident: A +| | | | | | | |-- L_BRACK: [ +| | | | | | | |-- exp +| | | | | | | | `-- addExp +| | | | | | | | `-- mulExp +| | | | | | | | `-- unaryExp +| | | | | | | | `-- primary +| | | | | | | | `-- lVal +| | | | | | | | `-- Ident: i +| | | | | | | |-- R_BRACK: ] +| | | | | | | |-- L_BRACK: [ +| | | | | | | |-- exp +| | | | | | | | `-- addExp +| | | | | | | | `-- mulExp +| | | | | | | | `-- unaryExp +| | | | | | | | `-- primary +| | | | | | | | `-- lVal +| | | | | | | | `-- Ident: j +| | | | | | | `-- R_BRACK: ] +| | | | | | |-- EqOp: == +| | | | | | `-- relExp +| | | | | | `-- addExp +| | | | | | `-- mulExp +| | | | | | `-- unaryExp +| | | | | | `-- primary +| | | | | | `-- OCTAL_INT: 0 +| | | | | |-- R_PAREN: ) +| | | | | |-- stmt +| | | | | | `-- block +| | | | | | |-- L_BRACE: { +| | | | | | |-- blockItem +| | | | | | | `-- stmt +| | | | | | | |-- lVal +| | | | | | | | `-- Ident: x +| | | | | | | |-- Assign: = +| | | | | | | |-- exp +| | | | | | | | `-- addExp +| | | | | | | | |-- addExp +| | | | | | | | | `-- mulExp +| | | | | | | | | |-- mulExp +| | | | | | | | | | `-- unaryExp +| | | | | | | | | | `-- primary +| | | | | | | | | | `-- lVal +| | | | | | | | | | `-- Ident: x +| | | | | | | | | |-- MulOp: * +| | | | | | | | | `-- unaryExp +| | | | | | | | | `-- primary +| | | | | | | | | `-- lVal +| | | | | | | | | |-- Ident: b +| | | | | | | | | |-- L_BRACK: [ +| | | | | | | | | |-- exp +| | | | | | | | | | `-- addExp +| | | | | | | | | | `-- mulExp +| | | | | | | | | | `-- unaryExp +| | | | | | | | | | `-- primary +| | | | | | | | | | `-- lVal +| | | | | | | | | | `-- Ident: i +| | | | | | | | | `-- R_BRACK: ] +| | | | | | | | |-- AddOp: + +| | | | | | | | `-- mulExp +| | | | | | | | `-- unaryExp +| | | | | | | | `-- primary +| | | | | | | | `-- lVal +| | | | | | | | |-- Ident: b +| | | | | | | | |-- L_BRACK: [ +| | | | | | | | |-- exp +| | | | | | | | | `-- addExp +| | | | | | | | | `-- mulExp +| | | | | | | | | `-- unaryExp +| | | | | | | | | `-- primary +| | | | | | | | | `-- lVal +| | | | | | | | | `-- Ident: j +| | | | | | | | `-- R_BRACK: ] +| | | | | | | `-- Semi: ; +| | | | | | |-- blockItem +| | | | | | | `-- stmt +| | | | | | | |-- lVal +| | | | | | | | `-- Ident: y +| | | | | | | |-- Assign: = +| | | | | | | |-- exp +| | | | | | | | `-- addExp +| | | | | | | | |-- addExp +| | | | | | | | | `-- mulExp +| | | | | | | | | `-- unaryExp +| | | | | | | | | `-- primary +| | | | | | | | | `-- lVal +| | | | | | | | | `-- Ident: y +| | | | | | | | |-- SubOp: - +| | | | | | | | `-- mulExp +| | | | | | | | `-- unaryExp +| | | | | | | | `-- primary +| | | | | | | | `-- lVal +| | | | | | | | `-- Ident: x +| | | | | | | `-- Semi: ; +| | | | | | `-- R_BRACE: } +| | | | | |-- Else: else +| | | | | `-- stmt +| | | | | `-- block +| | | | | |-- L_BRACE: { +| | | | | |-- blockItem +| | | | | | `-- stmt +| | | | | | |-- lVal +| | | | | | | |-- Ident: res +| | | | | | | |-- L_BRACK: [ +| | | | | | | |-- exp +| | | | | | | | `-- addExp +| | | | | | | | `-- mulExp +| | | | | | | | `-- unaryExp +| | | | | | | | `-- primary +| | | | | | | | `-- lVal +| | | | | | | | `-- Ident: i +| | | | | | | `-- R_BRACK: ] +| | | | | | |-- Assign: = +| | | | | | |-- exp +| | | | | | | `-- addExp +| | | | | | | |-- addExp +| | | | | | | | `-- mulExp +| | | | | | | | `-- unaryExp +| | | | | | | | `-- primary +| | | | | | | | `-- lVal +| | | | | | | | |-- Ident: res +| | | | | | | | |-- L_BRACK: [ +| | | | | | | | |-- exp +| | | | | | | | | `-- addExp +| | | | | | | | | `-- mulExp +| | | | | | | | | `-- unaryExp +| | | | | | | | | `-- primary +| | | | | | | | | `-- lVal +| | | | | | | | | `-- Ident: i +| | | | | | | | `-- R_BRACK: ] +| | | | | | | |-- AddOp: + +| | | | | | | `-- mulExp +| | | | | | | |-- mulExp +| | | | | | | | `-- unaryExp +| | | | | | | | `-- primary +| | | | | | | | `-- lVal +| | | | | | | | |-- Ident: A +| | | | | | | | |-- L_BRACK: [ +| | | | | | | | |-- exp +| | | | | | | | | `-- addExp +| | | | | | | | | `-- mulExp +| | | | | | | | | `-- unaryExp +| | | | | | | | | `-- primary +| | | | | | | | | `-- lVal +| | | | | | | | | `-- Ident: i +| | | | | | | | |-- R_BRACK: ] +| | | | | | | | |-- L_BRACK: [ +| | | | | | | | |-- exp +| | | | | | | | | `-- addExp +| | | | | | | | | `-- mulExp +| | | | | | | | | `-- unaryExp +| | | | | | | | | `-- primary +| | | | | | | | | `-- lVal +| | | | | | | | | `-- Ident: j +| | | | | | | | `-- R_BRACK: ] +| | | | | | | |-- MulOp: * +| | | | | | | `-- unaryExp +| | | | | | | `-- primary +| | | | | | | `-- lVal +| | | | | | | |-- Ident: b +| | | | | | | |-- L_BRACK: [ +| | | | | | | |-- exp +| | | | | | | | `-- addExp +| | | | | | | | `-- mulExp +| | | | | | | | `-- unaryExp +| | | | | | | | `-- primary +| | | | | | | | `-- lVal +| | | | | | | | `-- Ident: j +| | | | | | | `-- R_BRACK: ] +| | | | | | `-- Semi: ; +| | | | | `-- R_BRACE: } +| | | | |-- blockItem +| | | | | `-- stmt +| | | | | |-- lVal +| | | | | | `-- Ident: j +| | | | | |-- Assign: = +| | | | | |-- exp +| | | | | | `-- addExp +| | | | | | |-- addExp +| | | | | | | `-- mulExp +| | | | | | | `-- unaryExp +| | | | | | | `-- primary +| | | | | | | `-- lVal +| | | | | | | `-- Ident: j +| | | | | | |-- AddOp: + +| | | | | | `-- mulExp +| | | | | | `-- unaryExp +| | | | | | `-- primary +| | | | | | `-- DECIMAL_INT: 1 +| | | | | `-- Semi: ; +| | | | `-- R_BRACE: } +| | | |-- blockItem +| | | | `-- stmt +| | | | |-- lVal +| | | | | `-- Ident: i +| | | | |-- Assign: = +| | | | |-- exp +| | | | | `-- addExp +| | | | | |-- addExp +| | | | | | `-- mulExp +| | | | | | `-- unaryExp +| | | | | | `-- primary +| | | | | | `-- lVal +| | | | | | `-- Ident: i +| | | | | |-- AddOp: + +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- DECIMAL_INT: 1 +| | | | `-- Semi: ; +| | | `-- R_BRACE: } +| | `-- R_BRACE: } +| |-- decl +| | `-- varDecl +| | |-- bType +| | | `-- Int: int +| | |-- varDef +| | | |-- Ident: A +| | | |-- L_BRACK: [ +| | | |-- constExp +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- lVal +| | | | `-- Ident: N +| | | |-- R_BRACK: ] +| | | |-- L_BRACK: [ +| | | |-- constExp +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- lVal +| | | | `-- Ident: N +| | | `-- R_BRACK: ] +| | `-- Semi: ; +| |-- decl +| | `-- varDecl +| | |-- bType +| | | `-- Int: int +| | |-- varDef +| | | |-- Ident: B +| | | |-- L_BRACK: [ +| | | |-- constExp +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- lVal +| | | | `-- Ident: N +| | | `-- R_BRACK: ] +| | `-- Semi: ; +| |-- decl +| | `-- varDecl +| | |-- bType +| | | `-- Int: int +| | |-- varDef +| | | |-- Ident: C +| | | |-- L_BRACK: [ +| | | |-- constExp +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- lVal +| | | | `-- Ident: N +| | | `-- R_BRACK: ] +| | `-- Semi: ; +| `-- funcDef +| |-- funcType +| | `-- Int: int +| |-- Ident: main +| |-- L_PAREN: ( +| |-- R_PAREN: ) +| `-- block +| |-- L_BRACE: { +| |-- blockItem +| | `-- decl +| | `-- varDecl +| | |-- bType +| | | `-- Int: int +| | |-- varDef +| | | |-- Ident: n +| | | |-- Assign: = +| | | `-- initVal +| | | `-- exp +| | | `-- addExp +| | | `-- mulExp +| | | `-- unaryExp +| | | |-- Ident: getint +| | | |-- L_PAREN: ( +| | | `-- R_PAREN: ) +| | `-- Semi: ; +| |-- blockItem +| | `-- decl +| | `-- varDecl +| | |-- bType +| | | `-- Int: int +| | |-- varDef +| | | `-- Ident: i +| | |-- Comma: , +| | |-- varDef +| | | `-- Ident: j +| | `-- Semi: ; +| |-- blockItem +| | `-- stmt +| | |-- lVal +| | | `-- Ident: i +| | |-- Assign: = +| | |-- exp +| | | `-- addExp +| | | `-- mulExp +| | | `-- unaryExp +| | | `-- primary +| | | `-- OCTAL_INT: 0 +| | `-- Semi: ; +| |-- blockItem +| | `-- stmt +| | |-- While: while +| | |-- L_PAREN: ( +| | |-- cond +| | | `-- lOrExp +| | | `-- lAndExp +| | | `-- eqExp +| | | `-- relExp +| | | |-- relExp +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- lVal +| | | | `-- Ident: i +| | | |-- LOp: < +| | | `-- addExp +| | | `-- mulExp +| | | `-- unaryExp +| | | `-- primary +| | | `-- lVal +| | | `-- Ident: n +| | |-- R_PAREN: ) +| | `-- stmt +| | `-- block +| | |-- L_BRACE: { +| | |-- blockItem +| | | `-- stmt +| | | |-- lVal +| | | | `-- Ident: j +| | | |-- Assign: = +| | | |-- exp +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- OCTAL_INT: 0 +| | | `-- Semi: ; +| | |-- blockItem +| | | `-- stmt +| | | |-- While: while +| | | |-- L_PAREN: ( +| | | |-- cond +| | | | `-- lOrExp +| | | | `-- lAndExp +| | | | `-- eqExp +| | | | `-- relExp +| | | | |-- relExp +| | | | | `-- addExp +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- lVal +| | | | | `-- Ident: j +| | | | |-- LOp: < +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- lVal +| | | | `-- Ident: n +| | | |-- R_PAREN: ) +| | | `-- stmt +| | | `-- block +| | | |-- L_BRACE: { +| | | |-- blockItem +| | | | `-- stmt +| | | | |-- lVal +| | | | | |-- Ident: A +| | | | | |-- L_BRACK: [ +| | | | | |-- exp +| | | | | | `-- addExp +| | | | | | `-- mulExp +| | | | | | `-- unaryExp +| | | | | | `-- primary +| | | | | | `-- lVal +| | | | | | `-- Ident: i +| | | | | |-- R_BRACK: ] +| | | | | |-- L_BRACK: [ +| | | | | |-- exp +| | | | | | `-- addExp +| | | | | | `-- mulExp +| | | | | | `-- unaryExp +| | | | | | `-- primary +| | | | | | `-- lVal +| | | | | | `-- Ident: j +| | | | | `-- R_BRACK: ] +| | | | |-- Assign: = +| | | | |-- exp +| | | | | `-- addExp +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | |-- Ident: getint +| | | | | |-- L_PAREN: ( +| | | | | `-- R_PAREN: ) +| | | | `-- Semi: ; +| | | |-- blockItem +| | | | `-- stmt +| | | | |-- lVal +| | | | | `-- Ident: j +| | | | |-- Assign: = +| | | | |-- exp +| | | | | `-- addExp +| | | | | |-- addExp +| | | | | | `-- mulExp +| | | | | | `-- unaryExp +| | | | | | `-- primary +| | | | | | `-- lVal +| | | | | | `-- Ident: j +| | | | | |-- AddOp: + +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- DECIMAL_INT: 1 +| | | | `-- Semi: ; +| | | `-- R_BRACE: } +| | |-- blockItem +| | | `-- stmt +| | | |-- lVal +| | | | `-- Ident: i +| | | |-- Assign: = +| | | |-- exp +| | | | `-- addExp +| | | | |-- addExp +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- lVal +| | | | | `-- Ident: i +| | | | |-- AddOp: + +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- DECIMAL_INT: 1 +| | | `-- Semi: ; +| | `-- R_BRACE: } +| |-- blockItem +| | `-- stmt +| | |-- lVal +| | | `-- Ident: i +| | |-- Assign: = +| | |-- exp +| | | `-- addExp +| | | `-- mulExp +| | | `-- unaryExp +| | | `-- primary +| | | `-- OCTAL_INT: 0 +| | `-- Semi: ; +| |-- blockItem +| | `-- stmt +| | |-- While: while +| | |-- L_PAREN: ( +| | |-- cond +| | | `-- lOrExp +| | | `-- lAndExp +| | | `-- eqExp +| | | `-- relExp +| | | |-- relExp +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- lVal +| | | | `-- Ident: i +| | | |-- LOp: < +| | | `-- addExp +| | | `-- mulExp +| | | `-- unaryExp +| | | `-- primary +| | | `-- lVal +| | | `-- Ident: n +| | |-- R_PAREN: ) +| | `-- stmt +| | `-- block +| | |-- L_BRACE: { +| | |-- blockItem +| | | `-- stmt +| | | |-- lVal +| | | | |-- Ident: B +| | | | |-- L_BRACK: [ +| | | | |-- exp +| | | | | `-- addExp +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- lVal +| | | | | `-- Ident: i +| | | | `-- R_BRACK: ] +| | | |-- Assign: = +| | | |-- exp +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | |-- Ident: getint +| | | | |-- L_PAREN: ( +| | | | `-- R_PAREN: ) +| | | `-- Semi: ; +| | |-- blockItem +| | | `-- stmt +| | | |-- lVal +| | | | `-- Ident: i +| | | |-- Assign: = +| | | |-- exp +| | | | `-- addExp +| | | | |-- addExp +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- lVal +| | | | | `-- Ident: i +| | | | |-- AddOp: + +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- DECIMAL_INT: 1 +| | | `-- Semi: ; +| | `-- R_BRACE: } +| |-- blockItem +| | `-- stmt +| | |-- exp +| | | `-- addExp +| | | `-- mulExp +| | | `-- unaryExp +| | | |-- Ident: starttime +| | | |-- L_PAREN: ( +| | | `-- R_PAREN: ) +| | `-- Semi: ; +| |-- blockItem +| | `-- stmt +| | |-- lVal +| | | `-- Ident: i +| | |-- Assign: = +| | |-- exp +| | | `-- addExp +| | | `-- mulExp +| | | `-- unaryExp +| | | `-- primary +| | | `-- OCTAL_INT: 0 +| | `-- Semi: ; +| |-- blockItem +| | `-- stmt +| | |-- While: while +| | |-- L_PAREN: ( +| | |-- cond +| | | `-- lOrExp +| | | `-- lAndExp +| | | `-- eqExp +| | | `-- relExp +| | | |-- relExp +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- lVal +| | | | `-- Ident: i +| | | |-- LOp: < +| | | `-- addExp +| | | `-- mulExp +| | | `-- unaryExp +| | | `-- primary +| | | `-- DECIMAL_INT: 50 +| | |-- R_PAREN: ) +| | `-- stmt +| | `-- block +| | |-- L_BRACE: { +| | |-- blockItem +| | | `-- stmt +| | | |-- exp +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | |-- Ident: mv +| | | | |-- L_PAREN: ( +| | | | |-- funcRParams +| | | | | |-- exp +| | | | | | `-- addExp +| | | | | | `-- mulExp +| | | | | | `-- unaryExp +| | | | | | `-- primary +| | | | | | `-- lVal +| | | | | | `-- Ident: n +| | | | | |-- Comma: , +| | | | | |-- exp +| | | | | | `-- addExp +| | | | | | `-- mulExp +| | | | | | `-- unaryExp +| | | | | | `-- primary +| | | | | | `-- lVal +| | | | | | `-- Ident: A +| | | | | |-- Comma: , +| | | | | |-- exp +| | | | | | `-- addExp +| | | | | | `-- mulExp +| | | | | | `-- unaryExp +| | | | | | `-- primary +| | | | | | `-- lVal +| | | | | | `-- Ident: B +| | | | | |-- Comma: , +| | | | | `-- exp +| | | | | `-- addExp +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- lVal +| | | | | `-- Ident: C +| | | | `-- R_PAREN: ) +| | | `-- Semi: ; +| | |-- blockItem +| | | `-- stmt +| | | |-- exp +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | |-- Ident: mv +| | | | |-- L_PAREN: ( +| | | | |-- funcRParams +| | | | | |-- exp +| | | | | | `-- addExp +| | | | | | `-- mulExp +| | | | | | `-- unaryExp +| | | | | | `-- primary +| | | | | | `-- lVal +| | | | | | `-- Ident: n +| | | | | |-- Comma: , +| | | | | |-- exp +| | | | | | `-- addExp +| | | | | | `-- mulExp +| | | | | | `-- unaryExp +| | | | | | `-- primary +| | | | | | `-- lVal +| | | | | | `-- Ident: A +| | | | | |-- Comma: , +| | | | | |-- exp +| | | | | | `-- addExp +| | | | | | `-- mulExp +| | | | | | `-- unaryExp +| | | | | | `-- primary +| | | | | | `-- lVal +| | | | | | `-- Ident: C +| | | | | |-- Comma: , +| | | | | `-- exp +| | | | | `-- addExp +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- lVal +| | | | | `-- Ident: B +| | | | `-- R_PAREN: ) +| | | `-- Semi: ; +| | |-- blockItem +| | | `-- stmt +| | | |-- lVal +| | | | `-- Ident: i +| | | |-- Assign: = +| | | |-- exp +| | | | `-- addExp +| | | | |-- addExp +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- lVal +| | | | | `-- Ident: i +| | | | |-- AddOp: + +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- DECIMAL_INT: 1 +| | | `-- Semi: ; +| | `-- R_BRACE: } +| |-- blockItem +| | `-- stmt +| | |-- exp +| | | `-- addExp +| | | `-- mulExp +| | | `-- unaryExp +| | | |-- Ident: stoptime +| | | |-- L_PAREN: ( +| | | `-- R_PAREN: ) +| | `-- Semi: ; +| |-- blockItem +| | `-- stmt +| | |-- exp +| | | `-- addExp +| | | `-- mulExp +| | | `-- unaryExp +| | | |-- Ident: putarray +| | | |-- L_PAREN: ( +| | | |-- funcRParams +| | | | |-- exp +| | | | | `-- addExp +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- lVal +| | | | | `-- Ident: n +| | | | |-- Comma: , +| | | | `-- exp +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- lVal +| | | | `-- Ident: C +| | | `-- R_PAREN: ) +| | `-- Semi: ; +| |-- blockItem +| | `-- stmt +| | `-- returnStmt +| | |-- Return: return +| | |-- exp +| | | `-- addExp +| | | `-- mulExp +| | | `-- unaryExp +| | | `-- primary +| | | `-- OCTAL_INT: 0 +| | `-- Semi: ; +| `-- R_BRACE: } +`-- EOF: + +========== test/test_case/performance/03_sort1.sy ========== +compUnit +|-- program +| |-- decl +| | `-- constDecl +| | |-- Const: const +| | |-- bType +| | | `-- Int: int +| | |-- constDef +| | | |-- Ident: base +| | | |-- Assign: = +| | | `-- constInitVal +| | | `-- constExp +| | | `-- addExp +| | | `-- mulExp +| | | `-- unaryExp +| | | `-- primary +| | | `-- DECIMAL_INT: 16 +| | `-- Semi: ; +| |-- funcDef +| | |-- funcType +| | | `-- Int: int +| | |-- Ident: getMaxNum +| | |-- L_PAREN: ( +| | |-- funcFParams +| | | |-- funcFParam +| | | | |-- bType +| | | | | `-- Int: int +| | | | `-- Ident: n +| | | |-- Comma: , +| | | `-- funcFParam +| | | |-- bType +| | | | `-- Int: int +| | | |-- Ident: arr +| | | |-- L_BRACK: [ +| | | `-- R_BRACK: ] +| | |-- R_PAREN: ) +| | `-- block +| | |-- L_BRACE: { +| | |-- blockItem +| | | `-- decl +| | | `-- varDecl +| | | |-- bType +| | | | `-- Int: int +| | | |-- varDef +| | | | |-- Ident: ret +| | | | |-- Assign: = +| | | | `-- initVal +| | | | `-- exp +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- OCTAL_INT: 0 +| | | `-- Semi: ; +| | |-- blockItem +| | | `-- decl +| | | `-- varDecl +| | | |-- bType +| | | | `-- Int: int +| | | |-- varDef +| | | | |-- Ident: i +| | | | |-- Assign: = +| | | | `-- initVal +| | | | `-- exp +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- OCTAL_INT: 0 +| | | `-- Semi: ; +| | |-- blockItem +| | | `-- stmt +| | | |-- While: while +| | | |-- L_PAREN: ( +| | | |-- cond +| | | | `-- lOrExp +| | | | `-- lAndExp +| | | | `-- eqExp +| | | | `-- relExp +| | | | |-- relExp +| | | | | `-- addExp +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- lVal +| | | | | `-- Ident: i +| | | | |-- LOp: < +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- lVal +| | | | `-- Ident: n +| | | |-- R_PAREN: ) +| | | `-- stmt +| | | `-- block +| | | |-- L_BRACE: { +| | | |-- blockItem +| | | | `-- stmt +| | | | |-- If: if +| | | | |-- L_PAREN: ( +| | | | |-- cond +| | | | | `-- lOrExp +| | | | | `-- lAndExp +| | | | | `-- eqExp +| | | | | `-- relExp +| | | | | |-- relExp +| | | | | | `-- addExp +| | | | | | `-- mulExp +| | | | | | `-- unaryExp +| | | | | | `-- primary +| | | | | | `-- lVal +| | | | | | |-- Ident: arr +| | | | | | |-- L_BRACK: [ +| | | | | | |-- exp +| | | | | | | `-- addExp +| | | | | | | `-- mulExp +| | | | | | | `-- unaryExp +| | | | | | | `-- primary +| | | | | | | `-- lVal +| | | | | | | `-- Ident: i +| | | | | | `-- R_BRACK: ] +| | | | | |-- GOp: > +| | | | | `-- addExp +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- lVal +| | | | | `-- Ident: ret +| | | | |-- R_PAREN: ) +| | | | `-- stmt +| | | | |-- lVal +| | | | | `-- Ident: ret +| | | | |-- Assign: = +| | | | |-- exp +| | | | | `-- addExp +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- lVal +| | | | | |-- Ident: arr +| | | | | |-- L_BRACK: [ +| | | | | |-- exp +| | | | | | `-- addExp +| | | | | | `-- mulExp +| | | | | | `-- unaryExp +| | | | | | `-- primary +| | | | | | `-- lVal +| | | | | | `-- Ident: i +| | | | | `-- R_BRACK: ] +| | | | `-- Semi: ; +| | | |-- blockItem +| | | | `-- stmt +| | | | |-- lVal +| | | | | `-- Ident: i +| | | | |-- Assign: = +| | | | |-- exp +| | | | | `-- addExp +| | | | | |-- addExp +| | | | | | `-- mulExp +| | | | | | `-- unaryExp +| | | | | | `-- primary +| | | | | | `-- lVal +| | | | | | `-- Ident: i +| | | | | |-- AddOp: + +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- DECIMAL_INT: 1 +| | | | `-- Semi: ; +| | | `-- R_BRACE: } +| | |-- blockItem +| | | `-- stmt +| | | `-- returnStmt +| | | |-- Return: return +| | | |-- exp +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- lVal +| | | | `-- Ident: ret +| | | `-- Semi: ; +| | `-- R_BRACE: } +| |-- funcDef +| | |-- funcType +| | | `-- Int: int +| | |-- Ident: getNumPos +| | |-- L_PAREN: ( +| | |-- funcFParams +| | | |-- funcFParam +| | | | |-- bType +| | | | | `-- Int: int +| | | | `-- Ident: num +| | | |-- Comma: , +| | | `-- funcFParam +| | | |-- bType +| | | | `-- Int: int +| | | `-- Ident: pos +| | |-- R_PAREN: ) +| | `-- block +| | |-- L_BRACE: { +| | |-- blockItem +| | | `-- decl +| | | `-- varDecl +| | | |-- bType +| | | | `-- Int: int +| | | |-- varDef +| | | | |-- Ident: tmp +| | | | |-- Assign: = +| | | | `-- initVal +| | | | `-- exp +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- DECIMAL_INT: 1 +| | | `-- Semi: ; +| | |-- blockItem +| | | `-- decl +| | | `-- varDecl +| | | |-- bType +| | | | `-- Int: int +| | | |-- varDef +| | | | |-- Ident: i +| | | | |-- Assign: = +| | | | `-- initVal +| | | | `-- exp +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- OCTAL_INT: 0 +| | | `-- Semi: ; +| | |-- blockItem +| | | `-- stmt +| | | |-- While: while +| | | |-- L_PAREN: ( +| | | |-- cond +| | | | `-- lOrExp +| | | | `-- lAndExp +| | | | `-- eqExp +| | | | `-- relExp +| | | | |-- relExp +| | | | | `-- addExp +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- lVal +| | | | | `-- Ident: i +| | | | |-- LOp: < +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- lVal +| | | | `-- Ident: pos +| | | |-- R_PAREN: ) +| | | `-- stmt +| | | `-- block +| | | |-- L_BRACE: { +| | | |-- blockItem +| | | | `-- stmt +| | | | |-- lVal +| | | | | `-- Ident: num +| | | | |-- Assign: = +| | | | |-- exp +| | | | | `-- addExp +| | | | | `-- mulExp +| | | | | |-- mulExp +| | | | | | `-- unaryExp +| | | | | | `-- primary +| | | | | | `-- lVal +| | | | | | `-- Ident: num +| | | | | |-- DivOp: / +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- lVal +| | | | | `-- Ident: base +| | | | `-- Semi: ; +| | | |-- blockItem +| | | | `-- stmt +| | | | |-- lVal +| | | | | `-- Ident: i +| | | | |-- Assign: = +| | | | |-- exp +| | | | | `-- addExp +| | | | | |-- addExp +| | | | | | `-- mulExp +| | | | | | `-- unaryExp +| | | | | | `-- primary +| | | | | | `-- lVal +| | | | | | `-- Ident: i +| | | | | |-- AddOp: + +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- DECIMAL_INT: 1 +| | | | `-- Semi: ; +| | | `-- R_BRACE: } +| | |-- blockItem +| | | `-- stmt +| | | `-- returnStmt +| | | |-- Return: return +| | | |-- exp +| | | | `-- addExp +| | | | `-- mulExp +| | | | |-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- lVal +| | | | | `-- Ident: num +| | | | |-- QuoOp: % +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- lVal +| | | | `-- Ident: base +| | | `-- Semi: ; +| | `-- R_BRACE: } +| |-- funcDef +| | |-- funcType +| | | `-- Void: void +| | |-- Ident: radixSort +| | |-- L_PAREN: ( +| | |-- funcFParams +| | | |-- funcFParam +| | | | |-- bType +| | | | | `-- Int: int +| | | | `-- Ident: bitround +| | | |-- Comma: , +| | | |-- funcFParam +| | | | |-- bType +| | | | | `-- Int: int +| | | | |-- Ident: a +| | | | |-- L_BRACK: [ +| | | | `-- R_BRACK: ] +| | | |-- Comma: , +| | | |-- funcFParam +| | | | |-- bType +| | | | | `-- Int: int +| | | | `-- Ident: l +| | | |-- Comma: , +| | | `-- funcFParam +| | | |-- bType +| | | | `-- Int: int +| | | `-- Ident: r +| | |-- R_PAREN: ) +| | `-- block +| | |-- L_BRACE: { +| | |-- blockItem +| | | `-- decl +| | | `-- varDecl +| | | |-- bType +| | | | `-- Int: int +| | | |-- varDef +| | | | |-- Ident: head +| | | | |-- L_BRACK: [ +| | | | |-- constExp +| | | | | `-- addExp +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- lVal +| | | | | `-- Ident: base +| | | | |-- R_BRACK: ] +| | | | |-- Assign: = +| | | | `-- initVal +| | | | |-- L_BRACE: { +| | | | `-- R_BRACE: } +| | | `-- Semi: ; +| | |-- blockItem +| | | `-- decl +| | | `-- varDecl +| | | |-- bType +| | | | `-- Int: int +| | | |-- varDef +| | | | |-- Ident: tail +| | | | |-- L_BRACK: [ +| | | | |-- constExp +| | | | | `-- addExp +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- lVal +| | | | | `-- Ident: base +| | | | |-- R_BRACK: ] +| | | | |-- Assign: = +| | | | `-- initVal +| | | | |-- L_BRACE: { +| | | | `-- R_BRACE: } +| | | `-- Semi: ; +| | |-- blockItem +| | | `-- decl +| | | `-- varDecl +| | | |-- bType +| | | | `-- Int: int +| | | |-- varDef +| | | | |-- Ident: cnt +| | | | |-- L_BRACK: [ +| | | | |-- constExp +| | | | | `-- addExp +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- lVal +| | | | | `-- Ident: base +| | | | |-- R_BRACK: ] +| | | | |-- Assign: = +| | | | `-- initVal +| | | | |-- L_BRACE: { +| | | | `-- R_BRACE: } +| | | `-- Semi: ; +| | |-- blockItem +| | | `-- stmt +| | | |-- If: if +| | | |-- L_PAREN: ( +| | | |-- cond +| | | | `-- lOrExp +| | | | |-- lOrExp +| | | | | `-- lAndExp +| | | | | `-- eqExp +| | | | | |-- eqExp +| | | | | | `-- relExp +| | | | | | `-- addExp +| | | | | | `-- mulExp +| | | | | | `-- unaryExp +| | | | | | `-- primary +| | | | | | `-- lVal +| | | | | | `-- Ident: bitround +| | | | | |-- EqOp: == +| | | | | `-- relExp +| | | | | `-- addExp +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | |-- unaryOp +| | | | | | `-- SubOp: - +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- DECIMAL_INT: 1 +| | | | |-- OrOp: || +| | | | `-- lAndExp +| | | | `-- eqExp +| | | | `-- relExp +| | | | |-- relExp +| | | | | `-- addExp +| | | | | |-- addExp +| | | | | | `-- mulExp +| | | | | | `-- unaryExp +| | | | | | `-- primary +| | | | | | `-- lVal +| | | | | | `-- Ident: l +| | | | | |-- AddOp: + +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- DECIMAL_INT: 1 +| | | | |-- GeOp: >= +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- lVal +| | | | `-- Ident: r +| | | |-- R_PAREN: ) +| | | `-- stmt +| | | `-- returnStmt +| | | |-- Return: return +| | | `-- Semi: ; +| | |-- blockItem +| | | `-- stmt +| | | `-- block +| | | |-- L_BRACE: { +| | | |-- blockItem +| | | | `-- decl +| | | | `-- varDecl +| | | | |-- bType +| | | | | `-- Int: int +| | | | |-- varDef +| | | | | |-- Ident: i +| | | | | |-- Assign: = +| | | | | `-- initVal +| | | | | `-- exp +| | | | | `-- addExp +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- lVal +| | | | | `-- Ident: l +| | | | `-- Semi: ; +| | | |-- blockItem +| | | | `-- stmt +| | | | |-- While: while +| | | | |-- L_PAREN: ( +| | | | |-- cond +| | | | | `-- lOrExp +| | | | | `-- lAndExp +| | | | | `-- eqExp +| | | | | `-- relExp +| | | | | |-- relExp +| | | | | | `-- addExp +| | | | | | `-- mulExp +| | | | | | `-- unaryExp +| | | | | | `-- primary +| | | | | | `-- lVal +| | | | | | `-- Ident: i +| | | | | |-- LOp: < +| | | | | `-- addExp +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- lVal +| | | | | `-- Ident: r +| | | | |-- R_PAREN: ) +| | | | `-- stmt +| | | | `-- block +| | | | |-- L_BRACE: { +| | | | |-- blockItem +| | | | | `-- stmt +| | | | | |-- lVal +| | | | | | |-- Ident: cnt +| | | | | | |-- L_BRACK: [ +| | | | | | |-- exp +| | | | | | | `-- addExp +| | | | | | | `-- mulExp +| | | | | | | `-- unaryExp +| | | | | | | |-- Ident: getNumPos +| | | | | | | |-- L_PAREN: ( +| | | | | | | |-- funcRParams +| | | | | | | | |-- exp +| | | | | | | | | `-- addExp +| | | | | | | | | `-- mulExp +| | | | | | | | | `-- unaryExp +| | | | | | | | | `-- primary +| | | | | | | | | `-- lVal +| | | | | | | | | |-- Ident: a +| | | | | | | | | |-- L_BRACK: [ +| | | | | | | | | |-- exp +| | | | | | | | | | `-- addExp +| | | | | | | | | | `-- mulExp +| | | | | | | | | | `-- unaryExp +| | | | | | | | | | `-- primary +| | | | | | | | | | `-- lVal +| | | | | | | | | | `-- Ident: i +| | | | | | | | | `-- R_BRACK: ] +| | | | | | | | |-- Comma: , +| | | | | | | | `-- exp +| | | | | | | | `-- addExp +| | | | | | | | `-- mulExp +| | | | | | | | `-- unaryExp +| | | | | | | | `-- primary +| | | | | | | | `-- lVal +| | | | | | | | `-- Ident: bitround +| | | | | | | `-- R_PAREN: ) +| | | | | | `-- R_BRACK: ] +| | | | | |-- Assign: = +| | | | | |-- exp +| | | | | | `-- addExp +| | | | | | |-- addExp +| | | | | | | `-- mulExp +| | | | | | | `-- unaryExp +| | | | | | | `-- primary +| | | | | | | `-- lVal +| | | | | | | |-- Ident: cnt +| | | | | | | |-- L_BRACK: [ +| | | | | | | |-- exp +| | | | | | | | `-- addExp +| | | | | | | | `-- mulExp +| | | | | | | | `-- unaryExp +| | | | | | | | |-- Ident: getNumPos +| | | | | | | | |-- L_PAREN: ( +| | | | | | | | |-- funcRParams +| | | | | | | | | |-- exp +| | | | | | | | | | `-- addExp +| | | | | | | | | | `-- mulExp +| | | | | | | | | | `-- unaryExp +| | | | | | | | | | `-- primary +| | | | | | | | | | `-- lVal +| | | | | | | | | | |-- Ident: a +| | | | | | | | | | |-- L_BRACK: [ +| | | | | | | | | | |-- exp +| | | | | | | | | | | `-- addExp +| | | | | | | | | | | `-- mulExp +| | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | `-- primary +| | | | | | | | | | | `-- lVal +| | | | | | | | | | | `-- Ident: i +| | | | | | | | | | `-- R_BRACK: ] +| | | | | | | | | |-- Comma: , +| | | | | | | | | `-- exp +| | | | | | | | | `-- addExp +| | | | | | | | | `-- mulExp +| | | | | | | | | `-- unaryExp +| | | | | | | | | `-- primary +| | | | | | | | | `-- lVal +| | | | | | | | | `-- Ident: bitround +| | | | | | | | `-- R_PAREN: ) +| | | | | | | `-- R_BRACK: ] +| | | | | | |-- AddOp: + +| | | | | | `-- mulExp +| | | | | | `-- unaryExp +| | | | | | `-- primary +| | | | | | `-- DECIMAL_INT: 1 +| | | | | `-- Semi: ; +| | | | |-- blockItem +| | | | | `-- stmt +| | | | | |-- lVal +| | | | | | `-- Ident: i +| | | | | |-- Assign: = +| | | | | |-- exp +| | | | | | `-- addExp +| | | | | | |-- addExp +| | | | | | | `-- mulExp +| | | | | | | `-- unaryExp +| | | | | | | `-- primary +| | | | | | | `-- lVal +| | | | | | | `-- Ident: i +| | | | | | |-- AddOp: + +| | | | | | `-- mulExp +| | | | | | `-- unaryExp +| | | | | | `-- primary +| | | | | | `-- DECIMAL_INT: 1 +| | | | | `-- Semi: ; +| | | | `-- R_BRACE: } +| | | |-- blockItem +| | | | `-- stmt +| | | | |-- lVal +| | | | | |-- Ident: head +| | | | | |-- L_BRACK: [ +| | | | | |-- exp +| | | | | | `-- addExp +| | | | | | `-- mulExp +| | | | | | `-- unaryExp +| | | | | | `-- primary +| | | | | | `-- OCTAL_INT: 0 +| | | | | `-- R_BRACK: ] +| | | | |-- Assign: = +| | | | |-- exp +| | | | | `-- addExp +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- lVal +| | | | | `-- Ident: l +| | | | `-- Semi: ; +| | | |-- blockItem +| | | | `-- stmt +| | | | |-- lVal +| | | | | |-- Ident: tail +| | | | | |-- L_BRACK: [ +| | | | | |-- exp +| | | | | | `-- addExp +| | | | | | `-- mulExp +| | | | | | `-- unaryExp +| | | | | | `-- primary +| | | | | | `-- OCTAL_INT: 0 +| | | | | `-- R_BRACK: ] +| | | | |-- Assign: = +| | | | |-- exp +| | | | | `-- addExp +| | | | | |-- addExp +| | | | | | `-- mulExp +| | | | | | `-- unaryExp +| | | | | | `-- primary +| | | | | | `-- lVal +| | | | | | `-- Ident: l +| | | | | |-- AddOp: + +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- lVal +| | | | | |-- Ident: cnt +| | | | | |-- L_BRACK: [ +| | | | | |-- exp +| | | | | | `-- addExp +| | | | | | `-- mulExp +| | | | | | `-- unaryExp +| | | | | | `-- primary +| | | | | | `-- OCTAL_INT: 0 +| | | | | `-- R_BRACK: ] +| | | | `-- Semi: ; +| | | |-- blockItem +| | | | `-- stmt +| | | | |-- lVal +| | | | | `-- Ident: i +| | | | |-- Assign: = +| | | | |-- exp +| | | | | `-- addExp +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- DECIMAL_INT: 1 +| | | | `-- Semi: ; +| | | |-- blockItem +| | | | `-- stmt +| | | | |-- While: while +| | | | |-- L_PAREN: ( +| | | | |-- cond +| | | | | `-- lOrExp +| | | | | `-- lAndExp +| | | | | `-- eqExp +| | | | | `-- relExp +| | | | | |-- relExp +| | | | | | `-- addExp +| | | | | | `-- mulExp +| | | | | | `-- unaryExp +| | | | | | `-- primary +| | | | | | `-- lVal +| | | | | | `-- Ident: i +| | | | | |-- LOp: < +| | | | | `-- addExp +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- lVal +| | | | | `-- Ident: base +| | | | |-- R_PAREN: ) +| | | | `-- stmt +| | | | `-- block +| | | | |-- L_BRACE: { +| | | | |-- blockItem +| | | | | `-- stmt +| | | | | |-- lVal +| | | | | | |-- Ident: head +| | | | | | |-- L_BRACK: [ +| | | | | | |-- exp +| | | | | | | `-- addExp +| | | | | | | `-- mulExp +| | | | | | | `-- unaryExp +| | | | | | | `-- primary +| | | | | | | `-- lVal +| | | | | | | `-- Ident: i +| | | | | | `-- R_BRACK: ] +| | | | | |-- Assign: = +| | | | | |-- exp +| | | | | | `-- addExp +| | | | | | `-- mulExp +| | | | | | `-- unaryExp +| | | | | | `-- primary +| | | | | | `-- lVal +| | | | | | |-- Ident: tail +| | | | | | |-- L_BRACK: [ +| | | | | | |-- exp +| | | | | | | `-- addExp +| | | | | | | |-- addExp +| | | | | | | | `-- mulExp +| | | | | | | | `-- unaryExp +| | | | | | | | `-- primary +| | | | | | | | `-- lVal +| | | | | | | | `-- Ident: i +| | | | | | | |-- SubOp: - +| | | | | | | `-- mulExp +| | | | | | | `-- unaryExp +| | | | | | | `-- primary +| | | | | | | `-- DECIMAL_INT: 1 +| | | | | | `-- R_BRACK: ] +| | | | | `-- Semi: ; +| | | | |-- blockItem +| | | | | `-- stmt +| | | | | |-- lVal +| | | | | | |-- Ident: tail +| | | | | | |-- L_BRACK: [ +| | | | | | |-- exp +| | | | | | | `-- addExp +| | | | | | | `-- mulExp +| | | | | | | `-- unaryExp +| | | | | | | `-- primary +| | | | | | | `-- lVal +| | | | | | | `-- Ident: i +| | | | | | `-- R_BRACK: ] +| | | | | |-- Assign: = +| | | | | |-- exp +| | | | | | `-- addExp +| | | | | | |-- addExp +| | | | | | | `-- mulExp +| | | | | | | `-- unaryExp +| | | | | | | `-- primary +| | | | | | | `-- lVal +| | | | | | | |-- Ident: head +| | | | | | | |-- L_BRACK: [ +| | | | | | | |-- exp +| | | | | | | | `-- addExp +| | | | | | | | `-- mulExp +| | | | | | | | `-- unaryExp +| | | | | | | | `-- primary +| | | | | | | | `-- lVal +| | | | | | | | `-- Ident: i +| | | | | | | `-- R_BRACK: ] +| | | | | | |-- AddOp: + +| | | | | | `-- mulExp +| | | | | | `-- unaryExp +| | | | | | `-- primary +| | | | | | `-- lVal +| | | | | | |-- Ident: cnt +| | | | | | |-- L_BRACK: [ +| | | | | | |-- exp +| | | | | | | `-- addExp +| | | | | | | `-- mulExp +| | | | | | | `-- unaryExp +| | | | | | | `-- primary +| | | | | | | `-- lVal +| | | | | | | `-- Ident: i +| | | | | | `-- R_BRACK: ] +| | | | | `-- Semi: ; +| | | | |-- blockItem +| | | | | `-- stmt +| | | | | |-- lVal +| | | | | | `-- Ident: i +| | | | | |-- Assign: = +| | | | | |-- exp +| | | | | | `-- addExp +| | | | | | |-- addExp +| | | | | | | `-- mulExp +| | | | | | | `-- unaryExp +| | | | | | | `-- primary +| | | | | | | `-- lVal +| | | | | | | `-- Ident: i +| | | | | | |-- AddOp: + +| | | | | | `-- mulExp +| | | | | | `-- unaryExp +| | | | | | `-- primary +| | | | | | `-- DECIMAL_INT: 1 +| | | | | `-- Semi: ; +| | | | `-- R_BRACE: } +| | | |-- blockItem +| | | | `-- stmt +| | | | |-- lVal +| | | | | `-- Ident: i +| | | | |-- Assign: = +| | | | |-- exp +| | | | | `-- addExp +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- OCTAL_INT: 0 +| | | | `-- Semi: ; +| | | |-- blockItem +| | | | `-- stmt +| | | | |-- While: while +| | | | |-- L_PAREN: ( +| | | | |-- cond +| | | | | `-- lOrExp +| | | | | `-- lAndExp +| | | | | `-- eqExp +| | | | | `-- relExp +| | | | | |-- relExp +| | | | | | `-- addExp +| | | | | | `-- mulExp +| | | | | | `-- unaryExp +| | | | | | `-- primary +| | | | | | `-- lVal +| | | | | | `-- Ident: i +| | | | | |-- LOp: < +| | | | | `-- addExp +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- lVal +| | | | | `-- Ident: base +| | | | |-- R_PAREN: ) +| | | | `-- stmt +| | | | `-- block +| | | | |-- L_BRACE: { +| | | | |-- blockItem +| | | | | `-- stmt +| | | | | |-- While: while +| | | | | |-- L_PAREN: ( +| | | | | |-- cond +| | | | | | `-- lOrExp +| | | | | | `-- lAndExp +| | | | | | `-- eqExp +| | | | | | `-- relExp +| | | | | | |-- relExp +| | | | | | | `-- addExp +| | | | | | | `-- mulExp +| | | | | | | `-- unaryExp +| | | | | | | `-- primary +| | | | | | | `-- lVal +| | | | | | | |-- Ident: head +| | | | | | | |-- L_BRACK: [ +| | | | | | | |-- exp +| | | | | | | | `-- addExp +| | | | | | | | `-- mulExp +| | | | | | | | `-- unaryExp +| | | | | | | | `-- primary +| | | | | | | | `-- lVal +| | | | | | | | `-- Ident: i +| | | | | | | `-- R_BRACK: ] +| | | | | | |-- LOp: < +| | | | | | `-- addExp +| | | | | | `-- mulExp +| | | | | | `-- unaryExp +| | | | | | `-- primary +| | | | | | `-- lVal +| | | | | | |-- Ident: tail +| | | | | | |-- L_BRACK: [ +| | | | | | |-- exp +| | | | | | | `-- addExp +| | | | | | | `-- mulExp +| | | | | | | `-- unaryExp +| | | | | | | `-- primary +| | | | | | | `-- lVal +| | | | | | | `-- Ident: i +| | | | | | `-- R_BRACK: ] +| | | | | |-- R_PAREN: ) +| | | | | `-- stmt +| | | | | `-- block +| | | | | |-- L_BRACE: { +| | | | | |-- blockItem +| | | | | | `-- decl +| | | | | | `-- varDecl +| | | | | | |-- bType +| | | | | | | `-- Int: int +| | | | | | |-- varDef +| | | | | | | |-- Ident: v +| | | | | | | |-- Assign: = +| | | | | | | `-- initVal +| | | | | | | `-- exp +| | | | | | | `-- addExp +| | | | | | | `-- mulExp +| | | | | | | `-- unaryExp +| | | | | | | `-- primary +| | | | | | | `-- lVal +| | | | | | | |-- Ident: a +| | | | | | | |-- L_BRACK: [ +| | | | | | | |-- exp +| | | | | | | | `-- addExp +| | | | | | | | `-- mulExp +| | | | | | | | `-- unaryExp +| | | | | | | | `-- primary +| | | | | | | | `-- lVal +| | | | | | | | |-- Ident: head +| | | | | | | | |-- L_BRACK: [ +| | | | | | | | |-- exp +| | | | | | | | | `-- addExp +| | | | | | | | | `-- mulExp +| | | | | | | | | `-- unaryExp +| | | | | | | | | `-- primary +| | | | | | | | | `-- lVal +| | | | | | | | | `-- Ident: i +| | | | | | | | `-- R_BRACK: ] +| | | | | | | `-- R_BRACK: ] +| | | | | | `-- Semi: ; +| | | | | |-- blockItem +| | | | | | `-- stmt +| | | | | | |-- While: while +| | | | | | |-- L_PAREN: ( +| | | | | | |-- cond +| | | | | | | `-- lOrExp +| | | | | | | `-- lAndExp +| | | | | | | `-- eqExp +| | | | | | | |-- eqExp +| | | | | | | | `-- relExp +| | | | | | | | `-- addExp +| | | | | | | | `-- mulExp +| | | | | | | | `-- unaryExp +| | | | | | | | |-- Ident: getNumPos +| | | | | | | | |-- L_PAREN: ( +| | | | | | | | |-- funcRParams +| | | | | | | | | |-- exp +| | | | | | | | | | `-- addExp +| | | | | | | | | | `-- mulExp +| | | | | | | | | | `-- unaryExp +| | | | | | | | | | `-- primary +| | | | | | | | | | `-- lVal +| | | | | | | | | | `-- Ident: v +| | | | | | | | | |-- Comma: , +| | | | | | | | | `-- exp +| | | | | | | | | `-- addExp +| | | | | | | | | `-- mulExp +| | | | | | | | | `-- unaryExp +| | | | | | | | | `-- primary +| | | | | | | | | `-- lVal +| | | | | | | | | `-- Ident: bitround +| | | | | | | | `-- R_PAREN: ) +| | | | | | | |-- NeOp: != +| | | | | | | `-- relExp +| | | | | | | `-- addExp +| | | | | | | `-- mulExp +| | | | | | | `-- unaryExp +| | | | | | | `-- primary +| | | | | | | `-- lVal +| | | | | | | `-- Ident: i +| | | | | | |-- R_PAREN: ) +| | | | | | `-- stmt +| | | | | | `-- block +| | | | | | |-- L_BRACE: { +| | | | | | |-- blockItem +| | | | | | | `-- decl +| | | | | | | `-- varDecl +| | | | | | | |-- bType +| | | | | | | | `-- Int: int +| | | | | | | |-- varDef +| | | | | | | | |-- Ident: t +| | | | | | | | |-- Assign: = +| | | | | | | | `-- initVal +| | | | | | | | `-- exp +| | | | | | | | `-- addExp +| | | | | | | | `-- mulExp +| | | | | | | | `-- unaryExp +| | | | | | | | `-- primary +| | | | | | | | `-- lVal +| | | | | | | | `-- Ident: v +| | | | | | | `-- Semi: ; +| | | | | | |-- blockItem +| | | | | | | `-- stmt +| | | | | | | |-- lVal +| | | | | | | | `-- Ident: v +| | | | | | | |-- Assign: = +| | | | | | | |-- exp +| | | | | | | | `-- addExp +| | | | | | | | `-- mulExp +| | | | | | | | `-- unaryExp +| | | | | | | | `-- primary +| | | | | | | | `-- lVal +| | | | | | | | |-- Ident: a +| | | | | | | | |-- L_BRACK: [ +| | | | | | | | |-- exp +| | | | | | | | | `-- addExp +| | | | | | | | | `-- mulExp +| | | | | | | | | `-- unaryExp +| | | | | | | | | `-- primary +| | | | | | | | | `-- lVal +| | | | | | | | | |-- Ident: head +| | | | | | | | | |-- L_BRACK: [ +| | | | | | | | | |-- exp +| | | | | | | | | | `-- addExp +| | | | | | | | | | `-- mulExp +| | | | | | | | | | `-- unaryExp +| | | | | | | | | | |-- Ident: getNumPos +| | | | | | | | | | |-- L_PAREN: ( +| | | | | | | | | | |-- funcRParams +| | | | | | | | | | | |-- exp +| | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | `-- primary +| | | | | | | | | | | | `-- lVal +| | | | | | | | | | | | `-- Ident: t +| | | | | | | | | | | |-- Comma: , +| | | | | | | | | | | `-- exp +| | | | | | | | | | | `-- addExp +| | | | | | | | | | | `-- mulExp +| | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | `-- primary +| | | | | | | | | | | `-- lVal +| | | | | | | | | | | `-- Ident: bitround +| | | | | | | | | | `-- R_PAREN: ) +| | | | | | | | | `-- R_BRACK: ] +| | | | | | | | `-- R_BRACK: ] +| | | | | | | `-- Semi: ; +| | | | | | |-- blockItem +| | | | | | | `-- stmt +| | | | | | | |-- lVal +| | | | | | | | |-- Ident: a +| | | | | | | | |-- L_BRACK: [ +| | | | | | | | |-- exp +| | | | | | | | | `-- addExp +| | | | | | | | | `-- mulExp +| | | | | | | | | `-- unaryExp +| | | | | | | | | `-- primary +| | | | | | | | | `-- lVal +| | | | | | | | | |-- Ident: head +| | | | | | | | | |-- L_BRACK: [ +| | | | | | | | | |-- exp +| | | | | | | | | | `-- addExp +| | | | | | | | | | `-- mulExp +| | | | | | | | | | `-- unaryExp +| | | | | | | | | | |-- Ident: getNumPos +| | | | | | | | | | |-- L_PAREN: ( +| | | | | | | | | | |-- funcRParams +| | | | | | | | | | | |-- exp +| | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | `-- primary +| | | | | | | | | | | | `-- lVal +| | | | | | | | | | | | `-- Ident: t +| | | | | | | | | | | |-- Comma: , +| | | | | | | | | | | `-- exp +| | | | | | | | | | | `-- addExp +| | | | | | | | | | | `-- mulExp +| | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | `-- primary +| | | | | | | | | | | `-- lVal +| | | | | | | | | | | `-- Ident: bitround +| | | | | | | | | | `-- R_PAREN: ) +| | | | | | | | | `-- R_BRACK: ] +| | | | | | | | `-- R_BRACK: ] +| | | | | | | |-- Assign: = +| | | | | | | |-- exp +| | | | | | | | `-- addExp +| | | | | | | | `-- mulExp +| | | | | | | | `-- unaryExp +| | | | | | | | `-- primary +| | | | | | | | `-- lVal +| | | | | | | | `-- Ident: t +| | | | | | | `-- Semi: ; +| | | | | | |-- blockItem +| | | | | | | `-- stmt +| | | | | | | |-- lVal +| | | | | | | | |-- Ident: head +| | | | | | | | |-- L_BRACK: [ +| | | | | | | | |-- exp +| | | | | | | | | `-- addExp +| | | | | | | | | `-- mulExp +| | | | | | | | | `-- unaryExp +| | | | | | | | | |-- Ident: getNumPos +| | | | | | | | | |-- L_PAREN: ( +| | | | | | | | | |-- funcRParams +| | | | | | | | | | |-- exp +| | | | | | | | | | | `-- addExp +| | | | | | | | | | | `-- mulExp +| | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | `-- primary +| | | | | | | | | | | `-- lVal +| | | | | | | | | | | `-- Ident: t +| | | | | | | | | | |-- Comma: , +| | | | | | | | | | `-- exp +| | | | | | | | | | `-- addExp +| | | | | | | | | | `-- mulExp +| | | | | | | | | | `-- unaryExp +| | | | | | | | | | `-- primary +| | | | | | | | | | `-- lVal +| | | | | | | | | | `-- Ident: bitround +| | | | | | | | | `-- R_PAREN: ) +| | | | | | | | `-- R_BRACK: ] +| | | | | | | |-- Assign: = +| | | | | | | |-- exp +| | | | | | | | `-- addExp +| | | | | | | | |-- addExp +| | | | | | | | | `-- mulExp +| | | | | | | | | `-- unaryExp +| | | | | | | | | `-- primary +| | | | | | | | | `-- lVal +| | | | | | | | | |-- Ident: head +| | | | | | | | | |-- L_BRACK: [ +| | | | | | | | | |-- exp +| | | | | | | | | | `-- addExp +| | | | | | | | | | `-- mulExp +| | | | | | | | | | `-- unaryExp +| | | | | | | | | | |-- Ident: getNumPos +| | | | | | | | | | |-- L_PAREN: ( +| | | | | | | | | | |-- funcRParams +| | | | | | | | | | | |-- exp +| | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | `-- primary +| | | | | | | | | | | | `-- lVal +| | | | | | | | | | | | `-- Ident: t +| | | | | | | | | | | |-- Comma: , +| | | | | | | | | | | `-- exp +| | | | | | | | | | | `-- addExp +| | | | | | | | | | | `-- mulExp +| | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | `-- primary +| | | | | | | | | | | `-- lVal +| | | | | | | | | | | `-- Ident: bitround +| | | | | | | | | | `-- R_PAREN: ) +| | | | | | | | | `-- R_BRACK: ] +| | | | | | | | |-- AddOp: + +| | | | | | | | `-- mulExp +| | | | | | | | `-- unaryExp +| | | | | | | | `-- primary +| | | | | | | | `-- DECIMAL_INT: 1 +| | | | | | | `-- Semi: ; +| | | | | | `-- R_BRACE: } +| | | | | |-- blockItem +| | | | | | `-- stmt +| | | | | | |-- lVal +| | | | | | | |-- Ident: a +| | | | | | | |-- L_BRACK: [ +| | | | | | | |-- exp +| | | | | | | | `-- addExp +| | | | | | | | `-- mulExp +| | | | | | | | `-- unaryExp +| | | | | | | | `-- primary +| | | | | | | | `-- lVal +| | | | | | | | |-- Ident: head +| | | | | | | | |-- L_BRACK: [ +| | | | | | | | |-- exp +| | | | | | | | | `-- addExp +| | | | | | | | | `-- mulExp +| | | | | | | | | `-- unaryExp +| | | | | | | | | `-- primary +| | | | | | | | | `-- lVal +| | | | | | | | | `-- Ident: i +| | | | | | | | `-- R_BRACK: ] +| | | | | | | `-- R_BRACK: ] +| | | | | | |-- Assign: = +| | | | | | |-- exp +| | | | | | | `-- addExp +| | | | | | | `-- mulExp +| | | | | | | `-- unaryExp +| | | | | | | `-- primary +| | | | | | | `-- lVal +| | | | | | | `-- Ident: v +| | | | | | `-- Semi: ; +| | | | | |-- blockItem +| | | | | | `-- stmt +| | | | | | |-- lVal +| | | | | | | |-- Ident: head +| | | | | | | |-- L_BRACK: [ +| | | | | | | |-- exp +| | | | | | | | `-- addExp +| | | | | | | | `-- mulExp +| | | | | | | | `-- unaryExp +| | | | | | | | `-- primary +| | | | | | | | `-- lVal +| | | | | | | | `-- Ident: i +| | | | | | | `-- R_BRACK: ] +| | | | | | |-- Assign: = +| | | | | | |-- exp +| | | | | | | `-- addExp +| | | | | | | |-- addExp +| | | | | | | | `-- mulExp +| | | | | | | | `-- unaryExp +| | | | | | | | `-- primary +| | | | | | | | `-- lVal +| | | | | | | | |-- Ident: head +| | | | | | | | |-- L_BRACK: [ +| | | | | | | | |-- exp +| | | | | | | | | `-- addExp +| | | | | | | | | `-- mulExp +| | | | | | | | | `-- unaryExp +| | | | | | | | | `-- primary +| | | | | | | | | `-- lVal +| | | | | | | | | `-- Ident: i +| | | | | | | | `-- R_BRACK: ] +| | | | | | | |-- AddOp: + +| | | | | | | `-- mulExp +| | | | | | | `-- unaryExp +| | | | | | | `-- primary +| | | | | | | `-- DECIMAL_INT: 1 +| | | | | | `-- Semi: ; +| | | | | `-- R_BRACE: } +| | | | |-- blockItem +| | | | | `-- stmt +| | | | | |-- lVal +| | | | | | `-- Ident: i +| | | | | |-- Assign: = +| | | | | |-- exp +| | | | | | `-- addExp +| | | | | | |-- addExp +| | | | | | | `-- mulExp +| | | | | | | `-- unaryExp +| | | | | | | `-- primary +| | | | | | | `-- lVal +| | | | | | | `-- Ident: i +| | | | | | |-- AddOp: + +| | | | | | `-- mulExp +| | | | | | `-- unaryExp +| | | | | | `-- primary +| | | | | | `-- DECIMAL_INT: 1 +| | | | | `-- Semi: ; +| | | | `-- R_BRACE: } +| | | `-- R_BRACE: } +| | |-- blockItem +| | | `-- stmt +| | | `-- block +| | | |-- L_BRACE: { +| | | |-- blockItem +| | | | `-- decl +| | | | `-- varDecl +| | | | |-- bType +| | | | | `-- Int: int +| | | | |-- varDef +| | | | | |-- Ident: i +| | | | | |-- Assign: = +| | | | | `-- initVal +| | | | | `-- exp +| | | | | `-- addExp +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- lVal +| | | | | `-- Ident: l +| | | | `-- Semi: ; +| | | |-- blockItem +| | | | `-- stmt +| | | | |-- lVal +| | | | | |-- Ident: head +| | | | | |-- L_BRACK: [ +| | | | | |-- exp +| | | | | | `-- addExp +| | | | | | `-- mulExp +| | | | | | `-- unaryExp +| | | | | | `-- primary +| | | | | | `-- OCTAL_INT: 0 +| | | | | `-- R_BRACK: ] +| | | | |-- Assign: = +| | | | |-- exp +| | | | | `-- addExp +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- lVal +| | | | | `-- Ident: l +| | | | `-- Semi: ; +| | | |-- blockItem +| | | | `-- stmt +| | | | |-- lVal +| | | | | |-- Ident: tail +| | | | | |-- L_BRACK: [ +| | | | | |-- exp +| | | | | | `-- addExp +| | | | | | `-- mulExp +| | | | | | `-- unaryExp +| | | | | | `-- primary +| | | | | | `-- OCTAL_INT: 0 +| | | | | `-- R_BRACK: ] +| | | | |-- Assign: = +| | | | |-- exp +| | | | | `-- addExp +| | | | | |-- addExp +| | | | | | `-- mulExp +| | | | | | `-- unaryExp +| | | | | | `-- primary +| | | | | | `-- lVal +| | | | | | `-- Ident: l +| | | | | |-- AddOp: + +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- lVal +| | | | | |-- Ident: cnt +| | | | | |-- L_BRACK: [ +| | | | | |-- exp +| | | | | | `-- addExp +| | | | | | `-- mulExp +| | | | | | `-- unaryExp +| | | | | | `-- primary +| | | | | | `-- OCTAL_INT: 0 +| | | | | `-- R_BRACK: ] +| | | | `-- Semi: ; +| | | |-- blockItem +| | | | `-- stmt +| | | | |-- lVal +| | | | | `-- Ident: i +| | | | |-- Assign: = +| | | | |-- exp +| | | | | `-- addExp +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- OCTAL_INT: 0 +| | | | `-- Semi: ; +| | | |-- blockItem +| | | | `-- stmt +| | | | |-- While: while +| | | | |-- L_PAREN: ( +| | | | |-- cond +| | | | | `-- lOrExp +| | | | | `-- lAndExp +| | | | | `-- eqExp +| | | | | `-- relExp +| | | | | |-- relExp +| | | | | | `-- addExp +| | | | | | `-- mulExp +| | | | | | `-- unaryExp +| | | | | | `-- primary +| | | | | | `-- lVal +| | | | | | `-- Ident: i +| | | | | |-- LOp: < +| | | | | `-- addExp +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- lVal +| | | | | `-- Ident: base +| | | | |-- R_PAREN: ) +| | | | `-- stmt +| | | | `-- block +| | | | |-- L_BRACE: { +| | | | |-- blockItem +| | | | | `-- stmt +| | | | | |-- If: if +| | | | | |-- L_PAREN: ( +| | | | | |-- cond +| | | | | | `-- lOrExp +| | | | | | `-- lAndExp +| | | | | | `-- eqExp +| | | | | | `-- relExp +| | | | | | |-- relExp +| | | | | | | `-- addExp +| | | | | | | `-- mulExp +| | | | | | | `-- unaryExp +| | | | | | | `-- primary +| | | | | | | `-- lVal +| | | | | | | `-- Ident: i +| | | | | | |-- GOp: > +| | | | | | `-- addExp +| | | | | | `-- mulExp +| | | | | | `-- unaryExp +| | | | | | `-- primary +| | | | | | `-- OCTAL_INT: 0 +| | | | | |-- R_PAREN: ) +| | | | | `-- stmt +| | | | | `-- block +| | | | | |-- L_BRACE: { +| | | | | |-- blockItem +| | | | | | `-- stmt +| | | | | | |-- lVal +| | | | | | | |-- Ident: head +| | | | | | | |-- L_BRACK: [ +| | | | | | | |-- exp +| | | | | | | | `-- addExp +| | | | | | | | `-- mulExp +| | | | | | | | `-- unaryExp +| | | | | | | | `-- primary +| | | | | | | | `-- lVal +| | | | | | | | `-- Ident: i +| | | | | | | `-- R_BRACK: ] +| | | | | | |-- Assign: = +| | | | | | |-- exp +| | | | | | | `-- addExp +| | | | | | | `-- mulExp +| | | | | | | `-- unaryExp +| | | | | | | `-- primary +| | | | | | | `-- lVal +| | | | | | | |-- Ident: tail +| | | | | | | |-- L_BRACK: [ +| | | | | | | |-- exp +| | | | | | | | `-- addExp +| | | | | | | | |-- addExp +| | | | | | | | | `-- mulExp +| | | | | | | | | `-- unaryExp +| | | | | | | | | `-- primary +| | | | | | | | | `-- lVal +| | | | | | | | | `-- Ident: i +| | | | | | | | |-- SubOp: - +| | | | | | | | `-- mulExp +| | | | | | | | `-- unaryExp +| | | | | | | | `-- primary +| | | | | | | | `-- DECIMAL_INT: 1 +| | | | | | | `-- R_BRACK: ] +| | | | | | `-- Semi: ; +| | | | | |-- blockItem +| | | | | | `-- stmt +| | | | | | |-- lVal +| | | | | | | |-- Ident: tail +| | | | | | | |-- L_BRACK: [ +| | | | | | | |-- exp +| | | | | | | | `-- addExp +| | | | | | | | `-- mulExp +| | | | | | | | `-- unaryExp +| | | | | | | | `-- primary +| | | | | | | | `-- lVal +| | | | | | | | `-- Ident: i +| | | | | | | `-- R_BRACK: ] +| | | | | | |-- Assign: = +| | | | | | |-- exp +| | | | | | | `-- addExp +| | | | | | | |-- addExp +| | | | | | | | `-- mulExp +| | | | | | | | `-- unaryExp +| | | | | | | | `-- primary +| | | | | | | | `-- lVal +| | | | | | | | |-- Ident: head +| | | | | | | | |-- L_BRACK: [ +| | | | | | | | |-- exp +| | | | | | | | | `-- addExp +| | | | | | | | | `-- mulExp +| | | | | | | | | `-- unaryExp +| | | | | | | | | `-- primary +| | | | | | | | | `-- lVal +| | | | | | | | | `-- Ident: i +| | | | | | | | `-- R_BRACK: ] +| | | | | | | |-- AddOp: + +| | | | | | | `-- mulExp +| | | | | | | `-- unaryExp +| | | | | | | `-- primary +| | | | | | | `-- lVal +| | | | | | | |-- Ident: cnt +| | | | | | | |-- L_BRACK: [ +| | | | | | | |-- exp +| | | | | | | | `-- addExp +| | | | | | | | `-- mulExp +| | | | | | | | `-- unaryExp +| | | | | | | | `-- primary +| | | | | | | | `-- lVal +| | | | | | | | `-- Ident: i +| | | | | | | `-- R_BRACK: ] +| | | | | | `-- Semi: ; +| | | | | `-- R_BRACE: } +| | | | |-- blockItem +| | | | | `-- stmt +| | | | | |-- exp +| | | | | | `-- addExp +| | | | | | `-- mulExp +| | | | | | `-- unaryExp +| | | | | | |-- Ident: radixSort +| | | | | | |-- L_PAREN: ( +| | | | | | |-- funcRParams +| | | | | | | |-- exp +| | | | | | | | `-- addExp +| | | | | | | | |-- addExp +| | | | | | | | | `-- mulExp +| | | | | | | | | `-- unaryExp +| | | | | | | | | `-- primary +| | | | | | | | | `-- lVal +| | | | | | | | | `-- Ident: bitround +| | | | | | | | |-- SubOp: - +| | | | | | | | `-- mulExp +| | | | | | | | `-- unaryExp +| | | | | | | | `-- primary +| | | | | | | | `-- DECIMAL_INT: 1 +| | | | | | | |-- Comma: , +| | | | | | | |-- exp +| | | | | | | | `-- addExp +| | | | | | | | `-- mulExp +| | | | | | | | `-- unaryExp +| | | | | | | | `-- primary +| | | | | | | | `-- lVal +| | | | | | | | `-- Ident: a +| | | | | | | |-- Comma: , +| | | | | | | |-- exp +| | | | | | | | `-- addExp +| | | | | | | | `-- mulExp +| | | | | | | | `-- unaryExp +| | | | | | | | `-- primary +| | | | | | | | `-- lVal +| | | | | | | | |-- Ident: head +| | | | | | | | |-- L_BRACK: [ +| | | | | | | | |-- exp +| | | | | | | | | `-- addExp +| | | | | | | | | `-- mulExp +| | | | | | | | | `-- unaryExp +| | | | | | | | | `-- primary +| | | | | | | | | `-- lVal +| | | | | | | | | `-- Ident: i +| | | | | | | | `-- R_BRACK: ] +| | | | | | | |-- Comma: , +| | | | | | | `-- exp +| | | | | | | `-- addExp +| | | | | | | `-- mulExp +| | | | | | | `-- unaryExp +| | | | | | | `-- primary +| | | | | | | `-- lVal +| | | | | | | |-- Ident: tail +| | | | | | | |-- L_BRACK: [ +| | | | | | | |-- exp +| | | | | | | | `-- addExp +| | | | | | | | `-- mulExp +| | | | | | | | `-- unaryExp +| | | | | | | | `-- primary +| | | | | | | | `-- lVal +| | | | | | | | `-- Ident: i +| | | | | | | `-- R_BRACK: ] +| | | | | | `-- R_PAREN: ) +| | | | | `-- Semi: ; +| | | | |-- blockItem +| | | | | `-- stmt +| | | | | |-- lVal +| | | | | | `-- Ident: i +| | | | | |-- Assign: = +| | | | | |-- exp +| | | | | | `-- addExp +| | | | | | |-- addExp +| | | | | | | `-- mulExp +| | | | | | | `-- unaryExp +| | | | | | | `-- primary +| | | | | | | `-- lVal +| | | | | | | `-- Ident: i +| | | | | | |-- AddOp: + +| | | | | | `-- mulExp +| | | | | | `-- unaryExp +| | | | | | `-- primary +| | | | | | `-- DECIMAL_INT: 1 +| | | | | `-- Semi: ; +| | | | `-- R_BRACE: } +| | | `-- R_BRACE: } +| | |-- blockItem +| | | `-- stmt +| | | `-- returnStmt +| | | |-- Return: return +| | | `-- Semi: ; +| | `-- R_BRACE: } +| |-- decl +| | `-- varDecl +| | |-- bType +| | | `-- Int: int +| | |-- varDef +| | | |-- Ident: a +| | | |-- L_BRACK: [ +| | | |-- constExp +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- DECIMAL_INT: 30000010 +| | | `-- R_BRACK: ] +| | `-- Semi: ; +| |-- decl +| | `-- varDecl +| | |-- bType +| | | `-- Int: int +| | |-- varDef +| | | `-- Ident: ans +| | `-- Semi: ; +| `-- funcDef +| |-- funcType +| | `-- Int: int +| |-- Ident: main +| |-- L_PAREN: ( +| |-- R_PAREN: ) +| `-- block +| |-- L_BRACE: { +| |-- blockItem +| | `-- decl +| | `-- varDecl +| | |-- bType +| | | `-- Int: int +| | |-- varDef +| | | |-- Ident: n +| | | |-- Assign: = +| | | `-- initVal +| | | `-- exp +| | | `-- addExp +| | | `-- mulExp +| | | `-- unaryExp +| | | |-- Ident: getarray +| | | |-- L_PAREN: ( +| | | |-- funcRParams +| | | | `-- exp +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- lVal +| | | | `-- Ident: a +| | | `-- R_PAREN: ) +| | `-- Semi: ; +| |-- blockItem +| | `-- stmt +| | |-- exp +| | | `-- addExp +| | | `-- mulExp +| | | `-- unaryExp +| | | |-- Ident: starttime +| | | |-- L_PAREN: ( +| | | `-- R_PAREN: ) +| | `-- Semi: ; +| |-- blockItem +| | `-- stmt +| | |-- exp +| | | `-- addExp +| | | `-- mulExp +| | | `-- unaryExp +| | | |-- Ident: radixSort +| | | |-- L_PAREN: ( +| | | |-- funcRParams +| | | | |-- exp +| | | | | `-- addExp +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- DECIMAL_INT: 8 +| | | | |-- Comma: , +| | | | |-- exp +| | | | | `-- addExp +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- lVal +| | | | | `-- Ident: a +| | | | |-- Comma: , +| | | | |-- exp +| | | | | `-- addExp +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- OCTAL_INT: 0 +| | | | |-- Comma: , +| | | | `-- exp +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- lVal +| | | | `-- Ident: n +| | | `-- R_PAREN: ) +| | `-- Semi: ; +| |-- blockItem +| | `-- decl +| | `-- varDecl +| | |-- bType +| | | `-- Int: int +| | |-- varDef +| | | |-- Ident: i +| | | |-- Assign: = +| | | `-- initVal +| | | `-- exp +| | | `-- addExp +| | | `-- mulExp +| | | `-- unaryExp +| | | `-- primary +| | | `-- OCTAL_INT: 0 +| | `-- Semi: ; +| |-- blockItem +| | `-- stmt +| | |-- While: while +| | |-- L_PAREN: ( +| | |-- cond +| | | `-- lOrExp +| | | `-- lAndExp +| | | `-- eqExp +| | | `-- relExp +| | | |-- relExp +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- lVal +| | | | `-- Ident: i +| | | |-- LOp: < +| | | `-- addExp +| | | `-- mulExp +| | | `-- unaryExp +| | | `-- primary +| | | `-- lVal +| | | `-- Ident: n +| | |-- R_PAREN: ) +| | `-- stmt +| | `-- block +| | |-- L_BRACE: { +| | |-- blockItem +| | | `-- stmt +| | | |-- lVal +| | | | `-- Ident: ans +| | | |-- Assign: = +| | | |-- exp +| | | | `-- addExp +| | | | |-- addExp +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- lVal +| | | | | `-- Ident: ans +| | | | |-- AddOp: + +| | | | `-- mulExp +| | | | |-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- lVal +| | | | | `-- Ident: i +| | | | |-- MulOp: * +| | | | `-- unaryExp +| | | | `-- primary +| | | | |-- L_PAREN: ( +| | | | |-- exp +| | | | | `-- addExp +| | | | | `-- mulExp +| | | | | |-- mulExp +| | | | | | `-- unaryExp +| | | | | | `-- primary +| | | | | | `-- lVal +| | | | | | |-- Ident: a +| | | | | | |-- L_BRACK: [ +| | | | | | |-- exp +| | | | | | | `-- addExp +| | | | | | | `-- mulExp +| | | | | | | `-- unaryExp +| | | | | | | `-- primary +| | | | | | | `-- lVal +| | | | | | | `-- Ident: i +| | | | | | `-- R_BRACK: ] +| | | | | |-- QuoOp: % +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | |-- L_PAREN: ( +| | | | | |-- exp +| | | | | | `-- addExp +| | | | | | |-- addExp +| | | | | | | `-- mulExp +| | | | | | | `-- unaryExp +| | | | | | | `-- primary +| | | | | | | `-- DECIMAL_INT: 2 +| | | | | | |-- AddOp: + +| | | | | | `-- mulExp +| | | | | | `-- unaryExp +| | | | | | `-- primary +| | | | | | `-- lVal +| | | | | | `-- Ident: i +| | | | | `-- R_PAREN: ) +| | | | `-- R_PAREN: ) +| | | `-- Semi: ; +| | |-- blockItem +| | | `-- stmt +| | | |-- lVal +| | | | `-- Ident: i +| | | |-- Assign: = +| | | |-- exp +| | | | `-- addExp +| | | | |-- addExp +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- lVal +| | | | | `-- Ident: i +| | | | |-- AddOp: + +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- DECIMAL_INT: 1 +| | | `-- Semi: ; +| | `-- R_BRACE: } +| |-- blockItem +| | `-- stmt +| | |-- If: if +| | |-- L_PAREN: ( +| | |-- cond +| | | `-- lOrExp +| | | `-- lAndExp +| | | `-- eqExp +| | | `-- relExp +| | | |-- relExp +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- lVal +| | | | `-- Ident: ans +| | | |-- LOp: < +| | | `-- addExp +| | | `-- mulExp +| | | `-- unaryExp +| | | `-- primary +| | | `-- OCTAL_INT: 0 +| | |-- R_PAREN: ) +| | `-- stmt +| | |-- lVal +| | | `-- Ident: ans +| | |-- Assign: = +| | |-- exp +| | | `-- addExp +| | | `-- mulExp +| | | `-- unaryExp +| | | |-- unaryOp +| | | | `-- SubOp: - +| | | `-- unaryExp +| | | `-- primary +| | | `-- lVal +| | | `-- Ident: ans +| | `-- Semi: ; +| |-- blockItem +| | `-- stmt +| | |-- exp +| | | `-- addExp +| | | `-- mulExp +| | | `-- unaryExp +| | | |-- Ident: stoptime +| | | |-- L_PAREN: ( +| | | `-- R_PAREN: ) +| | `-- Semi: ; +| |-- blockItem +| | `-- stmt +| | |-- exp +| | | `-- addExp +| | | `-- mulExp +| | | `-- unaryExp +| | | |-- Ident: putint +| | | |-- L_PAREN: ( +| | | |-- funcRParams +| | | | `-- exp +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- lVal +| | | | `-- Ident: ans +| | | `-- R_PAREN: ) +| | `-- Semi: ; +| |-- blockItem +| | `-- stmt +| | |-- exp +| | | `-- addExp +| | | `-- mulExp +| | | `-- unaryExp +| | | |-- Ident: putch +| | | |-- L_PAREN: ( +| | | |-- funcRParams +| | | | `-- exp +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- DECIMAL_INT: 10 +| | | `-- R_PAREN: ) +| | `-- Semi: ; +| |-- blockItem +| | `-- stmt +| | `-- returnStmt +| | |-- Return: return +| | |-- exp +| | | `-- addExp +| | | `-- mulExp +| | | `-- unaryExp +| | | `-- primary +| | | `-- OCTAL_INT: 0 +| | `-- Semi: ; +| `-- R_BRACE: } +`-- EOF: + +========== test/test_case/performance/2025-MYO-20.sy ========== +compUnit +|-- program +| |-- decl +| | `-- varDecl +| | |-- bType +| | | `-- Int: int +| | |-- varDef +| | | |-- Ident: A +| | | |-- L_BRACK: [ +| | | |-- constExp +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- DECIMAL_INT: 1024 +| | | |-- R_BRACK: ] +| | | |-- L_BRACK: [ +| | | |-- constExp +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- DECIMAL_INT: 1024 +| | | `-- R_BRACK: ] +| | `-- Semi: ; +| |-- decl +| | `-- varDecl +| | |-- bType +| | | `-- Int: int +| | |-- varDef +| | | |-- Ident: B +| | | |-- L_BRACK: [ +| | | |-- constExp +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- DECIMAL_INT: 1024 +| | | |-- R_BRACK: ] +| | | |-- L_BRACK: [ +| | | |-- constExp +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- DECIMAL_INT: 1024 +| | | `-- R_BRACK: ] +| | `-- Semi: ; +| |-- decl +| | `-- varDecl +| | |-- bType +| | | `-- Int: int +| | |-- varDef +| | | |-- Ident: C +| | | |-- L_BRACK: [ +| | | |-- constExp +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- DECIMAL_INT: 1024 +| | | |-- R_BRACK: ] +| | | |-- L_BRACK: [ +| | | |-- constExp +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- DECIMAL_INT: 1024 +| | | `-- R_BRACK: ] +| | `-- Semi: ; +| `-- funcDef +| |-- funcType +| | `-- Int: int +| |-- Ident: main +| |-- L_PAREN: ( +| |-- R_PAREN: ) +| `-- block +| |-- L_BRACE: { +| |-- blockItem +| | `-- decl +| | `-- varDecl +| | |-- bType +| | | `-- Int: int +| | |-- varDef +| | | |-- Ident: T +| | | |-- Assign: = +| | | `-- initVal +| | | `-- exp +| | | `-- addExp +| | | `-- mulExp +| | | `-- unaryExp +| | | |-- Ident: getint +| | | |-- L_PAREN: ( +| | | `-- R_PAREN: ) +| | `-- Semi: ; +| |-- blockItem +| | `-- decl +| | `-- varDecl +| | |-- bType +| | | `-- Int: int +| | |-- varDef +| | | |-- Ident: R +| | | |-- Assign: = +| | | `-- initVal +| | | `-- exp +| | | `-- addExp +| | | `-- mulExp +| | | `-- unaryExp +| | | |-- Ident: getint +| | | |-- L_PAREN: ( +| | | `-- R_PAREN: ) +| | `-- Semi: ; +| |-- blockItem +| | `-- decl +| | `-- varDecl +| | |-- bType +| | | `-- Int: int +| | |-- varDef +| | | |-- Ident: i +| | | |-- Assign: = +| | | `-- initVal +| | | `-- exp +| | | `-- addExp +| | | `-- mulExp +| | | `-- unaryExp +| | | `-- primary +| | | `-- OCTAL_INT: 0 +| | `-- Semi: ; +| |-- blockItem +| | `-- stmt +| | |-- While: while +| | |-- L_PAREN: ( +| | |-- cond +| | | `-- lOrExp +| | | `-- lAndExp +| | | `-- eqExp +| | | `-- relExp +| | | |-- relExp +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- lVal +| | | | `-- Ident: i +| | | |-- LOp: < +| | | `-- addExp +| | | `-- mulExp +| | | `-- unaryExp +| | | `-- primary +| | | `-- lVal +| | | `-- Ident: T +| | |-- R_PAREN: ) +| | `-- stmt +| | `-- block +| | |-- L_BRACE: { +| | |-- blockItem +| | | `-- stmt +| | | |-- If: if +| | | |-- L_PAREN: ( +| | | |-- cond +| | | | `-- lOrExp +| | | | `-- lAndExp +| | | | `-- eqExp +| | | | `-- relExp +| | | | |-- relExp +| | | | | `-- addExp +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- lVal +| | | | | `-- Ident: i +| | | | |-- LOp: < +| | | | `-- addExp +| | | | `-- mulExp +| | | | |-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- lVal +| | | | | `-- Ident: T +| | | | |-- DivOp: / +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- DECIMAL_INT: 2 +| | | |-- R_PAREN: ) +| | | `-- stmt +| | | `-- block +| | | |-- L_BRACE: { +| | | |-- blockItem +| | | | `-- stmt +| | | | |-- exp +| | | | | `-- addExp +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | |-- Ident: getarray +| | | | | |-- L_PAREN: ( +| | | | | |-- funcRParams +| | | | | | `-- exp +| | | | | | `-- addExp +| | | | | | `-- mulExp +| | | | | | `-- unaryExp +| | | | | | `-- primary +| | | | | | `-- lVal +| | | | | | |-- Ident: A +| | | | | | |-- L_BRACK: [ +| | | | | | |-- exp +| | | | | | | `-- addExp +| | | | | | | `-- mulExp +| | | | | | | `-- unaryExp +| | | | | | | `-- primary +| | | | | | | `-- lVal +| | | | | | | `-- Ident: i +| | | | | | `-- R_BRACK: ] +| | | | | `-- R_PAREN: ) +| | | | `-- Semi: ; +| | | `-- R_BRACE: } +| | |-- blockItem +| | | `-- stmt +| | | |-- lVal +| | | | `-- Ident: i +| | | |-- Assign: = +| | | |-- exp +| | | | `-- addExp +| | | | |-- addExp +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- lVal +| | | | | `-- Ident: i +| | | | |-- AddOp: + +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- DECIMAL_INT: 1 +| | | `-- Semi: ; +| | `-- R_BRACE: } +| |-- blockItem +| | `-- stmt +| | |-- lVal +| | | `-- Ident: i +| | |-- Assign: = +| | |-- exp +| | | `-- addExp +| | | `-- mulExp +| | | `-- unaryExp +| | | `-- primary +| | | `-- OCTAL_INT: 0 +| | `-- Semi: ; +| |-- blockItem +| | `-- stmt +| | |-- While: while +| | |-- L_PAREN: ( +| | |-- cond +| | | `-- lOrExp +| | | `-- lAndExp +| | | `-- eqExp +| | | `-- relExp +| | | |-- relExp +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- lVal +| | | | `-- Ident: i +| | | |-- LOp: < +| | | `-- addExp +| | | `-- mulExp +| | | `-- unaryExp +| | | `-- primary +| | | `-- lVal +| | | `-- Ident: T +| | |-- R_PAREN: ) +| | `-- stmt +| | `-- block +| | |-- L_BRACE: { +| | |-- blockItem +| | | `-- stmt +| | | |-- If: if +| | | |-- L_PAREN: ( +| | | |-- cond +| | | | `-- lOrExp +| | | | `-- lAndExp +| | | | `-- eqExp +| | | | `-- relExp +| | | | |-- relExp +| | | | | `-- addExp +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- lVal +| | | | | `-- Ident: i +| | | | |-- GeOp: >= +| | | | `-- addExp +| | | | `-- mulExp +| | | | |-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- lVal +| | | | | `-- Ident: T +| | | | |-- DivOp: / +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- DECIMAL_INT: 2 +| | | |-- R_PAREN: ) +| | | `-- stmt +| | | `-- block +| | | |-- L_BRACE: { +| | | |-- blockItem +| | | | `-- stmt +| | | | |-- exp +| | | | | `-- addExp +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | |-- Ident: getarray +| | | | | |-- L_PAREN: ( +| | | | | |-- funcRParams +| | | | | | `-- exp +| | | | | | `-- addExp +| | | | | | `-- mulExp +| | | | | | `-- unaryExp +| | | | | | `-- primary +| | | | | | `-- lVal +| | | | | | |-- Ident: B +| | | | | | |-- L_BRACK: [ +| | | | | | |-- exp +| | | | | | | `-- addExp +| | | | | | | `-- mulExp +| | | | | | | `-- unaryExp +| | | | | | | `-- primary +| | | | | | | `-- lVal +| | | | | | | `-- Ident: i +| | | | | | `-- R_BRACK: ] +| | | | | `-- R_PAREN: ) +| | | | `-- Semi: ; +| | | `-- R_BRACE: } +| | |-- blockItem +| | | `-- stmt +| | | |-- lVal +| | | | `-- Ident: i +| | | |-- Assign: = +| | | |-- exp +| | | | `-- addExp +| | | | |-- addExp +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- lVal +| | | | | `-- Ident: i +| | | | |-- AddOp: + +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- DECIMAL_INT: 1 +| | | `-- Semi: ; +| | `-- R_BRACE: } +| |-- blockItem +| | `-- stmt +| | |-- exp +| | | `-- addExp +| | | `-- mulExp +| | | `-- unaryExp +| | | |-- Ident: starttime +| | | |-- L_PAREN: ( +| | | `-- R_PAREN: ) +| | `-- Semi: ; +| |-- blockItem +| | `-- stmt +| | |-- lVal +| | | `-- Ident: i +| | |-- Assign: = +| | |-- exp +| | | `-- addExp +| | | `-- mulExp +| | | `-- unaryExp +| | | `-- primary +| | | `-- OCTAL_INT: 0 +| | `-- Semi: ; +| |-- blockItem +| | `-- stmt +| | |-- While: while +| | |-- L_PAREN: ( +| | |-- cond +| | | `-- lOrExp +| | | `-- lAndExp +| | | `-- eqExp +| | | `-- relExp +| | | |-- relExp +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- lVal +| | | | `-- Ident: i +| | | |-- LOp: < +| | | `-- addExp +| | | `-- mulExp +| | | `-- unaryExp +| | | `-- primary +| | | `-- lVal +| | | `-- Ident: T +| | |-- R_PAREN: ) +| | `-- stmt +| | `-- block +| | |-- L_BRACE: { +| | |-- blockItem +| | | `-- stmt +| | | |-- If: if +| | | |-- L_PAREN: ( +| | | |-- cond +| | | | `-- lOrExp +| | | | `-- lAndExp +| | | | `-- eqExp +| | | | `-- relExp +| | | | |-- relExp +| | | | | `-- addExp +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- lVal +| | | | | `-- Ident: i +| | | | |-- GeOp: >= +| | | | `-- addExp +| | | | `-- mulExp +| | | | |-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- lVal +| | | | | `-- Ident: T +| | | | |-- DivOp: / +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- DECIMAL_INT: 2 +| | | |-- R_PAREN: ) +| | | `-- stmt +| | | `-- block +| | | |-- L_BRACE: { +| | | |-- blockItem +| | | | `-- decl +| | | | `-- varDecl +| | | | |-- bType +| | | | | `-- Int: int +| | | | |-- varDef +| | | | | |-- Ident: j +| | | | | |-- Assign: = +| | | | | `-- initVal +| | | | | `-- exp +| | | | | `-- addExp +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- OCTAL_INT: 0 +| | | | `-- Semi: ; +| | | |-- blockItem +| | | | `-- stmt +| | | | |-- While: while +| | | | |-- L_PAREN: ( +| | | | |-- cond +| | | | | `-- lOrExp +| | | | | `-- lAndExp +| | | | | `-- eqExp +| | | | | `-- relExp +| | | | | |-- relExp +| | | | | | `-- addExp +| | | | | | `-- mulExp +| | | | | | `-- unaryExp +| | | | | | `-- primary +| | | | | | `-- lVal +| | | | | | `-- Ident: j +| | | | | |-- LOp: < +| | | | | `-- addExp +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- lVal +| | | | | `-- Ident: T +| | | | |-- R_PAREN: ) +| | | | `-- stmt +| | | | `-- block +| | | | |-- L_BRACE: { +| | | | |-- blockItem +| | | | | `-- stmt +| | | | | |-- lVal +| | | | | | |-- Ident: A +| | | | | | |-- L_BRACK: [ +| | | | | | |-- exp +| | | | | | | `-- addExp +| | | | | | | `-- mulExp +| | | | | | | `-- unaryExp +| | | | | | | `-- primary +| | | | | | | `-- lVal +| | | | | | | `-- Ident: i +| | | | | | |-- R_BRACK: ] +| | | | | | |-- L_BRACK: [ +| | | | | | |-- exp +| | | | | | | `-- addExp +| | | | | | | `-- mulExp +| | | | | | | `-- unaryExp +| | | | | | | `-- primary +| | | | | | | `-- lVal +| | | | | | | `-- Ident: j +| | | | | | `-- R_BRACK: ] +| | | | | |-- Assign: = +| | | | | |-- exp +| | | | | | `-- addExp +| | | | | | `-- mulExp +| | | | | | `-- unaryExp +| | | | | | |-- unaryOp +| | | | | | | `-- SubOp: - +| | | | | | `-- unaryExp +| | | | | | `-- primary +| | | | | | `-- DECIMAL_INT: 1 +| | | | | `-- Semi: ; +| | | | |-- blockItem +| | | | | `-- stmt +| | | | | |-- lVal +| | | | | | `-- Ident: j +| | | | | |-- Assign: = +| | | | | |-- exp +| | | | | | `-- addExp +| | | | | | |-- addExp +| | | | | | | `-- mulExp +| | | | | | | `-- unaryExp +| | | | | | | `-- primary +| | | | | | | `-- lVal +| | | | | | | `-- Ident: j +| | | | | | |-- AddOp: + +| | | | | | `-- mulExp +| | | | | | `-- unaryExp +| | | | | | `-- primary +| | | | | | `-- DECIMAL_INT: 1 +| | | | | `-- Semi: ; +| | | | `-- R_BRACE: } +| | | `-- R_BRACE: } +| | |-- blockItem +| | | `-- stmt +| | | |-- lVal +| | | | `-- Ident: i +| | | |-- Assign: = +| | | |-- exp +| | | | `-- addExp +| | | | |-- addExp +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- lVal +| | | | | `-- Ident: i +| | | | |-- AddOp: + +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- DECIMAL_INT: 1 +| | | `-- Semi: ; +| | `-- R_BRACE: } +| |-- blockItem +| | `-- stmt +| | |-- lVal +| | | `-- Ident: i +| | |-- Assign: = +| | |-- exp +| | | `-- addExp +| | | `-- mulExp +| | | `-- unaryExp +| | | `-- primary +| | | `-- OCTAL_INT: 0 +| | `-- Semi: ; +| |-- blockItem +| | `-- stmt +| | |-- While: while +| | |-- L_PAREN: ( +| | |-- cond +| | | `-- lOrExp +| | | `-- lAndExp +| | | `-- eqExp +| | | `-- relExp +| | | |-- relExp +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- lVal +| | | | `-- Ident: i +| | | |-- LOp: < +| | | `-- addExp +| | | `-- mulExp +| | | `-- unaryExp +| | | `-- primary +| | | `-- lVal +| | | `-- Ident: T +| | |-- R_PAREN: ) +| | `-- stmt +| | `-- block +| | |-- L_BRACE: { +| | |-- blockItem +| | | `-- stmt +| | | |-- If: if +| | | |-- L_PAREN: ( +| | | |-- cond +| | | | `-- lOrExp +| | | | `-- lAndExp +| | | | `-- eqExp +| | | | `-- relExp +| | | | |-- relExp +| | | | | `-- addExp +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- lVal +| | | | | `-- Ident: i +| | | | |-- LOp: < +| | | | `-- addExp +| | | | `-- mulExp +| | | | |-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- lVal +| | | | | `-- Ident: T +| | | | |-- DivOp: / +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- DECIMAL_INT: 2 +| | | |-- R_PAREN: ) +| | | `-- stmt +| | | `-- block +| | | |-- L_BRACE: { +| | | |-- blockItem +| | | | `-- decl +| | | | `-- varDecl +| | | | |-- bType +| | | | | `-- Int: int +| | | | |-- varDef +| | | | | |-- Ident: j +| | | | | |-- Assign: = +| | | | | `-- initVal +| | | | | `-- exp +| | | | | `-- addExp +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- OCTAL_INT: 0 +| | | | `-- Semi: ; +| | | |-- blockItem +| | | | `-- stmt +| | | | |-- While: while +| | | | |-- L_PAREN: ( +| | | | |-- cond +| | | | | `-- lOrExp +| | | | | `-- lAndExp +| | | | | `-- eqExp +| | | | | `-- relExp +| | | | | |-- relExp +| | | | | | `-- addExp +| | | | | | `-- mulExp +| | | | | | `-- unaryExp +| | | | | | `-- primary +| | | | | | `-- lVal +| | | | | | `-- Ident: j +| | | | | |-- LOp: < +| | | | | `-- addExp +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- lVal +| | | | | `-- Ident: T +| | | | |-- R_PAREN: ) +| | | | `-- stmt +| | | | `-- block +| | | | |-- L_BRACE: { +| | | | |-- blockItem +| | | | | `-- stmt +| | | | | |-- lVal +| | | | | | |-- Ident: B +| | | | | | |-- L_BRACK: [ +| | | | | | |-- exp +| | | | | | | `-- addExp +| | | | | | | `-- mulExp +| | | | | | | `-- unaryExp +| | | | | | | `-- primary +| | | | | | | `-- lVal +| | | | | | | `-- Ident: i +| | | | | | |-- R_BRACK: ] +| | | | | | |-- L_BRACK: [ +| | | | | | |-- exp +| | | | | | | `-- addExp +| | | | | | | `-- mulExp +| | | | | | | `-- unaryExp +| | | | | | | `-- primary +| | | | | | | `-- lVal +| | | | | | | `-- Ident: j +| | | | | | `-- R_BRACK: ] +| | | | | |-- Assign: = +| | | | | |-- exp +| | | | | | `-- addExp +| | | | | | `-- mulExp +| | | | | | `-- unaryExp +| | | | | | |-- unaryOp +| | | | | | | `-- SubOp: - +| | | | | | `-- unaryExp +| | | | | | `-- primary +| | | | | | `-- DECIMAL_INT: 1 +| | | | | `-- Semi: ; +| | | | |-- blockItem +| | | | | `-- stmt +| | | | | |-- lVal +| | | | | | `-- Ident: j +| | | | | |-- Assign: = +| | | | | |-- exp +| | | | | | `-- addExp +| | | | | | |-- addExp +| | | | | | | `-- mulExp +| | | | | | | `-- unaryExp +| | | | | | | `-- primary +| | | | | | | `-- lVal +| | | | | | | `-- Ident: j +| | | | | | |-- AddOp: + +| | | | | | `-- mulExp +| | | | | | `-- unaryExp +| | | | | | `-- primary +| | | | | | `-- DECIMAL_INT: 1 +| | | | | `-- Semi: ; +| | | | `-- R_BRACE: } +| | | `-- R_BRACE: } +| | |-- blockItem +| | | `-- stmt +| | | |-- lVal +| | | | `-- Ident: i +| | | |-- Assign: = +| | | |-- exp +| | | | `-- addExp +| | | | |-- addExp +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- lVal +| | | | | `-- Ident: i +| | | | |-- AddOp: + +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- DECIMAL_INT: 1 +| | | `-- Semi: ; +| | `-- R_BRACE: } +| |-- blockItem +| | `-- stmt +| | |-- lVal +| | | `-- Ident: i +| | |-- Assign: = +| | |-- exp +| | | `-- addExp +| | | `-- mulExp +| | | `-- unaryExp +| | | `-- primary +| | | `-- OCTAL_INT: 0 +| | `-- Semi: ; +| |-- blockItem +| | `-- stmt +| | |-- While: while +| | |-- L_PAREN: ( +| | |-- cond +| | | `-- lOrExp +| | | `-- lAndExp +| | | `-- eqExp +| | | `-- relExp +| | | |-- relExp +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- lVal +| | | | `-- Ident: i +| | | |-- LOp: < +| | | `-- addExp +| | | `-- mulExp +| | | `-- unaryExp +| | | `-- primary +| | | `-- lVal +| | | `-- Ident: T +| | |-- R_PAREN: ) +| | `-- stmt +| | `-- block +| | |-- L_BRACE: { +| | |-- blockItem +| | | `-- decl +| | | `-- varDecl +| | | |-- bType +| | | | `-- Int: int +| | | |-- varDef +| | | | |-- Ident: j +| | | | |-- Assign: = +| | | | `-- initVal +| | | | `-- exp +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- OCTAL_INT: 0 +| | | `-- Semi: ; +| | |-- blockItem +| | | `-- stmt +| | | |-- While: while +| | | |-- L_PAREN: ( +| | | |-- cond +| | | | `-- lOrExp +| | | | `-- lAndExp +| | | | `-- eqExp +| | | | `-- relExp +| | | | |-- relExp +| | | | | `-- addExp +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- lVal +| | | | | `-- Ident: j +| | | | |-- LOp: < +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- lVal +| | | | `-- Ident: T +| | | |-- R_PAREN: ) +| | | `-- stmt +| | | `-- block +| | | |-- L_BRACE: { +| | | |-- blockItem +| | | | `-- stmt +| | | | |-- lVal +| | | | | |-- Ident: C +| | | | | |-- L_BRACK: [ +| | | | | |-- exp +| | | | | | `-- addExp +| | | | | | `-- mulExp +| | | | | | `-- unaryExp +| | | | | | `-- primary +| | | | | | `-- lVal +| | | | | | `-- Ident: i +| | | | | |-- R_BRACK: ] +| | | | | |-- L_BRACK: [ +| | | | | |-- exp +| | | | | | `-- addExp +| | | | | | `-- mulExp +| | | | | | `-- unaryExp +| | | | | | `-- primary +| | | | | | `-- lVal +| | | | | | `-- Ident: j +| | | | | `-- R_BRACK: ] +| | | | |-- Assign: = +| | | | |-- exp +| | | | | `-- addExp +| | | | | |-- addExp +| | | | | | `-- mulExp +| | | | | | |-- mulExp +| | | | | | | `-- unaryExp +| | | | | | | `-- primary +| | | | | | | `-- lVal +| | | | | | | |-- Ident: A +| | | | | | | |-- L_BRACK: [ +| | | | | | | |-- exp +| | | | | | | | `-- addExp +| | | | | | | | `-- mulExp +| | | | | | | | `-- unaryExp +| | | | | | | | `-- primary +| | | | | | | | `-- lVal +| | | | | | | | `-- Ident: i +| | | | | | | |-- R_BRACK: ] +| | | | | | | |-- L_BRACK: [ +| | | | | | | |-- exp +| | | | | | | | `-- addExp +| | | | | | | | `-- mulExp +| | | | | | | | `-- unaryExp +| | | | | | | | `-- primary +| | | | | | | | `-- lVal +| | | | | | | | `-- Ident: j +| | | | | | | `-- R_BRACK: ] +| | | | | | |-- MulOp: * +| | | | | | `-- unaryExp +| | | | | | `-- primary +| | | | | | `-- DECIMAL_INT: 2 +| | | | | |-- AddOp: + +| | | | | `-- mulExp +| | | | | |-- mulExp +| | | | | | `-- unaryExp +| | | | | | `-- primary +| | | | | | `-- lVal +| | | | | | |-- Ident: B +| | | | | | |-- L_BRACK: [ +| | | | | | |-- exp +| | | | | | | `-- addExp +| | | | | | | `-- mulExp +| | | | | | | `-- unaryExp +| | | | | | | `-- primary +| | | | | | | `-- lVal +| | | | | | | `-- Ident: i +| | | | | | |-- R_BRACK: ] +| | | | | | |-- L_BRACK: [ +| | | | | | |-- exp +| | | | | | | `-- addExp +| | | | | | | `-- mulExp +| | | | | | | `-- unaryExp +| | | | | | | `-- primary +| | | | | | | `-- lVal +| | | | | | | `-- Ident: j +| | | | | | `-- R_BRACK: ] +| | | | | |-- MulOp: * +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- DECIMAL_INT: 3 +| | | | `-- Semi: ; +| | | |-- blockItem +| | | | `-- stmt +| | | | |-- lVal +| | | | | `-- Ident: j +| | | | |-- Assign: = +| | | | |-- exp +| | | | | `-- addExp +| | | | | |-- addExp +| | | | | | `-- mulExp +| | | | | | `-- unaryExp +| | | | | | `-- primary +| | | | | | `-- lVal +| | | | | | `-- Ident: j +| | | | | |-- AddOp: + +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- DECIMAL_INT: 1 +| | | | `-- Semi: ; +| | | `-- R_BRACE: } +| | |-- blockItem +| | | `-- stmt +| | | |-- lVal +| | | | `-- Ident: i +| | | |-- Assign: = +| | | |-- exp +| | | | `-- addExp +| | | | |-- addExp +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- lVal +| | | | | `-- Ident: i +| | | | |-- AddOp: + +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- DECIMAL_INT: 1 +| | | `-- Semi: ; +| | `-- R_BRACE: } +| |-- blockItem +| | `-- stmt +| | |-- lVal +| | | `-- Ident: i +| | |-- Assign: = +| | |-- exp +| | | `-- addExp +| | | `-- mulExp +| | | `-- unaryExp +| | | `-- primary +| | | `-- OCTAL_INT: 0 +| | `-- Semi: ; +| |-- blockItem +| | `-- stmt +| | |-- While: while +| | |-- L_PAREN: ( +| | |-- cond +| | | `-- lOrExp +| | | `-- lAndExp +| | | `-- eqExp +| | | `-- relExp +| | | |-- relExp +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- lVal +| | | | `-- Ident: i +| | | |-- LOp: < +| | | `-- addExp +| | | `-- mulExp +| | | `-- unaryExp +| | | `-- primary +| | | `-- lVal +| | | `-- Ident: T +| | |-- R_PAREN: ) +| | `-- stmt +| | `-- block +| | |-- L_BRACE: { +| | |-- blockItem +| | | `-- decl +| | | `-- varDecl +| | | |-- bType +| | | | `-- Int: int +| | | |-- varDef +| | | | |-- Ident: j +| | | | |-- Assign: = +| | | | `-- initVal +| | | | `-- exp +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- OCTAL_INT: 0 +| | | `-- Semi: ; +| | |-- blockItem +| | | `-- stmt +| | | |-- While: while +| | | |-- L_PAREN: ( +| | | |-- cond +| | | | `-- lOrExp +| | | | `-- lAndExp +| | | | `-- eqExp +| | | | `-- relExp +| | | | |-- relExp +| | | | | `-- addExp +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- lVal +| | | | | `-- Ident: j +| | | | |-- LOp: < +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- lVal +| | | | `-- Ident: T +| | | |-- R_PAREN: ) +| | | `-- stmt +| | | `-- block +| | | |-- L_BRACE: { +| | | |-- blockItem +| | | | `-- decl +| | | | `-- varDecl +| | | | |-- bType +| | | | | `-- Int: int +| | | | |-- varDef +| | | | | |-- Ident: val +| | | | | |-- Assign: = +| | | | | `-- initVal +| | | | | `-- exp +| | | | | `-- addExp +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- lVal +| | | | | |-- Ident: C +| | | | | |-- L_BRACK: [ +| | | | | |-- exp +| | | | | | `-- addExp +| | | | | | `-- mulExp +| | | | | | `-- unaryExp +| | | | | | `-- primary +| | | | | | `-- lVal +| | | | | | `-- Ident: i +| | | | | |-- R_BRACK: ] +| | | | | |-- L_BRACK: [ +| | | | | |-- exp +| | | | | | `-- addExp +| | | | | | `-- mulExp +| | | | | | `-- unaryExp +| | | | | | `-- primary +| | | | | | `-- lVal +| | | | | | `-- Ident: j +| | | | | `-- R_BRACK: ] +| | | | `-- Semi: ; +| | | |-- blockItem +| | | | `-- stmt +| | | | |-- lVal +| | | | | `-- Ident: val +| | | | |-- Assign: = +| | | | |-- exp +| | | | | `-- addExp +| | | | | |-- addExp +| | | | | | `-- mulExp +| | | | | | |-- mulExp +| | | | | | | `-- unaryExp +| | | | | | | `-- primary +| | | | | | | `-- lVal +| | | | | | | `-- Ident: val +| | | | | | |-- MulOp: * +| | | | | | `-- unaryExp +| | | | | | `-- primary +| | | | | | `-- lVal +| | | | | | `-- Ident: val +| | | | | |-- AddOp: + +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- DECIMAL_INT: 7 +| | | | `-- Semi: ; +| | | |-- blockItem +| | | | `-- stmt +| | | | |-- lVal +| | | | | `-- Ident: val +| | | | |-- Assign: = +| | | | |-- exp +| | | | | `-- addExp +| | | | | `-- mulExp +| | | | | |-- mulExp +| | | | | | `-- unaryExp +| | | | | | `-- primary +| | | | | | `-- lVal +| | | | | | `-- Ident: val +| | | | | |-- DivOp: / +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- DECIMAL_INT: 3 +| | | | `-- Semi: ; +| | | |-- blockItem +| | | | `-- stmt +| | | | |-- lVal +| | | | | |-- Ident: C +| | | | | |-- L_BRACK: [ +| | | | | |-- exp +| | | | | | `-- addExp +| | | | | | `-- mulExp +| | | | | | `-- unaryExp +| | | | | | `-- primary +| | | | | | `-- lVal +| | | | | | `-- Ident: i +| | | | | |-- R_BRACK: ] +| | | | | |-- L_BRACK: [ +| | | | | |-- exp +| | | | | | `-- addExp +| | | | | | `-- mulExp +| | | | | | `-- unaryExp +| | | | | | `-- primary +| | | | | | `-- lVal +| | | | | | `-- Ident: j +| | | | | `-- R_BRACK: ] +| | | | |-- Assign: = +| | | | |-- exp +| | | | | `-- addExp +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- lVal +| | | | | `-- Ident: val +| | | | `-- Semi: ; +| | | |-- blockItem +| | | | `-- stmt +| | | | |-- lVal +| | | | | `-- Ident: j +| | | | |-- Assign: = +| | | | |-- exp +| | | | | `-- addExp +| | | | | |-- addExp +| | | | | | `-- mulExp +| | | | | | `-- unaryExp +| | | | | | `-- primary +| | | | | | `-- lVal +| | | | | | `-- Ident: j +| | | | | |-- AddOp: + +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- DECIMAL_INT: 1 +| | | | `-- Semi: ; +| | | `-- R_BRACE: } +| | |-- blockItem +| | | `-- stmt +| | | |-- lVal +| | | | `-- Ident: i +| | | |-- Assign: = +| | | |-- exp +| | | | `-- addExp +| | | | |-- addExp +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- lVal +| | | | | `-- Ident: i +| | | | |-- AddOp: + +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- DECIMAL_INT: 1 +| | | `-- Semi: ; +| | `-- R_BRACE: } +| |-- blockItem +| | `-- stmt +| | |-- lVal +| | | `-- Ident: i +| | |-- Assign: = +| | |-- exp +| | | `-- addExp +| | | `-- mulExp +| | | `-- unaryExp +| | | `-- primary +| | | `-- OCTAL_INT: 0 +| | `-- Semi: ; +| |-- blockItem +| | `-- stmt +| | |-- While: while +| | |-- L_PAREN: ( +| | |-- cond +| | | `-- lOrExp +| | | `-- lAndExp +| | | `-- eqExp +| | | `-- relExp +| | | |-- relExp +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- lVal +| | | | `-- Ident: i +| | | |-- LOp: < +| | | `-- addExp +| | | `-- mulExp +| | | `-- unaryExp +| | | `-- primary +| | | `-- lVal +| | | `-- Ident: T +| | |-- R_PAREN: ) +| | `-- stmt +| | `-- block +| | |-- L_BRACE: { +| | |-- blockItem +| | | `-- decl +| | | `-- varDecl +| | | |-- bType +| | | | `-- Int: int +| | | |-- varDef +| | | | |-- Ident: j +| | | | |-- Assign: = +| | | | `-- initVal +| | | | `-- exp +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- OCTAL_INT: 0 +| | | `-- Semi: ; +| | |-- blockItem +| | | `-- stmt +| | | |-- While: while +| | | |-- L_PAREN: ( +| | | |-- cond +| | | | `-- lOrExp +| | | | `-- lAndExp +| | | | `-- eqExp +| | | | `-- relExp +| | | | |-- relExp +| | | | | `-- addExp +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- lVal +| | | | | `-- Ident: j +| | | | |-- LOp: < +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- lVal +| | | | `-- Ident: T +| | | |-- R_PAREN: ) +| | | `-- stmt +| | | `-- block +| | | |-- L_BRACE: { +| | | |-- blockItem +| | | | `-- decl +| | | | `-- varDecl +| | | | |-- bType +| | | | | `-- Int: int +| | | | |-- varDef +| | | | | |-- Ident: k +| | | | | |-- Assign: = +| | | | | `-- initVal +| | | | | `-- exp +| | | | | `-- addExp +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- OCTAL_INT: 0 +| | | | `-- Semi: ; +| | | |-- blockItem +| | | | `-- decl +| | | | `-- varDecl +| | | | |-- bType +| | | | | `-- Int: int +| | | | |-- varDef +| | | | | |-- Ident: sum +| | | | | |-- Assign: = +| | | | | `-- initVal +| | | | | `-- exp +| | | | | `-- addExp +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- OCTAL_INT: 0 +| | | | `-- Semi: ; +| | | |-- blockItem +| | | | `-- stmt +| | | | |-- While: while +| | | | |-- L_PAREN: ( +| | | | |-- cond +| | | | | `-- lOrExp +| | | | | `-- lAndExp +| | | | | `-- eqExp +| | | | | `-- relExp +| | | | | |-- relExp +| | | | | | `-- addExp +| | | | | | `-- mulExp +| | | | | | `-- unaryExp +| | | | | | `-- primary +| | | | | | `-- lVal +| | | | | | `-- Ident: k +| | | | | |-- LOp: < +| | | | | `-- addExp +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- lVal +| | | | | `-- Ident: T +| | | | |-- R_PAREN: ) +| | | | `-- stmt +| | | | `-- block +| | | | |-- L_BRACE: { +| | | | |-- blockItem +| | | | | `-- stmt +| | | | | |-- lVal +| | | | | | `-- Ident: sum +| | | | | |-- Assign: = +| | | | | |-- exp +| | | | | | `-- addExp +| | | | | | |-- addExp +| | | | | | | `-- mulExp +| | | | | | | `-- unaryExp +| | | | | | | `-- primary +| | | | | | | `-- lVal +| | | | | | | `-- Ident: sum +| | | | | | |-- AddOp: + +| | | | | | `-- mulExp +| | | | | | |-- mulExp +| | | | | | | `-- unaryExp +| | | | | | | `-- primary +| | | | | | | `-- lVal +| | | | | | | |-- Ident: C +| | | | | | | |-- L_BRACK: [ +| | | | | | | |-- exp +| | | | | | | | `-- addExp +| | | | | | | | `-- mulExp +| | | | | | | | `-- unaryExp +| | | | | | | | `-- primary +| | | | | | | | `-- lVal +| | | | | | | | `-- Ident: i +| | | | | | | |-- R_BRACK: ] +| | | | | | | |-- L_BRACK: [ +| | | | | | | |-- exp +| | | | | | | | `-- addExp +| | | | | | | | `-- mulExp +| | | | | | | | `-- unaryExp +| | | | | | | | `-- primary +| | | | | | | | `-- lVal +| | | | | | | | `-- Ident: k +| | | | | | | `-- R_BRACK: ] +| | | | | | |-- MulOp: * +| | | | | | `-- unaryExp +| | | | | | `-- primary +| | | | | | `-- lVal +| | | | | | |-- Ident: A +| | | | | | |-- L_BRACK: [ +| | | | | | |-- exp +| | | | | | | `-- addExp +| | | | | | | `-- mulExp +| | | | | | | `-- unaryExp +| | | | | | | `-- primary +| | | | | | | `-- lVal +| | | | | | | `-- Ident: k +| | | | | | |-- R_BRACK: ] +| | | | | | |-- L_BRACK: [ +| | | | | | |-- exp +| | | | | | | `-- addExp +| | | | | | | `-- mulExp +| | | | | | | `-- unaryExp +| | | | | | | `-- primary +| | | | | | | `-- lVal +| | | | | | | `-- Ident: j +| | | | | | `-- R_BRACK: ] +| | | | | `-- Semi: ; +| | | | |-- blockItem +| | | | | `-- stmt +| | | | | |-- lVal +| | | | | | `-- Ident: k +| | | | | |-- Assign: = +| | | | | |-- exp +| | | | | | `-- addExp +| | | | | | |-- addExp +| | | | | | | `-- mulExp +| | | | | | | `-- unaryExp +| | | | | | | `-- primary +| | | | | | | `-- lVal +| | | | | | | `-- Ident: k +| | | | | | |-- AddOp: + +| | | | | | `-- mulExp +| | | | | | `-- unaryExp +| | | | | | `-- primary +| | | | | | `-- DECIMAL_INT: 1 +| | | | | `-- Semi: ; +| | | | `-- R_BRACE: } +| | | |-- blockItem +| | | | `-- stmt +| | | | |-- lVal +| | | | | |-- Ident: A +| | | | | |-- L_BRACK: [ +| | | | | |-- exp +| | | | | | `-- addExp +| | | | | | `-- mulExp +| | | | | | `-- unaryExp +| | | | | | `-- primary +| | | | | | `-- lVal +| | | | | | `-- Ident: i +| | | | | |-- R_BRACK: ] +| | | | | |-- L_BRACK: [ +| | | | | |-- exp +| | | | | | `-- addExp +| | | | | | `-- mulExp +| | | | | | `-- unaryExp +| | | | | | `-- primary +| | | | | | `-- lVal +| | | | | | `-- Ident: j +| | | | | `-- R_BRACK: ] +| | | | |-- Assign: = +| | | | |-- exp +| | | | | `-- addExp +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- lVal +| | | | | `-- Ident: sum +| | | | `-- Semi: ; +| | | |-- blockItem +| | | | `-- stmt +| | | | |-- lVal +| | | | | `-- Ident: j +| | | | |-- Assign: = +| | | | |-- exp +| | | | | `-- addExp +| | | | | |-- addExp +| | | | | | `-- mulExp +| | | | | | `-- unaryExp +| | | | | | `-- primary +| | | | | | `-- lVal +| | | | | | `-- Ident: j +| | | | | |-- AddOp: + +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- DECIMAL_INT: 1 +| | | | `-- Semi: ; +| | | `-- R_BRACE: } +| | |-- blockItem +| | | `-- stmt +| | | |-- lVal +| | | | `-- Ident: i +| | | |-- Assign: = +| | | |-- exp +| | | | `-- addExp +| | | | |-- addExp +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- lVal +| | | | | `-- Ident: i +| | | | |-- AddOp: + +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- DECIMAL_INT: 1 +| | | `-- Semi: ; +| | `-- R_BRACE: } +| |-- blockItem +| | `-- decl +| | `-- varDecl +| | |-- bType +| | | `-- Int: int +| | |-- varDef +| | | |-- Ident: total +| | | |-- Assign: = +| | | `-- initVal +| | | `-- exp +| | | `-- addExp +| | | `-- mulExp +| | | `-- unaryExp +| | | `-- primary +| | | `-- OCTAL_INT: 0 +| | `-- Semi: ; +| |-- blockItem +| | `-- decl +| | `-- varDecl +| | |-- bType +| | | `-- Int: int +| | |-- varDef +| | | |-- Ident: r +| | | |-- Assign: = +| | | `-- initVal +| | | `-- exp +| | | `-- addExp +| | | `-- mulExp +| | | `-- unaryExp +| | | `-- primary +| | | `-- OCTAL_INT: 0 +| | `-- Semi: ; +| |-- blockItem +| | `-- stmt +| | |-- While: while +| | |-- L_PAREN: ( +| | |-- cond +| | | `-- lOrExp +| | | `-- lAndExp +| | | `-- eqExp +| | | `-- relExp +| | | |-- relExp +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- lVal +| | | | `-- Ident: r +| | | |-- LOp: < +| | | `-- addExp +| | | `-- mulExp +| | | `-- unaryExp +| | | `-- primary +| | | `-- lVal +| | | `-- Ident: R +| | |-- R_PAREN: ) +| | `-- stmt +| | `-- block +| | |-- L_BRACE: { +| | |-- blockItem +| | | `-- stmt +| | | |-- lVal +| | | | `-- Ident: i +| | | |-- Assign: = +| | | |-- exp +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- OCTAL_INT: 0 +| | | `-- Semi: ; +| | |-- blockItem +| | | `-- stmt +| | | |-- While: while +| | | |-- L_PAREN: ( +| | | |-- cond +| | | | `-- lOrExp +| | | | `-- lAndExp +| | | | `-- eqExp +| | | | `-- relExp +| | | | |-- relExp +| | | | | `-- addExp +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- lVal +| | | | | `-- Ident: i +| | | | |-- LOp: < +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- lVal +| | | | `-- Ident: T +| | | |-- R_PAREN: ) +| | | `-- stmt +| | | `-- block +| | | |-- L_BRACE: { +| | | |-- blockItem +| | | | `-- decl +| | | | `-- varDecl +| | | | |-- bType +| | | | | `-- Int: int +| | | | |-- varDef +| | | | | |-- Ident: j +| | | | | |-- Assign: = +| | | | | `-- initVal +| | | | | `-- exp +| | | | | `-- addExp +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- OCTAL_INT: 0 +| | | | `-- Semi: ; +| | | |-- blockItem +| | | | `-- stmt +| | | | |-- While: while +| | | | |-- L_PAREN: ( +| | | | |-- cond +| | | | | `-- lOrExp +| | | | | `-- lAndExp +| | | | | `-- eqExp +| | | | | `-- relExp +| | | | | |-- relExp +| | | | | | `-- addExp +| | | | | | `-- mulExp +| | | | | | `-- unaryExp +| | | | | | `-- primary +| | | | | | `-- lVal +| | | | | | `-- Ident: j +| | | | | |-- LOp: < +| | | | | `-- addExp +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- lVal +| | | | | `-- Ident: T +| | | | |-- R_PAREN: ) +| | | | `-- stmt +| | | | `-- block +| | | | |-- L_BRACE: { +| | | | |-- blockItem +| | | | | `-- stmt +| | | | | |-- lVal +| | | | | | `-- Ident: total +| | | | | |-- Assign: = +| | | | | |-- exp +| | | | | | `-- addExp +| | | | | | |-- addExp +| | | | | | | `-- mulExp +| | | | | | | `-- unaryExp +| | | | | | | `-- primary +| | | | | | | `-- lVal +| | | | | | | `-- Ident: total +| | | | | | |-- AddOp: + +| | | | | | `-- mulExp +| | | | | | |-- mulExp +| | | | | | | `-- unaryExp +| | | | | | | `-- primary +| | | | | | | `-- lVal +| | | | | | | |-- Ident: A +| | | | | | | |-- L_BRACK: [ +| | | | | | | |-- exp +| | | | | | | | `-- addExp +| | | | | | | | `-- mulExp +| | | | | | | | `-- unaryExp +| | | | | | | | `-- primary +| | | | | | | | `-- lVal +| | | | | | | | `-- Ident: i +| | | | | | | |-- R_BRACK: ] +| | | | | | | |-- L_BRACK: [ +| | | | | | | |-- exp +| | | | | | | | `-- addExp +| | | | | | | | `-- mulExp +| | | | | | | | `-- unaryExp +| | | | | | | | `-- primary +| | | | | | | | `-- lVal +| | | | | | | | `-- Ident: j +| | | | | | | `-- R_BRACK: ] +| | | | | | |-- MulOp: * +| | | | | | `-- unaryExp +| | | | | | `-- primary +| | | | | | `-- lVal +| | | | | | |-- Ident: A +| | | | | | |-- L_BRACK: [ +| | | | | | |-- exp +| | | | | | | `-- addExp +| | | | | | | `-- mulExp +| | | | | | | `-- unaryExp +| | | | | | | `-- primary +| | | | | | | `-- lVal +| | | | | | | `-- Ident: i +| | | | | | |-- R_BRACK: ] +| | | | | | |-- L_BRACK: [ +| | | | | | |-- exp +| | | | | | | `-- addExp +| | | | | | | `-- mulExp +| | | | | | | `-- unaryExp +| | | | | | | `-- primary +| | | | | | | `-- lVal +| | | | | | | `-- Ident: j +| | | | | | `-- R_BRACK: ] +| | | | | `-- Semi: ; +| | | | |-- blockItem +| | | | | `-- stmt +| | | | | |-- lVal +| | | | | | `-- Ident: j +| | | | | |-- Assign: = +| | | | | |-- exp +| | | | | | `-- addExp +| | | | | | |-- addExp +| | | | | | | `-- mulExp +| | | | | | | `-- unaryExp +| | | | | | | `-- primary +| | | | | | | `-- lVal +| | | | | | | `-- Ident: j +| | | | | | |-- AddOp: + +| | | | | | `-- mulExp +| | | | | | `-- unaryExp +| | | | | | `-- primary +| | | | | | `-- DECIMAL_INT: 1 +| | | | | `-- Semi: ; +| | | | `-- R_BRACE: } +| | | |-- blockItem +| | | | `-- stmt +| | | | |-- lVal +| | | | | `-- Ident: i +| | | | |-- Assign: = +| | | | |-- exp +| | | | | `-- addExp +| | | | | |-- addExp +| | | | | | `-- mulExp +| | | | | | `-- unaryExp +| | | | | | `-- primary +| | | | | | `-- lVal +| | | | | | `-- Ident: i +| | | | | |-- AddOp: + +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- DECIMAL_INT: 1 +| | | | `-- Semi: ; +| | | `-- R_BRACE: } +| | |-- blockItem +| | | `-- stmt +| | | |-- lVal +| | | | `-- Ident: r +| | | |-- Assign: = +| | | |-- exp +| | | | `-- addExp +| | | | |-- addExp +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- lVal +| | | | | `-- Ident: r +| | | | |-- AddOp: + +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- DECIMAL_INT: 1 +| | | `-- Semi: ; +| | `-- R_BRACE: } +| |-- blockItem +| | `-- stmt +| | |-- exp +| | | `-- addExp +| | | `-- mulExp +| | | `-- unaryExp +| | | |-- Ident: stoptime +| | | |-- L_PAREN: ( +| | | `-- R_PAREN: ) +| | `-- Semi: ; +| |-- blockItem +| | `-- stmt +| | |-- exp +| | | `-- addExp +| | | `-- mulExp +| | | `-- unaryExp +| | | |-- Ident: putint +| | | |-- L_PAREN: ( +| | | |-- funcRParams +| | | | `-- exp +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- lVal +| | | | `-- Ident: total +| | | `-- R_PAREN: ) +| | `-- Semi: ; +| |-- blockItem +| | `-- stmt +| | |-- exp +| | | `-- addExp +| | | `-- mulExp +| | | `-- unaryExp +| | | |-- Ident: putch +| | | |-- L_PAREN: ( +| | | |-- funcRParams +| | | | `-- exp +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- DECIMAL_INT: 10 +| | | `-- R_PAREN: ) +| | `-- Semi: ; +| |-- blockItem +| | `-- stmt +| | `-- returnStmt +| | |-- Return: return +| | |-- exp +| | | `-- addExp +| | | `-- mulExp +| | | `-- unaryExp +| | | `-- primary +| | | `-- OCTAL_INT: 0 +| | `-- Semi: ; +| `-- R_BRACE: } +`-- EOF: + +========== test/test_case/performance/fft0.sy ========== +compUnit +|-- program +| |-- decl +| | `-- constDecl +| | |-- Const: const +| | |-- bType +| | | `-- Int: int +| | |-- constDef +| | | |-- Ident: mod +| | | |-- Assign: = +| | | `-- constInitVal +| | | `-- constExp +| | | `-- addExp +| | | `-- mulExp +| | | `-- unaryExp +| | | `-- primary +| | | `-- DECIMAL_INT: 998244353 +| | `-- Semi: ; +| |-- decl +| | `-- varDecl +| | |-- bType +| | | `-- Int: int +| | |-- varDef +| | | `-- Ident: d +| | `-- Semi: ; +| |-- funcDef +| | |-- funcType +| | | `-- Int: int +| | |-- Ident: multiply +| | |-- L_PAREN: ( +| | |-- funcFParams +| | | |-- funcFParam +| | | | |-- bType +| | | | | `-- Int: int +| | | | `-- Ident: a +| | | |-- Comma: , +| | | `-- funcFParam +| | | |-- bType +| | | | `-- Int: int +| | | `-- Ident: b +| | |-- R_PAREN: ) +| | `-- block +| | |-- L_BRACE: { +| | |-- blockItem +| | | `-- stmt +| | | |-- If: if +| | | |-- L_PAREN: ( +| | | |-- cond +| | | | `-- lOrExp +| | | | `-- lAndExp +| | | | `-- eqExp +| | | | |-- eqExp +| | | | | `-- relExp +| | | | | `-- addExp +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- lVal +| | | | | `-- Ident: b +| | | | |-- EqOp: == +| | | | `-- relExp +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- OCTAL_INT: 0 +| | | |-- R_PAREN: ) +| | | `-- stmt +| | | `-- returnStmt +| | | |-- Return: return +| | | |-- exp +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- OCTAL_INT: 0 +| | | `-- Semi: ; +| | |-- blockItem +| | | `-- stmt +| | | |-- If: if +| | | |-- L_PAREN: ( +| | | |-- cond +| | | | `-- lOrExp +| | | | `-- lAndExp +| | | | `-- eqExp +| | | | |-- eqExp +| | | | | `-- relExp +| | | | | `-- addExp +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- lVal +| | | | | `-- Ident: b +| | | | |-- EqOp: == +| | | | `-- relExp +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- DECIMAL_INT: 1 +| | | |-- R_PAREN: ) +| | | `-- stmt +| | | `-- returnStmt +| | | |-- Return: return +| | | |-- exp +| | | | `-- addExp +| | | | `-- mulExp +| | | | |-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- lVal +| | | | | `-- Ident: a +| | | | |-- QuoOp: % +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- lVal +| | | | `-- Ident: mod +| | | `-- Semi: ; +| | |-- blockItem +| | | `-- decl +| | | `-- varDecl +| | | |-- bType +| | | | `-- Int: int +| | | |-- varDef +| | | | |-- Ident: cur +| | | | |-- Assign: = +| | | | `-- initVal +| | | | `-- exp +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | |-- Ident: multiply +| | | | |-- L_PAREN: ( +| | | | |-- funcRParams +| | | | | |-- exp +| | | | | | `-- addExp +| | | | | | `-- mulExp +| | | | | | `-- unaryExp +| | | | | | `-- primary +| | | | | | `-- lVal +| | | | | | `-- Ident: a +| | | | | |-- Comma: , +| | | | | `-- exp +| | | | | `-- addExp +| | | | | `-- mulExp +| | | | | |-- mulExp +| | | | | | `-- unaryExp +| | | | | | `-- primary +| | | | | | `-- lVal +| | | | | | `-- Ident: b +| | | | | |-- DivOp: / +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- DECIMAL_INT: 2 +| | | | `-- R_PAREN: ) +| | | `-- Semi: ; +| | |-- blockItem +| | | `-- stmt +| | | |-- lVal +| | | | `-- Ident: cur +| | | |-- Assign: = +| | | |-- exp +| | | | `-- addExp +| | | | `-- mulExp +| | | | |-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | |-- L_PAREN: ( +| | | | | |-- exp +| | | | | | `-- addExp +| | | | | | |-- addExp +| | | | | | | `-- mulExp +| | | | | | | `-- unaryExp +| | | | | | | `-- primary +| | | | | | | `-- lVal +| | | | | | | `-- Ident: cur +| | | | | | |-- AddOp: + +| | | | | | `-- mulExp +| | | | | | `-- unaryExp +| | | | | | `-- primary +| | | | | | `-- lVal +| | | | | | `-- Ident: cur +| | | | | `-- R_PAREN: ) +| | | | |-- QuoOp: % +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- lVal +| | | | `-- Ident: mod +| | | `-- Semi: ; +| | |-- blockItem +| | | `-- stmt +| | | |-- If: if +| | | |-- L_PAREN: ( +| | | |-- cond +| | | | `-- lOrExp +| | | | `-- lAndExp +| | | | `-- eqExp +| | | | |-- eqExp +| | | | | `-- relExp +| | | | | `-- addExp +| | | | | `-- mulExp +| | | | | |-- mulExp +| | | | | | `-- unaryExp +| | | | | | `-- primary +| | | | | | `-- lVal +| | | | | | `-- Ident: b +| | | | | |-- QuoOp: % +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- DECIMAL_INT: 2 +| | | | |-- EqOp: == +| | | | `-- relExp +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- DECIMAL_INT: 1 +| | | |-- R_PAREN: ) +| | | |-- stmt +| | | | `-- returnStmt +| | | | |-- Return: return +| | | | |-- exp +| | | | | `-- addExp +| | | | | `-- mulExp +| | | | | |-- mulExp +| | | | | | `-- unaryExp +| | | | | | `-- primary +| | | | | | |-- L_PAREN: ( +| | | | | | |-- exp +| | | | | | | `-- addExp +| | | | | | | |-- addExp +| | | | | | | | `-- mulExp +| | | | | | | | `-- unaryExp +| | | | | | | | `-- primary +| | | | | | | | `-- lVal +| | | | | | | | `-- Ident: cur +| | | | | | | |-- AddOp: + +| | | | | | | `-- mulExp +| | | | | | | `-- unaryExp +| | | | | | | `-- primary +| | | | | | | `-- lVal +| | | | | | | `-- Ident: a +| | | | | | `-- R_PAREN: ) +| | | | | |-- QuoOp: % +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- lVal +| | | | | `-- Ident: mod +| | | | `-- Semi: ; +| | | |-- Else: else +| | | `-- stmt +| | | `-- returnStmt +| | | |-- Return: return +| | | |-- exp +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- lVal +| | | | `-- Ident: cur +| | | `-- Semi: ; +| | `-- R_BRACE: } +| |-- funcDef +| | |-- funcType +| | | `-- Int: int +| | |-- Ident: power +| | |-- L_PAREN: ( +| | |-- funcFParams +| | | |-- funcFParam +| | | | |-- bType +| | | | | `-- Int: int +| | | | `-- Ident: a +| | | |-- Comma: , +| | | `-- funcFParam +| | | |-- bType +| | | | `-- Int: int +| | | `-- Ident: b +| | |-- R_PAREN: ) +| | `-- block +| | |-- L_BRACE: { +| | |-- blockItem +| | | `-- stmt +| | | |-- If: if +| | | |-- L_PAREN: ( +| | | |-- cond +| | | | `-- lOrExp +| | | | `-- lAndExp +| | | | `-- eqExp +| | | | |-- eqExp +| | | | | `-- relExp +| | | | | `-- addExp +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- lVal +| | | | | `-- Ident: b +| | | | |-- EqOp: == +| | | | `-- relExp +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- OCTAL_INT: 0 +| | | |-- R_PAREN: ) +| | | `-- stmt +| | | `-- returnStmt +| | | |-- Return: return +| | | |-- exp +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- DECIMAL_INT: 1 +| | | `-- Semi: ; +| | |-- blockItem +| | | `-- decl +| | | `-- varDecl +| | | |-- bType +| | | | `-- Int: int +| | | |-- varDef +| | | | |-- Ident: cur +| | | | |-- Assign: = +| | | | `-- initVal +| | | | `-- exp +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | |-- Ident: power +| | | | |-- L_PAREN: ( +| | | | |-- funcRParams +| | | | | |-- exp +| | | | | | `-- addExp +| | | | | | `-- mulExp +| | | | | | `-- unaryExp +| | | | | | `-- primary +| | | | | | `-- lVal +| | | | | | `-- Ident: a +| | | | | |-- Comma: , +| | | | | `-- exp +| | | | | `-- addExp +| | | | | `-- mulExp +| | | | | |-- mulExp +| | | | | | `-- unaryExp +| | | | | | `-- primary +| | | | | | `-- lVal +| | | | | | `-- Ident: b +| | | | | |-- DivOp: / +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- DECIMAL_INT: 2 +| | | | `-- R_PAREN: ) +| | | `-- Semi: ; +| | |-- blockItem +| | | `-- stmt +| | | |-- lVal +| | | | `-- Ident: cur +| | | |-- Assign: = +| | | |-- exp +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | |-- Ident: multiply +| | | | |-- L_PAREN: ( +| | | | |-- funcRParams +| | | | | |-- exp +| | | | | | `-- addExp +| | | | | | `-- mulExp +| | | | | | `-- unaryExp +| | | | | | `-- primary +| | | | | | `-- lVal +| | | | | | `-- Ident: cur +| | | | | |-- Comma: , +| | | | | `-- exp +| | | | | `-- addExp +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- lVal +| | | | | `-- Ident: cur +| | | | `-- R_PAREN: ) +| | | `-- Semi: ; +| | |-- blockItem +| | | `-- stmt +| | | |-- If: if +| | | |-- L_PAREN: ( +| | | |-- cond +| | | | `-- lOrExp +| | | | `-- lAndExp +| | | | `-- eqExp +| | | | |-- eqExp +| | | | | `-- relExp +| | | | | `-- addExp +| | | | | `-- mulExp +| | | | | |-- mulExp +| | | | | | `-- unaryExp +| | | | | | `-- primary +| | | | | | `-- lVal +| | | | | | `-- Ident: b +| | | | | |-- QuoOp: % +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- DECIMAL_INT: 2 +| | | | |-- EqOp: == +| | | | `-- relExp +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- DECIMAL_INT: 1 +| | | |-- R_PAREN: ) +| | | |-- stmt +| | | | `-- returnStmt +| | | | |-- Return: return +| | | | |-- exp +| | | | | `-- addExp +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | |-- Ident: multiply +| | | | | |-- L_PAREN: ( +| | | | | |-- funcRParams +| | | | | | |-- exp +| | | | | | | `-- addExp +| | | | | | | `-- mulExp +| | | | | | | `-- unaryExp +| | | | | | | `-- primary +| | | | | | | `-- lVal +| | | | | | | `-- Ident: cur +| | | | | | |-- Comma: , +| | | | | | `-- exp +| | | | | | `-- addExp +| | | | | | `-- mulExp +| | | | | | `-- unaryExp +| | | | | | `-- primary +| | | | | | `-- lVal +| | | | | | `-- Ident: a +| | | | | `-- R_PAREN: ) +| | | | `-- Semi: ; +| | | |-- Else: else +| | | `-- stmt +| | | `-- returnStmt +| | | |-- Return: return +| | | |-- exp +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- lVal +| | | | `-- Ident: cur +| | | `-- Semi: ; +| | `-- R_BRACE: } +| |-- decl +| | `-- constDecl +| | |-- Const: const +| | |-- bType +| | | `-- Int: int +| | |-- constDef +| | | |-- Ident: maxlen +| | | |-- Assign: = +| | | `-- constInitVal +| | | `-- constExp +| | | `-- addExp +| | | `-- mulExp +| | | `-- unaryExp +| | | `-- primary +| | | `-- DECIMAL_INT: 2097152 +| | `-- Semi: ; +| |-- decl +| | `-- varDecl +| | |-- bType +| | | `-- Int: int +| | |-- varDef +| | | |-- Ident: temp +| | | |-- L_BRACK: [ +| | | |-- constExp +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- lVal +| | | | `-- Ident: maxlen +| | | `-- R_BRACK: ] +| | |-- Comma: , +| | |-- varDef +| | | |-- Ident: a +| | | |-- L_BRACK: [ +| | | |-- constExp +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- lVal +| | | | `-- Ident: maxlen +| | | `-- R_BRACK: ] +| | |-- Comma: , +| | |-- varDef +| | | |-- Ident: b +| | | |-- L_BRACK: [ +| | | |-- constExp +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- lVal +| | | | `-- Ident: maxlen +| | | `-- R_BRACK: ] +| | |-- Comma: , +| | |-- varDef +| | | |-- Ident: c +| | | |-- L_BRACK: [ +| | | |-- constExp +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- lVal +| | | | `-- Ident: maxlen +| | | `-- R_BRACK: ] +| | `-- Semi: ; +| |-- funcDef +| | |-- funcType +| | | `-- Int: int +| | |-- Ident: memmove +| | |-- L_PAREN: ( +| | |-- funcFParams +| | | |-- funcFParam +| | | | |-- bType +| | | | | `-- Int: int +| | | | |-- Ident: dst +| | | | |-- L_BRACK: [ +| | | | `-- R_BRACK: ] +| | | |-- Comma: , +| | | |-- funcFParam +| | | | |-- bType +| | | | | `-- Int: int +| | | | `-- Ident: dst_pos +| | | |-- Comma: , +| | | |-- funcFParam +| | | | |-- bType +| | | | | `-- Int: int +| | | | |-- Ident: src +| | | | |-- L_BRACK: [ +| | | | `-- R_BRACK: ] +| | | |-- Comma: , +| | | `-- funcFParam +| | | |-- bType +| | | | `-- Int: int +| | | `-- Ident: len +| | |-- R_PAREN: ) +| | `-- block +| | |-- L_BRACE: { +| | |-- blockItem +| | | `-- decl +| | | `-- varDecl +| | | |-- bType +| | | | `-- Int: int +| | | |-- varDef +| | | | |-- Ident: i +| | | | |-- Assign: = +| | | | `-- initVal +| | | | `-- exp +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- OCTAL_INT: 0 +| | | `-- Semi: ; +| | |-- blockItem +| | | `-- stmt +| | | |-- While: while +| | | |-- L_PAREN: ( +| | | |-- cond +| | | | `-- lOrExp +| | | | `-- lAndExp +| | | | `-- eqExp +| | | | `-- relExp +| | | | |-- relExp +| | | | | `-- addExp +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- lVal +| | | | | `-- Ident: i +| | | | |-- LOp: < +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- lVal +| | | | `-- Ident: len +| | | |-- R_PAREN: ) +| | | `-- stmt +| | | `-- block +| | | |-- L_BRACE: { +| | | |-- blockItem +| | | | `-- stmt +| | | | |-- lVal +| | | | | |-- Ident: dst +| | | | | |-- L_BRACK: [ +| | | | | |-- exp +| | | | | | `-- addExp +| | | | | | |-- addExp +| | | | | | | `-- mulExp +| | | | | | | `-- unaryExp +| | | | | | | `-- primary +| | | | | | | `-- lVal +| | | | | | | `-- Ident: dst_pos +| | | | | | |-- AddOp: + +| | | | | | `-- mulExp +| | | | | | `-- unaryExp +| | | | | | `-- primary +| | | | | | `-- lVal +| | | | | | `-- Ident: i +| | | | | `-- R_BRACK: ] +| | | | |-- Assign: = +| | | | |-- exp +| | | | | `-- addExp +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- lVal +| | | | | |-- Ident: src +| | | | | |-- L_BRACK: [ +| | | | | |-- exp +| | | | | | `-- addExp +| | | | | | `-- mulExp +| | | | | | `-- unaryExp +| | | | | | `-- primary +| | | | | | `-- lVal +| | | | | | `-- Ident: i +| | | | | `-- R_BRACK: ] +| | | | `-- Semi: ; +| | | |-- blockItem +| | | | `-- stmt +| | | | |-- lVal +| | | | | `-- Ident: i +| | | | |-- Assign: = +| | | | |-- exp +| | | | | `-- addExp +| | | | | |-- addExp +| | | | | | `-- mulExp +| | | | | | `-- unaryExp +| | | | | | `-- primary +| | | | | | `-- lVal +| | | | | | `-- Ident: i +| | | | | |-- AddOp: + +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- DECIMAL_INT: 1 +| | | | `-- Semi: ; +| | | `-- R_BRACE: } +| | |-- blockItem +| | | `-- stmt +| | | `-- returnStmt +| | | |-- Return: return +| | | |-- exp +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- lVal +| | | | `-- Ident: i +| | | `-- Semi: ; +| | `-- R_BRACE: } +| |-- funcDef +| | |-- funcType +| | | `-- Int: int +| | |-- Ident: fft +| | |-- L_PAREN: ( +| | |-- funcFParams +| | | |-- funcFParam +| | | | |-- bType +| | | | | `-- Int: int +| | | | |-- Ident: arr +| | | | |-- L_BRACK: [ +| | | | `-- R_BRACK: ] +| | | |-- Comma: , +| | | |-- funcFParam +| | | | |-- bType +| | | | | `-- Int: int +| | | | `-- Ident: begin_pos +| | | |-- Comma: , +| | | |-- funcFParam +| | | | |-- bType +| | | | | `-- Int: int +| | | | `-- Ident: n +| | | |-- Comma: , +| | | `-- funcFParam +| | | |-- bType +| | | | `-- Int: int +| | | `-- Ident: w +| | |-- R_PAREN: ) +| | `-- block +| | |-- L_BRACE: { +| | |-- blockItem +| | | `-- stmt +| | | |-- If: if +| | | |-- L_PAREN: ( +| | | |-- cond +| | | | `-- lOrExp +| | | | `-- lAndExp +| | | | `-- eqExp +| | | | |-- eqExp +| | | | | `-- relExp +| | | | | `-- addExp +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- lVal +| | | | | `-- Ident: n +| | | | |-- EqOp: == +| | | | `-- relExp +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- DECIMAL_INT: 1 +| | | |-- R_PAREN: ) +| | | `-- stmt +| | | `-- returnStmt +| | | |-- Return: return +| | | |-- exp +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- DECIMAL_INT: 1 +| | | `-- Semi: ; +| | |-- blockItem +| | | `-- decl +| | | `-- varDecl +| | | |-- bType +| | | | `-- Int: int +| | | |-- varDef +| | | | |-- Ident: i +| | | | |-- Assign: = +| | | | `-- initVal +| | | | `-- exp +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- OCTAL_INT: 0 +| | | `-- Semi: ; +| | |-- blockItem +| | | `-- stmt +| | | |-- While: while +| | | |-- L_PAREN: ( +| | | |-- cond +| | | | `-- lOrExp +| | | | `-- lAndExp +| | | | `-- eqExp +| | | | `-- relExp +| | | | |-- relExp +| | | | | `-- addExp +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- lVal +| | | | | `-- Ident: i +| | | | |-- LOp: < +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- lVal +| | | | `-- Ident: n +| | | |-- R_PAREN: ) +| | | `-- stmt +| | | `-- block +| | | |-- L_BRACE: { +| | | |-- blockItem +| | | | `-- stmt +| | | | |-- If: if +| | | | |-- L_PAREN: ( +| | | | |-- cond +| | | | | `-- lOrExp +| | | | | `-- lAndExp +| | | | | `-- eqExp +| | | | | |-- eqExp +| | | | | | `-- relExp +| | | | | | `-- addExp +| | | | | | `-- mulExp +| | | | | | |-- mulExp +| | | | | | | `-- unaryExp +| | | | | | | `-- primary +| | | | | | | `-- lVal +| | | | | | | `-- Ident: i +| | | | | | |-- QuoOp: % +| | | | | | `-- unaryExp +| | | | | | `-- primary +| | | | | | `-- DECIMAL_INT: 2 +| | | | | |-- EqOp: == +| | | | | `-- relExp +| | | | | `-- addExp +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- OCTAL_INT: 0 +| | | | |-- R_PAREN: ) +| | | | |-- stmt +| | | | | |-- lVal +| | | | | | |-- Ident: temp +| | | | | | |-- L_BRACK: [ +| | | | | | |-- exp +| | | | | | | `-- addExp +| | | | | | | `-- mulExp +| | | | | | | |-- mulExp +| | | | | | | | `-- unaryExp +| | | | | | | | `-- primary +| | | | | | | | `-- lVal +| | | | | | | | `-- Ident: i +| | | | | | | |-- DivOp: / +| | | | | | | `-- unaryExp +| | | | | | | `-- primary +| | | | | | | `-- DECIMAL_INT: 2 +| | | | | | `-- R_BRACK: ] +| | | | | |-- Assign: = +| | | | | |-- exp +| | | | | | `-- addExp +| | | | | | `-- mulExp +| | | | | | `-- unaryExp +| | | | | | `-- primary +| | | | | | `-- lVal +| | | | | | |-- Ident: arr +| | | | | | |-- L_BRACK: [ +| | | | | | |-- exp +| | | | | | | `-- addExp +| | | | | | | |-- addExp +| | | | | | | | `-- mulExp +| | | | | | | | `-- unaryExp +| | | | | | | | `-- primary +| | | | | | | | `-- lVal +| | | | | | | | `-- Ident: i +| | | | | | | |-- AddOp: + +| | | | | | | `-- mulExp +| | | | | | | `-- unaryExp +| | | | | | | `-- primary +| | | | | | | `-- lVal +| | | | | | | `-- Ident: begin_pos +| | | | | | `-- R_BRACK: ] +| | | | | `-- Semi: ; +| | | | |-- Else: else +| | | | `-- stmt +| | | | |-- lVal +| | | | | |-- Ident: temp +| | | | | |-- L_BRACK: [ +| | | | | |-- exp +| | | | | | `-- addExp +| | | | | | |-- addExp +| | | | | | | `-- mulExp +| | | | | | | |-- mulExp +| | | | | | | | `-- unaryExp +| | | | | | | | `-- primary +| | | | | | | | `-- lVal +| | | | | | | | `-- Ident: n +| | | | | | | |-- DivOp: / +| | | | | | | `-- unaryExp +| | | | | | | `-- primary +| | | | | | | `-- DECIMAL_INT: 2 +| | | | | | |-- AddOp: + +| | | | | | `-- mulExp +| | | | | | |-- mulExp +| | | | | | | `-- unaryExp +| | | | | | | `-- primary +| | | | | | | `-- lVal +| | | | | | | `-- Ident: i +| | | | | | |-- DivOp: / +| | | | | | `-- unaryExp +| | | | | | `-- primary +| | | | | | `-- DECIMAL_INT: 2 +| | | | | `-- R_BRACK: ] +| | | | |-- Assign: = +| | | | |-- exp +| | | | | `-- addExp +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- lVal +| | | | | |-- Ident: arr +| | | | | |-- L_BRACK: [ +| | | | | |-- exp +| | | | | | `-- addExp +| | | | | | |-- addExp +| | | | | | | `-- mulExp +| | | | | | | `-- unaryExp +| | | | | | | `-- primary +| | | | | | | `-- lVal +| | | | | | | `-- Ident: i +| | | | | | |-- AddOp: + +| | | | | | `-- mulExp +| | | | | | `-- unaryExp +| | | | | | `-- primary +| | | | | | `-- lVal +| | | | | | `-- Ident: begin_pos +| | | | | `-- R_BRACK: ] +| | | | `-- Semi: ; +| | | |-- blockItem +| | | | `-- stmt +| | | | |-- lVal +| | | | | `-- Ident: i +| | | | |-- Assign: = +| | | | |-- exp +| | | | | `-- addExp +| | | | | |-- addExp +| | | | | | `-- mulExp +| | | | | | `-- unaryExp +| | | | | | `-- primary +| | | | | | `-- lVal +| | | | | | `-- Ident: i +| | | | | |-- AddOp: + +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- DECIMAL_INT: 1 +| | | | `-- Semi: ; +| | | `-- R_BRACE: } +| | |-- blockItem +| | | `-- stmt +| | | |-- exp +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | |-- Ident: memmove +| | | | |-- L_PAREN: ( +| | | | |-- funcRParams +| | | | | |-- exp +| | | | | | `-- addExp +| | | | | | `-- mulExp +| | | | | | `-- unaryExp +| | | | | | `-- primary +| | | | | | `-- lVal +| | | | | | `-- Ident: arr +| | | | | |-- Comma: , +| | | | | |-- exp +| | | | | | `-- addExp +| | | | | | `-- mulExp +| | | | | | `-- unaryExp +| | | | | | `-- primary +| | | | | | `-- lVal +| | | | | | `-- Ident: begin_pos +| | | | | |-- Comma: , +| | | | | |-- exp +| | | | | | `-- addExp +| | | | | | `-- mulExp +| | | | | | `-- unaryExp +| | | | | | `-- primary +| | | | | | `-- lVal +| | | | | | `-- Ident: temp +| | | | | |-- Comma: , +| | | | | `-- exp +| | | | | `-- addExp +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- lVal +| | | | | `-- Ident: n +| | | | `-- R_PAREN: ) +| | | `-- Semi: ; +| | |-- blockItem +| | | `-- stmt +| | | |-- exp +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | |-- Ident: fft +| | | | |-- L_PAREN: ( +| | | | |-- funcRParams +| | | | | |-- exp +| | | | | | `-- addExp +| | | | | | `-- mulExp +| | | | | | `-- unaryExp +| | | | | | `-- primary +| | | | | | `-- lVal +| | | | | | `-- Ident: arr +| | | | | |-- Comma: , +| | | | | |-- exp +| | | | | | `-- addExp +| | | | | | `-- mulExp +| | | | | | `-- unaryExp +| | | | | | `-- primary +| | | | | | `-- lVal +| | | | | | `-- Ident: begin_pos +| | | | | |-- Comma: , +| | | | | |-- exp +| | | | | | `-- addExp +| | | | | | `-- mulExp +| | | | | | |-- mulExp +| | | | | | | `-- unaryExp +| | | | | | | `-- primary +| | | | | | | `-- lVal +| | | | | | | `-- Ident: n +| | | | | | |-- DivOp: / +| | | | | | `-- unaryExp +| | | | | | `-- primary +| | | | | | `-- DECIMAL_INT: 2 +| | | | | |-- Comma: , +| | | | | `-- exp +| | | | | `-- addExp +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | |-- Ident: multiply +| | | | | |-- L_PAREN: ( +| | | | | |-- funcRParams +| | | | | | |-- exp +| | | | | | | `-- addExp +| | | | | | | `-- mulExp +| | | | | | | `-- unaryExp +| | | | | | | `-- primary +| | | | | | | `-- lVal +| | | | | | | `-- Ident: w +| | | | | | |-- Comma: , +| | | | | | `-- exp +| | | | | | `-- addExp +| | | | | | `-- mulExp +| | | | | | `-- unaryExp +| | | | | | `-- primary +| | | | | | `-- lVal +| | | | | | `-- Ident: w +| | | | | `-- R_PAREN: ) +| | | | `-- R_PAREN: ) +| | | `-- Semi: ; +| | |-- blockItem +| | | `-- stmt +| | | |-- exp +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | |-- Ident: fft +| | | | |-- L_PAREN: ( +| | | | |-- funcRParams +| | | | | |-- exp +| | | | | | `-- addExp +| | | | | | `-- mulExp +| | | | | | `-- unaryExp +| | | | | | `-- primary +| | | | | | `-- lVal +| | | | | | `-- Ident: arr +| | | | | |-- Comma: , +| | | | | |-- exp +| | | | | | `-- addExp +| | | | | | |-- addExp +| | | | | | | `-- mulExp +| | | | | | | `-- unaryExp +| | | | | | | `-- primary +| | | | | | | `-- lVal +| | | | | | | `-- Ident: begin_pos +| | | | | | |-- AddOp: + +| | | | | | `-- mulExp +| | | | | | |-- mulExp +| | | | | | | `-- unaryExp +| | | | | | | `-- primary +| | | | | | | `-- lVal +| | | | | | | `-- Ident: n +| | | | | | |-- DivOp: / +| | | | | | `-- unaryExp +| | | | | | `-- primary +| | | | | | `-- DECIMAL_INT: 2 +| | | | | |-- Comma: , +| | | | | |-- exp +| | | | | | `-- addExp +| | | | | | `-- mulExp +| | | | | | |-- mulExp +| | | | | | | `-- unaryExp +| | | | | | | `-- primary +| | | | | | | `-- lVal +| | | | | | | `-- Ident: n +| | | | | | |-- DivOp: / +| | | | | | `-- unaryExp +| | | | | | `-- primary +| | | | | | `-- DECIMAL_INT: 2 +| | | | | |-- Comma: , +| | | | | `-- exp +| | | | | `-- addExp +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | |-- Ident: multiply +| | | | | |-- L_PAREN: ( +| | | | | |-- funcRParams +| | | | | | |-- exp +| | | | | | | `-- addExp +| | | | | | | `-- mulExp +| | | | | | | `-- unaryExp +| | | | | | | `-- primary +| | | | | | | `-- lVal +| | | | | | | `-- Ident: w +| | | | | | |-- Comma: , +| | | | | | `-- exp +| | | | | | `-- addExp +| | | | | | `-- mulExp +| | | | | | `-- unaryExp +| | | | | | `-- primary +| | | | | | `-- lVal +| | | | | | `-- Ident: w +| | | | | `-- R_PAREN: ) +| | | | `-- R_PAREN: ) +| | | `-- Semi: ; +| | |-- blockItem +| | | `-- stmt +| | | |-- lVal +| | | | `-- Ident: i +| | | |-- Assign: = +| | | |-- exp +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- OCTAL_INT: 0 +| | | `-- Semi: ; +| | |-- blockItem +| | | `-- decl +| | | `-- varDecl +| | | |-- bType +| | | | `-- Int: int +| | | |-- varDef +| | | | |-- Ident: wn +| | | | |-- Assign: = +| | | | `-- initVal +| | | | `-- exp +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- DECIMAL_INT: 1 +| | | `-- Semi: ; +| | |-- blockItem +| | | `-- stmt +| | | |-- While: while +| | | |-- L_PAREN: ( +| | | |-- cond +| | | | `-- lOrExp +| | | | `-- lAndExp +| | | | `-- eqExp +| | | | `-- relExp +| | | | |-- relExp +| | | | | `-- addExp +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- lVal +| | | | | `-- Ident: i +| | | | |-- LOp: < +| | | | `-- addExp +| | | | `-- mulExp +| | | | |-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- lVal +| | | | | `-- Ident: n +| | | | |-- DivOp: / +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- DECIMAL_INT: 2 +| | | |-- R_PAREN: ) +| | | `-- stmt +| | | `-- block +| | | |-- L_BRACE: { +| | | |-- blockItem +| | | | `-- decl +| | | | `-- varDecl +| | | | |-- bType +| | | | | `-- Int: int +| | | | |-- varDef +| | | | | |-- Ident: x +| | | | | |-- Assign: = +| | | | | `-- initVal +| | | | | `-- exp +| | | | | `-- addExp +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- lVal +| | | | | |-- Ident: arr +| | | | | |-- L_BRACK: [ +| | | | | |-- exp +| | | | | | `-- addExp +| | | | | | |-- addExp +| | | | | | | `-- mulExp +| | | | | | | `-- unaryExp +| | | | | | | `-- primary +| | | | | | | `-- lVal +| | | | | | | `-- Ident: begin_pos +| | | | | | |-- AddOp: + +| | | | | | `-- mulExp +| | | | | | `-- unaryExp +| | | | | | `-- primary +| | | | | | `-- lVal +| | | | | | `-- Ident: i +| | | | | `-- R_BRACK: ] +| | | | `-- Semi: ; +| | | |-- blockItem +| | | | `-- decl +| | | | `-- varDecl +| | | | |-- bType +| | | | | `-- Int: int +| | | | |-- varDef +| | | | | |-- Ident: y +| | | | | |-- Assign: = +| | | | | `-- initVal +| | | | | `-- exp +| | | | | `-- addExp +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- lVal +| | | | | |-- Ident: arr +| | | | | |-- L_BRACK: [ +| | | | | |-- exp +| | | | | | `-- addExp +| | | | | | |-- addExp +| | | | | | | |-- addExp +| | | | | | | | `-- mulExp +| | | | | | | | `-- unaryExp +| | | | | | | | `-- primary +| | | | | | | | `-- lVal +| | | | | | | | `-- Ident: begin_pos +| | | | | | | |-- AddOp: + +| | | | | | | `-- mulExp +| | | | | | | `-- unaryExp +| | | | | | | `-- primary +| | | | | | | `-- lVal +| | | | | | | `-- Ident: i +| | | | | | |-- AddOp: + +| | | | | | `-- mulExp +| | | | | | |-- mulExp +| | | | | | | `-- unaryExp +| | | | | | | `-- primary +| | | | | | | `-- lVal +| | | | | | | `-- Ident: n +| | | | | | |-- DivOp: / +| | | | | | `-- unaryExp +| | | | | | `-- primary +| | | | | | `-- DECIMAL_INT: 2 +| | | | | `-- R_BRACK: ] +| | | | `-- Semi: ; +| | | |-- blockItem +| | | | `-- stmt +| | | | |-- lVal +| | | | | |-- Ident: arr +| | | | | |-- L_BRACK: [ +| | | | | |-- exp +| | | | | | `-- addExp +| | | | | | |-- addExp +| | | | | | | `-- mulExp +| | | | | | | `-- unaryExp +| | | | | | | `-- primary +| | | | | | | `-- lVal +| | | | | | | `-- Ident: begin_pos +| | | | | | |-- AddOp: + +| | | | | | `-- mulExp +| | | | | | `-- unaryExp +| | | | | | `-- primary +| | | | | | `-- lVal +| | | | | | `-- Ident: i +| | | | | `-- R_BRACK: ] +| | | | |-- Assign: = +| | | | |-- exp +| | | | | `-- addExp +| | | | | `-- mulExp +| | | | | |-- mulExp +| | | | | | `-- unaryExp +| | | | | | `-- primary +| | | | | | |-- L_PAREN: ( +| | | | | | |-- exp +| | | | | | | `-- addExp +| | | | | | | |-- addExp +| | | | | | | | `-- mulExp +| | | | | | | | `-- unaryExp +| | | | | | | | `-- primary +| | | | | | | | `-- lVal +| | | | | | | | `-- Ident: x +| | | | | | | |-- AddOp: + +| | | | | | | `-- mulExp +| | | | | | | `-- unaryExp +| | | | | | | |-- Ident: multiply +| | | | | | | |-- L_PAREN: ( +| | | | | | | |-- funcRParams +| | | | | | | | |-- exp +| | | | | | | | | `-- addExp +| | | | | | | | | `-- mulExp +| | | | | | | | | `-- unaryExp +| | | | | | | | | `-- primary +| | | | | | | | | `-- lVal +| | | | | | | | | `-- Ident: wn +| | | | | | | | |-- Comma: , +| | | | | | | | `-- exp +| | | | | | | | `-- addExp +| | | | | | | | `-- mulExp +| | | | | | | | `-- unaryExp +| | | | | | | | `-- primary +| | | | | | | | `-- lVal +| | | | | | | | `-- Ident: y +| | | | | | | `-- R_PAREN: ) +| | | | | | `-- R_PAREN: ) +| | | | | |-- QuoOp: % +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- lVal +| | | | | `-- Ident: mod +| | | | `-- Semi: ; +| | | |-- blockItem +| | | | `-- stmt +| | | | |-- lVal +| | | | | |-- Ident: arr +| | | | | |-- L_BRACK: [ +| | | | | |-- exp +| | | | | | `-- addExp +| | | | | | |-- addExp +| | | | | | | |-- addExp +| | | | | | | | `-- mulExp +| | | | | | | | `-- unaryExp +| | | | | | | | `-- primary +| | | | | | | | `-- lVal +| | | | | | | | `-- Ident: begin_pos +| | | | | | | |-- AddOp: + +| | | | | | | `-- mulExp +| | | | | | | `-- unaryExp +| | | | | | | `-- primary +| | | | | | | `-- lVal +| | | | | | | `-- Ident: i +| | | | | | |-- AddOp: + +| | | | | | `-- mulExp +| | | | | | |-- mulExp +| | | | | | | `-- unaryExp +| | | | | | | `-- primary +| | | | | | | `-- lVal +| | | | | | | `-- Ident: n +| | | | | | |-- DivOp: / +| | | | | | `-- unaryExp +| | | | | | `-- primary +| | | | | | `-- DECIMAL_INT: 2 +| | | | | `-- R_BRACK: ] +| | | | |-- Assign: = +| | | | |-- exp +| | | | | `-- addExp +| | | | | `-- mulExp +| | | | | |-- mulExp +| | | | | | `-- unaryExp +| | | | | | `-- primary +| | | | | | |-- L_PAREN: ( +| | | | | | |-- exp +| | | | | | | `-- addExp +| | | | | | | |-- addExp +| | | | | | | | |-- addExp +| | | | | | | | | `-- mulExp +| | | | | | | | | `-- unaryExp +| | | | | | | | | `-- primary +| | | | | | | | | `-- lVal +| | | | | | | | | `-- Ident: x +| | | | | | | | |-- SubOp: - +| | | | | | | | `-- mulExp +| | | | | | | | `-- unaryExp +| | | | | | | | |-- Ident: multiply +| | | | | | | | |-- L_PAREN: ( +| | | | | | | | |-- funcRParams +| | | | | | | | | |-- exp +| | | | | | | | | | `-- addExp +| | | | | | | | | | `-- mulExp +| | | | | | | | | | `-- unaryExp +| | | | | | | | | | `-- primary +| | | | | | | | | | `-- lVal +| | | | | | | | | | `-- Ident: wn +| | | | | | | | | |-- Comma: , +| | | | | | | | | `-- exp +| | | | | | | | | `-- addExp +| | | | | | | | | `-- mulExp +| | | | | | | | | `-- unaryExp +| | | | | | | | | `-- primary +| | | | | | | | | `-- lVal +| | | | | | | | | `-- Ident: y +| | | | | | | | `-- R_PAREN: ) +| | | | | | | |-- AddOp: + +| | | | | | | `-- mulExp +| | | | | | | `-- unaryExp +| | | | | | | `-- primary +| | | | | | | `-- lVal +| | | | | | | `-- Ident: mod +| | | | | | `-- R_PAREN: ) +| | | | | |-- QuoOp: % +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- lVal +| | | | | `-- Ident: mod +| | | | `-- Semi: ; +| | | |-- blockItem +| | | | `-- stmt +| | | | |-- lVal +| | | | | `-- Ident: wn +| | | | |-- Assign: = +| | | | |-- exp +| | | | | `-- addExp +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | |-- Ident: multiply +| | | | | |-- L_PAREN: ( +| | | | | |-- funcRParams +| | | | | | |-- exp +| | | | | | | `-- addExp +| | | | | | | `-- mulExp +| | | | | | | `-- unaryExp +| | | | | | | `-- primary +| | | | | | | `-- lVal +| | | | | | | `-- Ident: wn +| | | | | | |-- Comma: , +| | | | | | `-- exp +| | | | | | `-- addExp +| | | | | | `-- mulExp +| | | | | | `-- unaryExp +| | | | | | `-- primary +| | | | | | `-- lVal +| | | | | | `-- Ident: w +| | | | | `-- R_PAREN: ) +| | | | `-- Semi: ; +| | | |-- blockItem +| | | | `-- stmt +| | | | |-- lVal +| | | | | `-- Ident: i +| | | | |-- Assign: = +| | | | |-- exp +| | | | | `-- addExp +| | | | | |-- addExp +| | | | | | `-- mulExp +| | | | | | `-- unaryExp +| | | | | | `-- primary +| | | | | | `-- lVal +| | | | | | `-- Ident: i +| | | | | |-- AddOp: + +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- DECIMAL_INT: 1 +| | | | `-- Semi: ; +| | | `-- R_BRACE: } +| | |-- blockItem +| | | `-- stmt +| | | `-- returnStmt +| | | |-- Return: return +| | | |-- exp +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- OCTAL_INT: 0 +| | | `-- Semi: ; +| | `-- R_BRACE: } +| `-- funcDef +| |-- funcType +| | `-- Int: int +| |-- Ident: main +| |-- L_PAREN: ( +| |-- R_PAREN: ) +| `-- block +| |-- L_BRACE: { +| |-- blockItem +| | `-- decl +| | `-- varDecl +| | |-- bType +| | | `-- Int: int +| | |-- varDef +| | | |-- Ident: n +| | | |-- Assign: = +| | | `-- initVal +| | | `-- exp +| | | `-- addExp +| | | `-- mulExp +| | | `-- unaryExp +| | | |-- Ident: getarray +| | | |-- L_PAREN: ( +| | | |-- funcRParams +| | | | `-- exp +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- lVal +| | | | `-- Ident: a +| | | `-- R_PAREN: ) +| | `-- Semi: ; +| |-- blockItem +| | `-- decl +| | `-- varDecl +| | |-- bType +| | | `-- Int: int +| | |-- varDef +| | | |-- Ident: m +| | | |-- Assign: = +| | | `-- initVal +| | | `-- exp +| | | `-- addExp +| | | `-- mulExp +| | | `-- unaryExp +| | | |-- Ident: getarray +| | | |-- L_PAREN: ( +| | | |-- funcRParams +| | | | `-- exp +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- lVal +| | | | `-- Ident: b +| | | `-- R_PAREN: ) +| | `-- Semi: ; +| |-- blockItem +| | `-- stmt +| | |-- exp +| | | `-- addExp +| | | `-- mulExp +| | | `-- unaryExp +| | | |-- Ident: starttime +| | | |-- L_PAREN: ( +| | | `-- R_PAREN: ) +| | `-- Semi: ; +| |-- blockItem +| | `-- stmt +| | |-- lVal +| | | `-- Ident: d +| | |-- Assign: = +| | |-- exp +| | | `-- addExp +| | | `-- mulExp +| | | `-- unaryExp +| | | `-- primary +| | | `-- DECIMAL_INT: 1 +| | `-- Semi: ; +| |-- blockItem +| | `-- stmt +| | |-- While: while +| | |-- L_PAREN: ( +| | |-- cond +| | | `-- lOrExp +| | | `-- lAndExp +| | | `-- eqExp +| | | `-- relExp +| | | |-- relExp +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- lVal +| | | | `-- Ident: d +| | | |-- LOp: < +| | | `-- addExp +| | | |-- addExp +| | | | |-- addExp +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- lVal +| | | | | `-- Ident: n +| | | | |-- AddOp: + +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- lVal +| | | | `-- Ident: m +| | | |-- SubOp: - +| | | `-- mulExp +| | | `-- unaryExp +| | | `-- primary +| | | `-- DECIMAL_INT: 1 +| | |-- R_PAREN: ) +| | `-- stmt +| | `-- block +| | |-- L_BRACE: { +| | |-- blockItem +| | | `-- stmt +| | | |-- lVal +| | | | `-- Ident: d +| | | |-- Assign: = +| | | |-- exp +| | | | `-- addExp +| | | | `-- mulExp +| | | | |-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- lVal +| | | | | `-- Ident: d +| | | | |-- MulOp: * +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- DECIMAL_INT: 2 +| | | `-- Semi: ; +| | `-- R_BRACE: } +| |-- blockItem +| | `-- stmt +| | |-- exp +| | | `-- addExp +| | | `-- mulExp +| | | `-- unaryExp +| | | |-- Ident: fft +| | | |-- L_PAREN: ( +| | | |-- funcRParams +| | | | |-- exp +| | | | | `-- addExp +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- lVal +| | | | | `-- Ident: a +| | | | |-- Comma: , +| | | | |-- exp +| | | | | `-- addExp +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- OCTAL_INT: 0 +| | | | |-- Comma: , +| | | | |-- exp +| | | | | `-- addExp +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- lVal +| | | | | `-- Ident: d +| | | | |-- Comma: , +| | | | `-- exp +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | |-- Ident: power +| | | | |-- L_PAREN: ( +| | | | |-- funcRParams +| | | | | |-- exp +| | | | | | `-- addExp +| | | | | | `-- mulExp +| | | | | | `-- unaryExp +| | | | | | `-- primary +| | | | | | `-- DECIMAL_INT: 3 +| | | | | |-- Comma: , +| | | | | `-- exp +| | | | | `-- addExp +| | | | | `-- mulExp +| | | | | |-- mulExp +| | | | | | `-- unaryExp +| | | | | | `-- primary +| | | | | | |-- L_PAREN: ( +| | | | | | |-- exp +| | | | | | | `-- addExp +| | | | | | | |-- addExp +| | | | | | | | `-- mulExp +| | | | | | | | `-- unaryExp +| | | | | | | | `-- primary +| | | | | | | | `-- lVal +| | | | | | | | `-- Ident: mod +| | | | | | | |-- SubOp: - +| | | | | | | `-- mulExp +| | | | | | | `-- unaryExp +| | | | | | | `-- primary +| | | | | | | `-- DECIMAL_INT: 1 +| | | | | | `-- R_PAREN: ) +| | | | | |-- DivOp: / +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- lVal +| | | | | `-- Ident: d +| | | | `-- R_PAREN: ) +| | | `-- R_PAREN: ) +| | `-- Semi: ; +| |-- blockItem +| | `-- stmt +| | |-- exp +| | | `-- addExp +| | | `-- mulExp +| | | `-- unaryExp +| | | |-- Ident: fft +| | | |-- L_PAREN: ( +| | | |-- funcRParams +| | | | |-- exp +| | | | | `-- addExp +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- lVal +| | | | | `-- Ident: b +| | | | |-- Comma: , +| | | | |-- exp +| | | | | `-- addExp +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- OCTAL_INT: 0 +| | | | |-- Comma: , +| | | | |-- exp +| | | | | `-- addExp +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- lVal +| | | | | `-- Ident: d +| | | | |-- Comma: , +| | | | `-- exp +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | |-- Ident: power +| | | | |-- L_PAREN: ( +| | | | |-- funcRParams +| | | | | |-- exp +| | | | | | `-- addExp +| | | | | | `-- mulExp +| | | | | | `-- unaryExp +| | | | | | `-- primary +| | | | | | `-- DECIMAL_INT: 3 +| | | | | |-- Comma: , +| | | | | `-- exp +| | | | | `-- addExp +| | | | | `-- mulExp +| | | | | |-- mulExp +| | | | | | `-- unaryExp +| | | | | | `-- primary +| | | | | | |-- L_PAREN: ( +| | | | | | |-- exp +| | | | | | | `-- addExp +| | | | | | | |-- addExp +| | | | | | | | `-- mulExp +| | | | | | | | `-- unaryExp +| | | | | | | | `-- primary +| | | | | | | | `-- lVal +| | | | | | | | `-- Ident: mod +| | | | | | | |-- SubOp: - +| | | | | | | `-- mulExp +| | | | | | | `-- unaryExp +| | | | | | | `-- primary +| | | | | | | `-- DECIMAL_INT: 1 +| | | | | | `-- R_PAREN: ) +| | | | | |-- DivOp: / +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- lVal +| | | | | `-- Ident: d +| | | | `-- R_PAREN: ) +| | | `-- R_PAREN: ) +| | `-- Semi: ; +| |-- blockItem +| | `-- decl +| | `-- varDecl +| | |-- bType +| | | `-- Int: int +| | |-- varDef +| | | |-- Ident: i +| | | |-- Assign: = +| | | `-- initVal +| | | `-- exp +| | | `-- addExp +| | | `-- mulExp +| | | `-- unaryExp +| | | `-- primary +| | | `-- OCTAL_INT: 0 +| | `-- Semi: ; +| |-- blockItem +| | `-- stmt +| | |-- While: while +| | |-- L_PAREN: ( +| | |-- cond +| | | `-- lOrExp +| | | `-- lAndExp +| | | `-- eqExp +| | | `-- relExp +| | | |-- relExp +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- lVal +| | | | `-- Ident: i +| | | |-- LOp: < +| | | `-- addExp +| | | `-- mulExp +| | | `-- unaryExp +| | | `-- primary +| | | `-- lVal +| | | `-- Ident: d +| | |-- R_PAREN: ) +| | `-- stmt +| | `-- block +| | |-- L_BRACE: { +| | |-- blockItem +| | | `-- stmt +| | | |-- lVal +| | | | |-- Ident: a +| | | | |-- L_BRACK: [ +| | | | |-- exp +| | | | | `-- addExp +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- lVal +| | | | | `-- Ident: i +| | | | `-- R_BRACK: ] +| | | |-- Assign: = +| | | |-- exp +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | |-- Ident: multiply +| | | | |-- L_PAREN: ( +| | | | |-- funcRParams +| | | | | |-- exp +| | | | | | `-- addExp +| | | | | | `-- mulExp +| | | | | | `-- unaryExp +| | | | | | `-- primary +| | | | | | `-- lVal +| | | | | | |-- Ident: a +| | | | | | |-- L_BRACK: [ +| | | | | | |-- exp +| | | | | | | `-- addExp +| | | | | | | `-- mulExp +| | | | | | | `-- unaryExp +| | | | | | | `-- primary +| | | | | | | `-- lVal +| | | | | | | `-- Ident: i +| | | | | | `-- R_BRACK: ] +| | | | | |-- Comma: , +| | | | | `-- exp +| | | | | `-- addExp +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- lVal +| | | | | |-- Ident: b +| | | | | |-- L_BRACK: [ +| | | | | |-- exp +| | | | | | `-- addExp +| | | | | | `-- mulExp +| | | | | | `-- unaryExp +| | | | | | `-- primary +| | | | | | `-- lVal +| | | | | | `-- Ident: i +| | | | | `-- R_BRACK: ] +| | | | `-- R_PAREN: ) +| | | `-- Semi: ; +| | |-- blockItem +| | | `-- stmt +| | | |-- lVal +| | | | `-- Ident: i +| | | |-- Assign: = +| | | |-- exp +| | | | `-- addExp +| | | | |-- addExp +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- lVal +| | | | | `-- Ident: i +| | | | |-- AddOp: + +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- DECIMAL_INT: 1 +| | | `-- Semi: ; +| | `-- R_BRACE: } +| |-- blockItem +| | `-- stmt +| | |-- exp +| | | `-- addExp +| | | `-- mulExp +| | | `-- unaryExp +| | | |-- Ident: fft +| | | |-- L_PAREN: ( +| | | |-- funcRParams +| | | | |-- exp +| | | | | `-- addExp +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- lVal +| | | | | `-- Ident: a +| | | | |-- Comma: , +| | | | |-- exp +| | | | | `-- addExp +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- OCTAL_INT: 0 +| | | | |-- Comma: , +| | | | |-- exp +| | | | | `-- addExp +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- lVal +| | | | | `-- Ident: d +| | | | |-- Comma: , +| | | | `-- exp +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | |-- Ident: power +| | | | |-- L_PAREN: ( +| | | | |-- funcRParams +| | | | | |-- exp +| | | | | | `-- addExp +| | | | | | `-- mulExp +| | | | | | `-- unaryExp +| | | | | | `-- primary +| | | | | | `-- DECIMAL_INT: 3 +| | | | | |-- Comma: , +| | | | | `-- exp +| | | | | `-- addExp +| | | | | |-- addExp +| | | | | | |-- addExp +| | | | | | | `-- mulExp +| | | | | | | `-- unaryExp +| | | | | | | `-- primary +| | | | | | | `-- lVal +| | | | | | | `-- Ident: mod +| | | | | | |-- SubOp: - +| | | | | | `-- mulExp +| | | | | | `-- unaryExp +| | | | | | `-- primary +| | | | | | `-- DECIMAL_INT: 1 +| | | | | |-- SubOp: - +| | | | | `-- mulExp +| | | | | |-- mulExp +| | | | | | `-- unaryExp +| | | | | | `-- primary +| | | | | | |-- L_PAREN: ( +| | | | | | |-- exp +| | | | | | | `-- addExp +| | | | | | | |-- addExp +| | | | | | | | `-- mulExp +| | | | | | | | `-- unaryExp +| | | | | | | | `-- primary +| | | | | | | | `-- lVal +| | | | | | | | `-- Ident: mod +| | | | | | | |-- SubOp: - +| | | | | | | `-- mulExp +| | | | | | | `-- unaryExp +| | | | | | | `-- primary +| | | | | | | `-- DECIMAL_INT: 1 +| | | | | | `-- R_PAREN: ) +| | | | | |-- DivOp: / +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- lVal +| | | | | `-- Ident: d +| | | | `-- R_PAREN: ) +| | | `-- R_PAREN: ) +| | `-- Semi: ; +| |-- blockItem +| | `-- stmt +| | |-- lVal +| | | `-- Ident: i +| | |-- Assign: = +| | |-- exp +| | | `-- addExp +| | | `-- mulExp +| | | `-- unaryExp +| | | `-- primary +| | | `-- OCTAL_INT: 0 +| | `-- Semi: ; +| |-- blockItem +| | `-- stmt +| | |-- While: while +| | |-- L_PAREN: ( +| | |-- cond +| | | `-- lOrExp +| | | `-- lAndExp +| | | `-- eqExp +| | | `-- relExp +| | | |-- relExp +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- lVal +| | | | `-- Ident: i +| | | |-- LOp: < +| | | `-- addExp +| | | `-- mulExp +| | | `-- unaryExp +| | | `-- primary +| | | `-- lVal +| | | `-- Ident: d +| | |-- R_PAREN: ) +| | `-- stmt +| | `-- block +| | |-- L_BRACE: { +| | |-- blockItem +| | | `-- stmt +| | | |-- lVal +| | | | |-- Ident: a +| | | | |-- L_BRACK: [ +| | | | |-- exp +| | | | | `-- addExp +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- lVal +| | | | | `-- Ident: i +| | | | `-- R_BRACK: ] +| | | |-- Assign: = +| | | |-- exp +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | |-- Ident: multiply +| | | | |-- L_PAREN: ( +| | | | |-- funcRParams +| | | | | |-- exp +| | | | | | `-- addExp +| | | | | | `-- mulExp +| | | | | | `-- unaryExp +| | | | | | `-- primary +| | | | | | `-- lVal +| | | | | | |-- Ident: a +| | | | | | |-- L_BRACK: [ +| | | | | | |-- exp +| | | | | | | `-- addExp +| | | | | | | `-- mulExp +| | | | | | | `-- unaryExp +| | | | | | | `-- primary +| | | | | | | `-- lVal +| | | | | | | `-- Ident: i +| | | | | | `-- R_BRACK: ] +| | | | | |-- Comma: , +| | | | | `-- exp +| | | | | `-- addExp +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | |-- Ident: power +| | | | | |-- L_PAREN: ( +| | | | | |-- funcRParams +| | | | | | |-- exp +| | | | | | | `-- addExp +| | | | | | | `-- mulExp +| | | | | | | `-- unaryExp +| | | | | | | `-- primary +| | | | | | | `-- lVal +| | | | | | | `-- Ident: d +| | | | | | |-- Comma: , +| | | | | | `-- exp +| | | | | | `-- addExp +| | | | | | |-- addExp +| | | | | | | `-- mulExp +| | | | | | | `-- unaryExp +| | | | | | | `-- primary +| | | | | | | `-- lVal +| | | | | | | `-- Ident: mod +| | | | | | |-- SubOp: - +| | | | | | `-- mulExp +| | | | | | `-- unaryExp +| | | | | | `-- primary +| | | | | | `-- DECIMAL_INT: 2 +| | | | | `-- R_PAREN: ) +| | | | `-- R_PAREN: ) +| | | `-- Semi: ; +| | |-- blockItem +| | | `-- stmt +| | | |-- lVal +| | | | `-- Ident: i +| | | |-- Assign: = +| | | |-- exp +| | | | `-- addExp +| | | | |-- addExp +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- lVal +| | | | | `-- Ident: i +| | | | |-- AddOp: + +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- DECIMAL_INT: 1 +| | | `-- Semi: ; +| | `-- R_BRACE: } +| |-- blockItem +| | `-- stmt +| | |-- exp +| | | `-- addExp +| | | `-- mulExp +| | | `-- unaryExp +| | | |-- Ident: stoptime +| | | |-- L_PAREN: ( +| | | `-- R_PAREN: ) +| | `-- Semi: ; +| |-- blockItem +| | `-- stmt +| | |-- exp +| | | `-- addExp +| | | `-- mulExp +| | | `-- unaryExp +| | | |-- Ident: putarray +| | | |-- L_PAREN: ( +| | | |-- funcRParams +| | | | |-- exp +| | | | | `-- addExp +| | | | | |-- addExp +| | | | | | |-- addExp +| | | | | | | `-- mulExp +| | | | | | | `-- unaryExp +| | | | | | | `-- primary +| | | | | | | `-- lVal +| | | | | | | `-- Ident: n +| | | | | | |-- AddOp: + +| | | | | | `-- mulExp +| | | | | | `-- unaryExp +| | | | | | `-- primary +| | | | | | `-- lVal +| | | | | | `-- Ident: m +| | | | | |-- SubOp: - +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- DECIMAL_INT: 1 +| | | | |-- Comma: , +| | | | `-- exp +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- lVal +| | | | `-- Ident: a +| | | `-- R_PAREN: ) +| | `-- Semi: ; +| |-- blockItem +| | `-- stmt +| | `-- returnStmt +| | |-- Return: return +| | |-- exp +| | | `-- addExp +| | | `-- mulExp +| | | `-- unaryExp +| | | `-- primary +| | | `-- OCTAL_INT: 0 +| | `-- Semi: ; +| `-- R_BRACE: } +`-- EOF: + +========== test/test_case/performance/gameoflife-oscillator.sy ========== +compUnit +|-- program +| |-- decl +| | `-- varDecl +| | |-- bType +| | | `-- Int: int +| | |-- varDef +| | | |-- Ident: sheet1 +| | | |-- L_BRACK: [ +| | | |-- constExp +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- DECIMAL_INT: 500 +| | | |-- R_BRACK: ] +| | | |-- L_BRACK: [ +| | | |-- constExp +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- DECIMAL_INT: 500 +| | | |-- R_BRACK: ] +| | | |-- Assign: = +| | | `-- initVal +| | | |-- L_BRACE: { +| | | `-- R_BRACE: } +| | `-- Semi: ; +| |-- decl +| | `-- varDecl +| | |-- bType +| | | `-- Int: int +| | |-- varDef +| | | |-- Ident: sheet2 +| | | |-- L_BRACK: [ +| | | |-- constExp +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- DECIMAL_INT: 500 +| | | |-- R_BRACK: ] +| | | |-- L_BRACK: [ +| | | |-- constExp +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- DECIMAL_INT: 500 +| | | |-- R_BRACK: ] +| | | |-- Assign: = +| | | `-- initVal +| | | |-- L_BRACE: { +| | | `-- R_BRACE: } +| | `-- Semi: ; +| |-- decl +| | `-- varDecl +| | |-- bType +| | | `-- Int: int +| | |-- varDef +| | | |-- Ident: active +| | | |-- Assign: = +| | | `-- initVal +| | | `-- exp +| | | `-- addExp +| | | `-- mulExp +| | | `-- unaryExp +| | | `-- primary +| | | `-- DECIMAL_INT: 1 +| | `-- Semi: ; +| |-- decl +| | `-- varDecl +| | |-- bType +| | | `-- Int: int +| | |-- varDef +| | | `-- Ident: width +| | `-- Semi: ; +| |-- decl +| | `-- varDecl +| | |-- bType +| | | `-- Int: int +| | |-- varDef +| | | `-- Ident: height +| | `-- Semi: ; +| |-- decl +| | `-- varDecl +| | |-- bType +| | | `-- Int: int +| | |-- varDef +| | | `-- Ident: steps +| | `-- Semi: ; +| |-- funcDef +| | |-- funcType +| | | `-- Void: void +| | |-- Ident: read_map +| | |-- L_PAREN: ( +| | |-- R_PAREN: ) +| | `-- block +| | |-- L_BRACE: { +| | |-- blockItem +| | | `-- stmt +| | | |-- lVal +| | | | `-- Ident: width +| | | |-- Assign: = +| | | |-- exp +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | |-- Ident: getint +| | | | |-- L_PAREN: ( +| | | | `-- R_PAREN: ) +| | | `-- Semi: ; +| | |-- blockItem +| | | `-- stmt +| | | |-- lVal +| | | | `-- Ident: height +| | | |-- Assign: = +| | | |-- exp +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | |-- Ident: getint +| | | | |-- L_PAREN: ( +| | | | `-- R_PAREN: ) +| | | `-- Semi: ; +| | |-- blockItem +| | | `-- stmt +| | | |-- lVal +| | | | `-- Ident: steps +| | | |-- Assign: = +| | | |-- exp +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | |-- Ident: getint +| | | | |-- L_PAREN: ( +| | | | `-- R_PAREN: ) +| | | `-- Semi: ; +| | |-- blockItem +| | | `-- stmt +| | | |-- exp +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | |-- Ident: getch +| | | | |-- L_PAREN: ( +| | | | `-- R_PAREN: ) +| | | `-- Semi: ; +| | |-- blockItem +| | | `-- decl +| | | `-- varDecl +| | | |-- bType +| | | | `-- Int: int +| | | |-- varDef +| | | | |-- Ident: i +| | | | |-- Assign: = +| | | | `-- initVal +| | | | `-- exp +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- DECIMAL_INT: 1 +| | | `-- Semi: ; +| | |-- blockItem +| | | `-- decl +| | | `-- varDecl +| | | |-- bType +| | | | `-- Int: int +| | | |-- varDef +| | | | |-- Ident: j +| | | | |-- Assign: = +| | | | `-- initVal +| | | | `-- exp +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- DECIMAL_INT: 1 +| | | `-- Semi: ; +| | |-- blockItem +| | | `-- stmt +| | | |-- While: while +| | | |-- L_PAREN: ( +| | | |-- cond +| | | | `-- lOrExp +| | | | `-- lAndExp +| | | | `-- eqExp +| | | | `-- relExp +| | | | |-- relExp +| | | | | `-- addExp +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- lVal +| | | | | `-- Ident: j +| | | | |-- LeOp: <= +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- lVal +| | | | `-- Ident: height +| | | |-- R_PAREN: ) +| | | `-- stmt +| | | `-- block +| | | |-- L_BRACE: { +| | | |-- blockItem +| | | | `-- stmt +| | | | |-- lVal +| | | | | `-- Ident: i +| | | | |-- Assign: = +| | | | |-- exp +| | | | | `-- addExp +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- DECIMAL_INT: 1 +| | | | `-- Semi: ; +| | | |-- blockItem +| | | | `-- stmt +| | | | |-- While: while +| | | | |-- L_PAREN: ( +| | | | |-- cond +| | | | | `-- lOrExp +| | | | | `-- lAndExp +| | | | | `-- eqExp +| | | | | `-- relExp +| | | | | |-- relExp +| | | | | | `-- addExp +| | | | | | `-- mulExp +| | | | | | `-- unaryExp +| | | | | | `-- primary +| | | | | | `-- lVal +| | | | | | `-- Ident: i +| | | | | |-- LeOp: <= +| | | | | `-- addExp +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- lVal +| | | | | `-- Ident: width +| | | | |-- R_PAREN: ) +| | | | `-- stmt +| | | | `-- block +| | | | |-- L_BRACE: { +| | | | |-- blockItem +| | | | | `-- decl +| | | | | `-- varDecl +| | | | | |-- bType +| | | | | | `-- Int: int +| | | | | |-- varDef +| | | | | | |-- Ident: get +| | | | | | |-- Assign: = +| | | | | | `-- initVal +| | | | | | `-- exp +| | | | | | `-- addExp +| | | | | | `-- mulExp +| | | | | | `-- unaryExp +| | | | | | |-- Ident: getch +| | | | | | |-- L_PAREN: ( +| | | | | | `-- R_PAREN: ) +| | | | | `-- Semi: ; +| | | | |-- blockItem +| | | | | `-- stmt +| | | | | |-- If: if +| | | | | |-- L_PAREN: ( +| | | | | |-- cond +| | | | | | `-- lOrExp +| | | | | | `-- lAndExp +| | | | | | `-- eqExp +| | | | | | |-- eqExp +| | | | | | | `-- relExp +| | | | | | | `-- addExp +| | | | | | | `-- mulExp +| | | | | | | `-- unaryExp +| | | | | | | `-- primary +| | | | | | | `-- lVal +| | | | | | | `-- Ident: get +| | | | | | |-- EqOp: == +| | | | | | `-- relExp +| | | | | | `-- addExp +| | | | | | `-- mulExp +| | | | | | `-- unaryExp +| | | | | | `-- primary +| | | | | | `-- DECIMAL_INT: 35 +| | | | | |-- R_PAREN: ) +| | | | | |-- stmt +| | | | | | `-- block +| | | | | | |-- L_BRACE: { +| | | | | | |-- blockItem +| | | | | | | `-- stmt +| | | | | | | |-- lVal +| | | | | | | | |-- Ident: sheet1 +| | | | | | | | |-- L_BRACK: [ +| | | | | | | | |-- exp +| | | | | | | | | `-- addExp +| | | | | | | | | `-- mulExp +| | | | | | | | | `-- unaryExp +| | | | | | | | | `-- primary +| | | | | | | | | `-- lVal +| | | | | | | | | `-- Ident: j +| | | | | | | | |-- R_BRACK: ] +| | | | | | | | |-- L_BRACK: [ +| | | | | | | | |-- exp +| | | | | | | | | `-- addExp +| | | | | | | | | `-- mulExp +| | | | | | | | | `-- unaryExp +| | | | | | | | | `-- primary +| | | | | | | | | `-- lVal +| | | | | | | | | `-- Ident: i +| | | | | | | | `-- R_BRACK: ] +| | | | | | | |-- Assign: = +| | | | | | | |-- exp +| | | | | | | | `-- addExp +| | | | | | | | `-- mulExp +| | | | | | | | `-- unaryExp +| | | | | | | | `-- primary +| | | | | | | | `-- DECIMAL_INT: 1 +| | | | | | | `-- Semi: ; +| | | | | | `-- R_BRACE: } +| | | | | |-- Else: else +| | | | | `-- stmt +| | | | | `-- block +| | | | | |-- L_BRACE: { +| | | | | |-- blockItem +| | | | | | `-- stmt +| | | | | | |-- lVal +| | | | | | | |-- Ident: sheet1 +| | | | | | | |-- L_BRACK: [ +| | | | | | | |-- exp +| | | | | | | | `-- addExp +| | | | | | | | `-- mulExp +| | | | | | | | `-- unaryExp +| | | | | | | | `-- primary +| | | | | | | | `-- lVal +| | | | | | | | `-- Ident: j +| | | | | | | |-- R_BRACK: ] +| | | | | | | |-- L_BRACK: [ +| | | | | | | |-- exp +| | | | | | | | `-- addExp +| | | | | | | | `-- mulExp +| | | | | | | | `-- unaryExp +| | | | | | | | `-- primary +| | | | | | | | `-- lVal +| | | | | | | | `-- Ident: i +| | | | | | | `-- R_BRACK: ] +| | | | | | |-- Assign: = +| | | | | | |-- exp +| | | | | | | `-- addExp +| | | | | | | `-- mulExp +| | | | | | | `-- unaryExp +| | | | | | | `-- primary +| | | | | | | `-- OCTAL_INT: 0 +| | | | | | `-- Semi: ; +| | | | | `-- R_BRACE: } +| | | | |-- blockItem +| | | | | `-- stmt +| | | | | |-- lVal +| | | | | | `-- Ident: i +| | | | | |-- Assign: = +| | | | | |-- exp +| | | | | | `-- addExp +| | | | | | |-- addExp +| | | | | | | `-- mulExp +| | | | | | | `-- unaryExp +| | | | | | | `-- primary +| | | | | | | `-- lVal +| | | | | | | `-- Ident: i +| | | | | | |-- AddOp: + +| | | | | | `-- mulExp +| | | | | | `-- unaryExp +| | | | | | `-- primary +| | | | | | `-- DECIMAL_INT: 1 +| | | | | `-- Semi: ; +| | | | `-- R_BRACE: } +| | | |-- blockItem +| | | | `-- stmt +| | | | |-- exp +| | | | | `-- addExp +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | |-- Ident: getch +| | | | | |-- L_PAREN: ( +| | | | | `-- R_PAREN: ) +| | | | `-- Semi: ; +| | | |-- blockItem +| | | | `-- stmt +| | | | |-- lVal +| | | | | `-- Ident: j +| | | | |-- Assign: = +| | | | |-- exp +| | | | | `-- addExp +| | | | | |-- addExp +| | | | | | `-- mulExp +| | | | | | `-- unaryExp +| | | | | | `-- primary +| | | | | | `-- lVal +| | | | | | `-- Ident: j +| | | | | |-- AddOp: + +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- DECIMAL_INT: 1 +| | | | `-- Semi: ; +| | | `-- R_BRACE: } +| | `-- R_BRACE: } +| |-- funcDef +| | |-- funcType +| | | `-- Void: void +| | |-- Ident: put_map +| | |-- L_PAREN: ( +| | |-- R_PAREN: ) +| | `-- block +| | |-- L_BRACE: { +| | |-- blockItem +| | | `-- decl +| | | `-- varDecl +| | | |-- bType +| | | | `-- Int: int +| | | |-- varDef +| | | | |-- Ident: i +| | | | |-- Assign: = +| | | | `-- initVal +| | | | `-- exp +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- DECIMAL_INT: 1 +| | | `-- Semi: ; +| | |-- blockItem +| | | `-- decl +| | | `-- varDecl +| | | |-- bType +| | | | `-- Int: int +| | | |-- varDef +| | | | |-- Ident: j +| | | | |-- Assign: = +| | | | `-- initVal +| | | | `-- exp +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- DECIMAL_INT: 1 +| | | `-- Semi: ; +| | |-- blockItem +| | | `-- stmt +| | | |-- While: while +| | | |-- L_PAREN: ( +| | | |-- cond +| | | | `-- lOrExp +| | | | `-- lAndExp +| | | | `-- eqExp +| | | | `-- relExp +| | | | |-- relExp +| | | | | `-- addExp +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- lVal +| | | | | `-- Ident: j +| | | | |-- LeOp: <= +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- lVal +| | | | `-- Ident: height +| | | |-- R_PAREN: ) +| | | `-- stmt +| | | `-- block +| | | |-- L_BRACE: { +| | | |-- blockItem +| | | | `-- stmt +| | | | |-- lVal +| | | | | `-- Ident: i +| | | | |-- Assign: = +| | | | |-- exp +| | | | | `-- addExp +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- DECIMAL_INT: 1 +| | | | `-- Semi: ; +| | | |-- blockItem +| | | | `-- stmt +| | | | |-- While: while +| | | | |-- L_PAREN: ( +| | | | |-- cond +| | | | | `-- lOrExp +| | | | | `-- lAndExp +| | | | | `-- eqExp +| | | | | `-- relExp +| | | | | |-- relExp +| | | | | | `-- addExp +| | | | | | `-- mulExp +| | | | | | `-- unaryExp +| | | | | | `-- primary +| | | | | | `-- lVal +| | | | | | `-- Ident: i +| | | | | |-- LeOp: <= +| | | | | `-- addExp +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- lVal +| | | | | `-- Ident: width +| | | | |-- R_PAREN: ) +| | | | `-- stmt +| | | | `-- block +| | | | |-- L_BRACE: { +| | | | |-- blockItem +| | | | | `-- stmt +| | | | | |-- If: if +| | | | | |-- L_PAREN: ( +| | | | | |-- cond +| | | | | | `-- lOrExp +| | | | | | `-- lAndExp +| | | | | | `-- eqExp +| | | | | | |-- eqExp +| | | | | | | `-- relExp +| | | | | | | `-- addExp +| | | | | | | `-- mulExp +| | | | | | | `-- unaryExp +| | | | | | | `-- primary +| | | | | | | `-- lVal +| | | | | | | |-- Ident: sheet1 +| | | | | | | |-- L_BRACK: [ +| | | | | | | |-- exp +| | | | | | | | `-- addExp +| | | | | | | | `-- mulExp +| | | | | | | | `-- unaryExp +| | | | | | | | `-- primary +| | | | | | | | `-- lVal +| | | | | | | | `-- Ident: j +| | | | | | | |-- R_BRACK: ] +| | | | | | | |-- L_BRACK: [ +| | | | | | | |-- exp +| | | | | | | | `-- addExp +| | | | | | | | `-- mulExp +| | | | | | | | `-- unaryExp +| | | | | | | | `-- primary +| | | | | | | | `-- lVal +| | | | | | | | `-- Ident: i +| | | | | | | `-- R_BRACK: ] +| | | | | | |-- EqOp: == +| | | | | | `-- relExp +| | | | | | `-- addExp +| | | | | | `-- mulExp +| | | | | | `-- unaryExp +| | | | | | `-- primary +| | | | | | `-- DECIMAL_INT: 1 +| | | | | |-- R_PAREN: ) +| | | | | |-- stmt +| | | | | | `-- block +| | | | | | |-- L_BRACE: { +| | | | | | |-- blockItem +| | | | | | | `-- stmt +| | | | | | | |-- exp +| | | | | | | | `-- addExp +| | | | | | | | `-- mulExp +| | | | | | | | `-- unaryExp +| | | | | | | | |-- Ident: putch +| | | | | | | | |-- L_PAREN: ( +| | | | | | | | |-- funcRParams +| | | | | | | | | `-- exp +| | | | | | | | | `-- addExp +| | | | | | | | | `-- mulExp +| | | | | | | | | `-- unaryExp +| | | | | | | | | `-- primary +| | | | | | | | | `-- DECIMAL_INT: 35 +| | | | | | | | `-- R_PAREN: ) +| | | | | | | `-- Semi: ; +| | | | | | `-- R_BRACE: } +| | | | | |-- Else: else +| | | | | `-- stmt +| | | | | `-- block +| | | | | |-- L_BRACE: { +| | | | | |-- blockItem +| | | | | | `-- stmt +| | | | | | |-- exp +| | | | | | | `-- addExp +| | | | | | | `-- mulExp +| | | | | | | `-- unaryExp +| | | | | | | |-- Ident: putch +| | | | | | | |-- L_PAREN: ( +| | | | | | | |-- funcRParams +| | | | | | | | `-- exp +| | | | | | | | `-- addExp +| | | | | | | | `-- mulExp +| | | | | | | | `-- unaryExp +| | | | | | | | `-- primary +| | | | | | | | `-- DECIMAL_INT: 46 +| | | | | | | `-- R_PAREN: ) +| | | | | | `-- Semi: ; +| | | | | `-- R_BRACE: } +| | | | |-- blockItem +| | | | | `-- stmt +| | | | | |-- lVal +| | | | | | `-- Ident: i +| | | | | |-- Assign: = +| | | | | |-- exp +| | | | | | `-- addExp +| | | | | | |-- addExp +| | | | | | | `-- mulExp +| | | | | | | `-- unaryExp +| | | | | | | `-- primary +| | | | | | | `-- lVal +| | | | | | | `-- Ident: i +| | | | | | |-- AddOp: + +| | | | | | `-- mulExp +| | | | | | `-- unaryExp +| | | | | | `-- primary +| | | | | | `-- DECIMAL_INT: 1 +| | | | | `-- Semi: ; +| | | | `-- R_BRACE: } +| | | |-- blockItem +| | | | `-- stmt +| | | | |-- exp +| | | | | `-- addExp +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | |-- Ident: putch +| | | | | |-- L_PAREN: ( +| | | | | |-- funcRParams +| | | | | | `-- exp +| | | | | | `-- addExp +| | | | | | `-- mulExp +| | | | | | `-- unaryExp +| | | | | | `-- primary +| | | | | | `-- DECIMAL_INT: 10 +| | | | | `-- R_PAREN: ) +| | | | `-- Semi: ; +| | | |-- blockItem +| | | | `-- stmt +| | | | |-- lVal +| | | | | `-- Ident: j +| | | | |-- Assign: = +| | | | |-- exp +| | | | | `-- addExp +| | | | | |-- addExp +| | | | | | `-- mulExp +| | | | | | `-- unaryExp +| | | | | | `-- primary +| | | | | | `-- lVal +| | | | | | `-- Ident: j +| | | | | |-- AddOp: + +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- DECIMAL_INT: 1 +| | | | `-- Semi: ; +| | | `-- R_BRACE: } +| | `-- R_BRACE: } +| |-- funcDef +| | |-- funcType +| | | `-- Void: void +| | |-- Ident: swap12 +| | |-- L_PAREN: ( +| | |-- R_PAREN: ) +| | `-- block +| | |-- L_BRACE: { +| | |-- blockItem +| | | `-- decl +| | | `-- varDecl +| | | |-- bType +| | | | `-- Int: int +| | | |-- varDef +| | | | |-- Ident: i +| | | | |-- Assign: = +| | | | `-- initVal +| | | | `-- exp +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- DECIMAL_INT: 1 +| | | `-- Semi: ; +| | |-- blockItem +| | | `-- decl +| | | `-- varDecl +| | | |-- bType +| | | | `-- Int: int +| | | |-- varDef +| | | | |-- Ident: j +| | | | |-- Assign: = +| | | | `-- initVal +| | | | `-- exp +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- DECIMAL_INT: 1 +| | | `-- Semi: ; +| | |-- blockItem +| | | `-- stmt +| | | |-- While: while +| | | |-- L_PAREN: ( +| | | |-- cond +| | | | `-- lOrExp +| | | | `-- lAndExp +| | | | `-- eqExp +| | | | `-- relExp +| | | | |-- relExp +| | | | | `-- addExp +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- lVal +| | | | | `-- Ident: j +| | | | |-- LeOp: <= +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- lVal +| | | | `-- Ident: height +| | | |-- R_PAREN: ) +| | | `-- stmt +| | | `-- block +| | | |-- L_BRACE: { +| | | |-- blockItem +| | | | `-- stmt +| | | | |-- lVal +| | | | | `-- Ident: i +| | | | |-- Assign: = +| | | | |-- exp +| | | | | `-- addExp +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- DECIMAL_INT: 1 +| | | | `-- Semi: ; +| | | |-- blockItem +| | | | `-- stmt +| | | | |-- While: while +| | | | |-- L_PAREN: ( +| | | | |-- cond +| | | | | `-- lOrExp +| | | | | `-- lAndExp +| | | | | `-- eqExp +| | | | | `-- relExp +| | | | | |-- relExp +| | | | | | `-- addExp +| | | | | | `-- mulExp +| | | | | | `-- unaryExp +| | | | | | `-- primary +| | | | | | `-- lVal +| | | | | | `-- Ident: i +| | | | | |-- LeOp: <= +| | | | | `-- addExp +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- lVal +| | | | | `-- Ident: width +| | | | |-- R_PAREN: ) +| | | | `-- stmt +| | | | `-- block +| | | | |-- L_BRACE: { +| | | | |-- blockItem +| | | | | `-- stmt +| | | | | |-- lVal +| | | | | | |-- Ident: sheet1 +| | | | | | |-- L_BRACK: [ +| | | | | | |-- exp +| | | | | | | `-- addExp +| | | | | | | `-- mulExp +| | | | | | | `-- unaryExp +| | | | | | | `-- primary +| | | | | | | `-- lVal +| | | | | | | `-- Ident: j +| | | | | | |-- R_BRACK: ] +| | | | | | |-- L_BRACK: [ +| | | | | | |-- exp +| | | | | | | `-- addExp +| | | | | | | `-- mulExp +| | | | | | | `-- unaryExp +| | | | | | | `-- primary +| | | | | | | `-- lVal +| | | | | | | `-- Ident: i +| | | | | | `-- R_BRACK: ] +| | | | | |-- Assign: = +| | | | | |-- exp +| | | | | | `-- addExp +| | | | | | `-- mulExp +| | | | | | `-- unaryExp +| | | | | | `-- primary +| | | | | | `-- lVal +| | | | | | |-- Ident: sheet2 +| | | | | | |-- L_BRACK: [ +| | | | | | |-- exp +| | | | | | | `-- addExp +| | | | | | | `-- mulExp +| | | | | | | `-- unaryExp +| | | | | | | `-- primary +| | | | | | | `-- lVal +| | | | | | | `-- Ident: j +| | | | | | |-- R_BRACK: ] +| | | | | | |-- L_BRACK: [ +| | | | | | |-- exp +| | | | | | | `-- addExp +| | | | | | | `-- mulExp +| | | | | | | `-- unaryExp +| | | | | | | `-- primary +| | | | | | | `-- lVal +| | | | | | | `-- Ident: i +| | | | | | `-- R_BRACK: ] +| | | | | `-- Semi: ; +| | | | |-- blockItem +| | | | | `-- stmt +| | | | | |-- lVal +| | | | | | `-- Ident: i +| | | | | |-- Assign: = +| | | | | |-- exp +| | | | | | `-- addExp +| | | | | | |-- addExp +| | | | | | | `-- mulExp +| | | | | | | `-- unaryExp +| | | | | | | `-- primary +| | | | | | | `-- lVal +| | | | | | | `-- Ident: i +| | | | | | |-- AddOp: + +| | | | | | `-- mulExp +| | | | | | `-- unaryExp +| | | | | | `-- primary +| | | | | | `-- DECIMAL_INT: 1 +| | | | | `-- Semi: ; +| | | | `-- R_BRACE: } +| | | |-- blockItem +| | | | `-- stmt +| | | | |-- lVal +| | | | | `-- Ident: j +| | | | |-- Assign: = +| | | | |-- exp +| | | | | `-- addExp +| | | | | |-- addExp +| | | | | | `-- mulExp +| | | | | | `-- unaryExp +| | | | | | `-- primary +| | | | | | `-- lVal +| | | | | | `-- Ident: j +| | | | | |-- AddOp: + +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- DECIMAL_INT: 1 +| | | | `-- Semi: ; +| | | `-- R_BRACE: } +| | `-- R_BRACE: } +| |-- funcDef +| | |-- funcType +| | | `-- Void: void +| | |-- Ident: step +| | |-- L_PAREN: ( +| | |-- funcFParams +| | | |-- funcFParam +| | | | |-- bType +| | | | | `-- Int: int +| | | | |-- Ident: source +| | | | |-- L_BRACK: [ +| | | | |-- R_BRACK: ] +| | | | |-- L_BRACK: [ +| | | | |-- exp +| | | | | `-- addExp +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- DECIMAL_INT: 500 +| | | | `-- R_BRACK: ] +| | | |-- Comma: , +| | | `-- funcFParam +| | | |-- bType +| | | | `-- Int: int +| | | |-- Ident: target +| | | |-- L_BRACK: [ +| | | |-- R_BRACK: ] +| | | |-- L_BRACK: [ +| | | |-- exp +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- DECIMAL_INT: 500 +| | | `-- R_BRACK: ] +| | |-- R_PAREN: ) +| | `-- block +| | |-- L_BRACE: { +| | |-- blockItem +| | | `-- decl +| | | `-- varDecl +| | | |-- bType +| | | | `-- Int: int +| | | |-- varDef +| | | | |-- Ident: i +| | | | |-- Assign: = +| | | | `-- initVal +| | | | `-- exp +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- DECIMAL_INT: 1 +| | | `-- Semi: ; +| | |-- blockItem +| | | `-- decl +| | | `-- varDecl +| | | |-- bType +| | | | `-- Int: int +| | | |-- varDef +| | | | |-- Ident: j +| | | | |-- Assign: = +| | | | `-- initVal +| | | | `-- exp +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- DECIMAL_INT: 1 +| | | `-- Semi: ; +| | |-- blockItem +| | | `-- stmt +| | | |-- While: while +| | | |-- L_PAREN: ( +| | | |-- cond +| | | | `-- lOrExp +| | | | `-- lAndExp +| | | | `-- eqExp +| | | | `-- relExp +| | | | |-- relExp +| | | | | `-- addExp +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- lVal +| | | | | `-- Ident: j +| | | | |-- LeOp: <= +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- lVal +| | | | `-- Ident: height +| | | |-- R_PAREN: ) +| | | `-- stmt +| | | `-- block +| | | |-- L_BRACE: { +| | | |-- blockItem +| | | | `-- stmt +| | | | |-- lVal +| | | | | `-- Ident: i +| | | | |-- Assign: = +| | | | |-- exp +| | | | | `-- addExp +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- DECIMAL_INT: 1 +| | | | `-- Semi: ; +| | | |-- blockItem +| | | | `-- stmt +| | | | |-- While: while +| | | | |-- L_PAREN: ( +| | | | |-- cond +| | | | | `-- lOrExp +| | | | | `-- lAndExp +| | | | | `-- eqExp +| | | | | `-- relExp +| | | | | |-- relExp +| | | | | | `-- addExp +| | | | | | `-- mulExp +| | | | | | `-- unaryExp +| | | | | | `-- primary +| | | | | | `-- lVal +| | | | | | `-- Ident: i +| | | | | |-- LeOp: <= +| | | | | `-- addExp +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- lVal +| | | | | `-- Ident: width +| | | | |-- R_PAREN: ) +| | | | `-- stmt +| | | | `-- block +| | | | |-- L_BRACE: { +| | | | |-- blockItem +| | | | | `-- decl +| | | | | `-- varDecl +| | | | | |-- bType +| | | | | | `-- Int: int +| | | | | |-- varDef +| | | | | | |-- Ident: alive_count +| | | | | | |-- Assign: = +| | | | | | `-- initVal +| | | | | | `-- exp +| | | | | | `-- addExp +| | | | | | |-- addExp +| | | | | | | |-- addExp +| | | | | | | | |-- addExp +| | | | | | | | | |-- addExp +| | | | | | | | | | |-- addExp +| | | | | | | | | | | |-- addExp +| | | | | | | | | | | | |-- addExp +| | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | `-- lVal +| | | | | | | | | | | | | |-- Ident: source +| | | | | | | | | | | | | |-- L_BRACK: [ +| | | | | | | | | | | | | |-- exp +| | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | |-- addExp +| | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | `-- lVal +| | | | | | | | | | | | | | | `-- Ident: j +| | | | | | | | | | | | | | |-- SubOp: - +| | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | `-- DECIMAL_INT: 1 +| | | | | | | | | | | | | |-- R_BRACK: ] +| | | | | | | | | | | | | |-- L_BRACK: [ +| | | | | | | | | | | | | |-- exp +| | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | |-- addExp +| | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | `-- lVal +| | | | | | | | | | | | | | | `-- Ident: i +| | | | | | | | | | | | | | |-- SubOp: - +| | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | `-- DECIMAL_INT: 1 +| | | | | | | | | | | | | `-- R_BRACK: ] +| | | | | | | | | | | | |-- AddOp: + +| | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | `-- primary +| | | | | | | | | | | | `-- lVal +| | | | | | | | | | | | |-- Ident: source +| | | | | | | | | | | | |-- L_BRACK: [ +| | | | | | | | | | | | |-- exp +| | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | |-- addExp +| | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | `-- lVal +| | | | | | | | | | | | | | `-- Ident: j +| | | | | | | | | | | | | |-- SubOp: - +| | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | `-- DECIMAL_INT: 1 +| | | | | | | | | | | | |-- R_BRACK: ] +| | | | | | | | | | | | |-- L_BRACK: [ +| | | | | | | | | | | | |-- exp +| | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | `-- lVal +| | | | | | | | | | | | | `-- Ident: i +| | | | | | | | | | | | `-- R_BRACK: ] +| | | | | | | | | | | |-- AddOp: + +| | | | | | | | | | | `-- mulExp +| | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | `-- primary +| | | | | | | | | | | `-- lVal +| | | | | | | | | | | |-- Ident: source +| | | | | | | | | | | |-- L_BRACK: [ +| | | | | | | | | | | |-- exp +| | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | |-- addExp +| | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | `-- lVal +| | | | | | | | | | | | | `-- Ident: j +| | | | | | | | | | | | |-- SubOp: - +| | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | `-- primary +| | | | | | | | | | | | `-- DECIMAL_INT: 1 +| | | | | | | | | | | |-- R_BRACK: ] +| | | | | | | | | | | |-- L_BRACK: [ +| | | | | | | | | | | |-- exp +| | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | |-- addExp +| | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | `-- lVal +| | | | | | | | | | | | | `-- Ident: i +| | | | | | | | | | | | |-- AddOp: + +| | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | `-- primary +| | | | | | | | | | | | `-- DECIMAL_INT: 1 +| | | | | | | | | | | `-- R_BRACK: ] +| | | | | | | | | | |-- AddOp: + +| | | | | | | | | | `-- mulExp +| | | | | | | | | | `-- unaryExp +| | | | | | | | | | `-- primary +| | | | | | | | | | `-- lVal +| | | | | | | | | | |-- Ident: source +| | | | | | | | | | |-- L_BRACK: [ +| | | | | | | | | | |-- exp +| | | | | | | | | | | `-- addExp +| | | | | | | | | | | `-- mulExp +| | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | `-- primary +| | | | | | | | | | | `-- lVal +| | | | | | | | | | | `-- Ident: j +| | | | | | | | | | |-- R_BRACK: ] +| | | | | | | | | | |-- L_BRACK: [ +| | | | | | | | | | |-- exp +| | | | | | | | | | | `-- addExp +| | | | | | | | | | | |-- addExp +| | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | `-- primary +| | | | | | | | | | | | `-- lVal +| | | | | | | | | | | | `-- Ident: i +| | | | | | | | | | | |-- SubOp: - +| | | | | | | | | | | `-- mulExp +| | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | `-- primary +| | | | | | | | | | | `-- DECIMAL_INT: 1 +| | | | | | | | | | `-- R_BRACK: ] +| | | | | | | | | |-- AddOp: + +| | | | | | | | | `-- mulExp +| | | | | | | | | `-- unaryExp +| | | | | | | | | `-- primary +| | | | | | | | | `-- lVal +| | | | | | | | | |-- Ident: source +| | | | | | | | | |-- L_BRACK: [ +| | | | | | | | | |-- exp +| | | | | | | | | | `-- addExp +| | | | | | | | | | `-- mulExp +| | | | | | | | | | `-- unaryExp +| | | | | | | | | | `-- primary +| | | | | | | | | | `-- lVal +| | | | | | | | | | `-- Ident: j +| | | | | | | | | |-- R_BRACK: ] +| | | | | | | | | |-- L_BRACK: [ +| | | | | | | | | |-- exp +| | | | | | | | | | `-- addExp +| | | | | | | | | | |-- addExp +| | | | | | | | | | | `-- mulExp +| | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | `-- primary +| | | | | | | | | | | `-- lVal +| | | | | | | | | | | `-- Ident: i +| | | | | | | | | | |-- AddOp: + +| | | | | | | | | | `-- mulExp +| | | | | | | | | | `-- unaryExp +| | | | | | | | | | `-- primary +| | | | | | | | | | `-- DECIMAL_INT: 1 +| | | | | | | | | `-- R_BRACK: ] +| | | | | | | | |-- AddOp: + +| | | | | | | | `-- mulExp +| | | | | | | | `-- unaryExp +| | | | | | | | `-- primary +| | | | | | | | `-- lVal +| | | | | | | | |-- Ident: source +| | | | | | | | |-- L_BRACK: [ +| | | | | | | | |-- exp +| | | | | | | | | `-- addExp +| | | | | | | | | |-- addExp +| | | | | | | | | | `-- mulExp +| | | | | | | | | | `-- unaryExp +| | | | | | | | | | `-- primary +| | | | | | | | | | `-- lVal +| | | | | | | | | | `-- Ident: j +| | | | | | | | | |-- AddOp: + +| | | | | | | | | `-- mulExp +| | | | | | | | | `-- unaryExp +| | | | | | | | | `-- primary +| | | | | | | | | `-- DECIMAL_INT: 1 +| | | | | | | | |-- R_BRACK: ] +| | | | | | | | |-- L_BRACK: [ +| | | | | | | | |-- exp +| | | | | | | | | `-- addExp +| | | | | | | | | |-- addExp +| | | | | | | | | | `-- mulExp +| | | | | | | | | | `-- unaryExp +| | | | | | | | | | `-- primary +| | | | | | | | | | `-- lVal +| | | | | | | | | | `-- Ident: i +| | | | | | | | | |-- SubOp: - +| | | | | | | | | `-- mulExp +| | | | | | | | | `-- unaryExp +| | | | | | | | | `-- primary +| | | | | | | | | `-- DECIMAL_INT: 1 +| | | | | | | | `-- R_BRACK: ] +| | | | | | | |-- AddOp: + +| | | | | | | `-- mulExp +| | | | | | | `-- unaryExp +| | | | | | | `-- primary +| | | | | | | `-- lVal +| | | | | | | |-- Ident: source +| | | | | | | |-- L_BRACK: [ +| | | | | | | |-- exp +| | | | | | | | `-- addExp +| | | | | | | | |-- addExp +| | | | | | | | | `-- mulExp +| | | | | | | | | `-- unaryExp +| | | | | | | | | `-- primary +| | | | | | | | | `-- lVal +| | | | | | | | | `-- Ident: j +| | | | | | | | |-- AddOp: + +| | | | | | | | `-- mulExp +| | | | | | | | `-- unaryExp +| | | | | | | | `-- primary +| | | | | | | | `-- DECIMAL_INT: 1 +| | | | | | | |-- R_BRACK: ] +| | | | | | | |-- L_BRACK: [ +| | | | | | | |-- exp +| | | | | | | | `-- addExp +| | | | | | | | `-- mulExp +| | | | | | | | `-- unaryExp +| | | | | | | | `-- primary +| | | | | | | | `-- lVal +| | | | | | | | `-- Ident: i +| | | | | | | `-- R_BRACK: ] +| | | | | | |-- AddOp: + +| | | | | | `-- mulExp +| | | | | | `-- unaryExp +| | | | | | `-- primary +| | | | | | `-- lVal +| | | | | | |-- Ident: source +| | | | | | |-- L_BRACK: [ +| | | | | | |-- exp +| | | | | | | `-- addExp +| | | | | | | |-- addExp +| | | | | | | | `-- mulExp +| | | | | | | | `-- unaryExp +| | | | | | | | `-- primary +| | | | | | | | `-- lVal +| | | | | | | | `-- Ident: j +| | | | | | | |-- AddOp: + +| | | | | | | `-- mulExp +| | | | | | | `-- unaryExp +| | | | | | | `-- primary +| | | | | | | `-- DECIMAL_INT: 1 +| | | | | | |-- R_BRACK: ] +| | | | | | |-- L_BRACK: [ +| | | | | | |-- exp +| | | | | | | `-- addExp +| | | | | | | |-- addExp +| | | | | | | | `-- mulExp +| | | | | | | | `-- unaryExp +| | | | | | | | `-- primary +| | | | | | | | `-- lVal +| | | | | | | | `-- Ident: i +| | | | | | | |-- AddOp: + +| | | | | | | `-- mulExp +| | | | | | | `-- unaryExp +| | | | | | | `-- primary +| | | | | | | `-- DECIMAL_INT: 1 +| | | | | | `-- R_BRACK: ] +| | | | | `-- Semi: ; +| | | | |-- blockItem +| | | | | `-- stmt +| | | | | |-- If: if +| | | | | |-- L_PAREN: ( +| | | | | |-- cond +| | | | | | `-- lOrExp +| | | | | | `-- lAndExp +| | | | | | |-- lAndExp +| | | | | | | `-- eqExp +| | | | | | | |-- eqExp +| | | | | | | | `-- relExp +| | | | | | | | `-- addExp +| | | | | | | | `-- mulExp +| | | | | | | | `-- unaryExp +| | | | | | | | `-- primary +| | | | | | | | `-- lVal +| | | | | | | | |-- Ident: source +| | | | | | | | |-- L_BRACK: [ +| | | | | | | | |-- exp +| | | | | | | | | `-- addExp +| | | | | | | | | `-- mulExp +| | | | | | | | | `-- unaryExp +| | | | | | | | | `-- primary +| | | | | | | | | `-- lVal +| | | | | | | | | `-- Ident: j +| | | | | | | | |-- R_BRACK: ] +| | | | | | | | |-- L_BRACK: [ +| | | | | | | | |-- exp +| | | | | | | | | `-- addExp +| | | | | | | | | `-- mulExp +| | | | | | | | | `-- unaryExp +| | | | | | | | | `-- primary +| | | | | | | | | `-- lVal +| | | | | | | | | `-- Ident: i +| | | | | | | | `-- R_BRACK: ] +| | | | | | | |-- EqOp: == +| | | | | | | `-- relExp +| | | | | | | `-- addExp +| | | | | | | `-- mulExp +| | | | | | | `-- unaryExp +| | | | | | | `-- primary +| | | | | | | `-- DECIMAL_INT: 1 +| | | | | | |-- AndOp: && +| | | | | | `-- eqExp +| | | | | | |-- eqExp +| | | | | | | `-- relExp +| | | | | | | `-- addExp +| | | | | | | `-- mulExp +| | | | | | | `-- unaryExp +| | | | | | | `-- primary +| | | | | | | `-- lVal +| | | | | | | `-- Ident: alive_count +| | | | | | |-- EqOp: == +| | | | | | `-- relExp +| | | | | | `-- addExp +| | | | | | `-- mulExp +| | | | | | `-- unaryExp +| | | | | | `-- primary +| | | | | | `-- DECIMAL_INT: 2 +| | | | | |-- R_PAREN: ) +| | | | | |-- stmt +| | | | | | `-- block +| | | | | | |-- L_BRACE: { +| | | | | | |-- blockItem +| | | | | | | `-- stmt +| | | | | | | |-- lVal +| | | | | | | | |-- Ident: target +| | | | | | | | |-- L_BRACK: [ +| | | | | | | | |-- exp +| | | | | | | | | `-- addExp +| | | | | | | | | `-- mulExp +| | | | | | | | | `-- unaryExp +| | | | | | | | | `-- primary +| | | | | | | | | `-- lVal +| | | | | | | | | `-- Ident: j +| | | | | | | | |-- R_BRACK: ] +| | | | | | | | |-- L_BRACK: [ +| | | | | | | | |-- exp +| | | | | | | | | `-- addExp +| | | | | | | | | `-- mulExp +| | | | | | | | | `-- unaryExp +| | | | | | | | | `-- primary +| | | | | | | | | `-- lVal +| | | | | | | | | `-- Ident: i +| | | | | | | | `-- R_BRACK: ] +| | | | | | | |-- Assign: = +| | | | | | | |-- exp +| | | | | | | | `-- addExp +| | | | | | | | `-- mulExp +| | | | | | | | `-- unaryExp +| | | | | | | | `-- primary +| | | | | | | | `-- DECIMAL_INT: 1 +| | | | | | | `-- Semi: ; +| | | | | | `-- R_BRACE: } +| | | | | |-- Else: else +| | | | | `-- stmt +| | | | | |-- If: if +| | | | | |-- L_PAREN: ( +| | | | | |-- cond +| | | | | | `-- lOrExp +| | | | | | `-- lAndExp +| | | | | | `-- eqExp +| | | | | | |-- eqExp +| | | | | | | `-- relExp +| | | | | | | `-- addExp +| | | | | | | `-- mulExp +| | | | | | | `-- unaryExp +| | | | | | | `-- primary +| | | | | | | `-- lVal +| | | | | | | `-- Ident: alive_count +| | | | | | |-- EqOp: == +| | | | | | `-- relExp +| | | | | | `-- addExp +| | | | | | `-- mulExp +| | | | | | `-- unaryExp +| | | | | | `-- primary +| | | | | | `-- DECIMAL_INT: 3 +| | | | | |-- R_PAREN: ) +| | | | | |-- stmt +| | | | | | `-- block +| | | | | | |-- L_BRACE: { +| | | | | | |-- blockItem +| | | | | | | `-- stmt +| | | | | | | |-- lVal +| | | | | | | | |-- Ident: target +| | | | | | | | |-- L_BRACK: [ +| | | | | | | | |-- exp +| | | | | | | | | `-- addExp +| | | | | | | | | `-- mulExp +| | | | | | | | | `-- unaryExp +| | | | | | | | | `-- primary +| | | | | | | | | `-- lVal +| | | | | | | | | `-- Ident: j +| | | | | | | | |-- R_BRACK: ] +| | | | | | | | |-- L_BRACK: [ +| | | | | | | | |-- exp +| | | | | | | | | `-- addExp +| | | | | | | | | `-- mulExp +| | | | | | | | | `-- unaryExp +| | | | | | | | | `-- primary +| | | | | | | | | `-- lVal +| | | | | | | | | `-- Ident: i +| | | | | | | | `-- R_BRACK: ] +| | | | | | | |-- Assign: = +| | | | | | | |-- exp +| | | | | | | | `-- addExp +| | | | | | | | `-- mulExp +| | | | | | | | `-- unaryExp +| | | | | | | | `-- primary +| | | | | | | | `-- DECIMAL_INT: 1 +| | | | | | | `-- Semi: ; +| | | | | | `-- R_BRACE: } +| | | | | |-- Else: else +| | | | | `-- stmt +| | | | | `-- block +| | | | | |-- L_BRACE: { +| | | | | |-- blockItem +| | | | | | `-- stmt +| | | | | | |-- lVal +| | | | | | | |-- Ident: target +| | | | | | | |-- L_BRACK: [ +| | | | | | | |-- exp +| | | | | | | | `-- addExp +| | | | | | | | `-- mulExp +| | | | | | | | `-- unaryExp +| | | | | | | | `-- primary +| | | | | | | | `-- lVal +| | | | | | | | `-- Ident: j +| | | | | | | |-- R_BRACK: ] +| | | | | | | |-- L_BRACK: [ +| | | | | | | |-- exp +| | | | | | | | `-- addExp +| | | | | | | | `-- mulExp +| | | | | | | | `-- unaryExp +| | | | | | | | `-- primary +| | | | | | | | `-- lVal +| | | | | | | | `-- Ident: i +| | | | | | | `-- R_BRACK: ] +| | | | | | |-- Assign: = +| | | | | | |-- exp +| | | | | | | `-- addExp +| | | | | | | `-- mulExp +| | | | | | | `-- unaryExp +| | | | | | | `-- primary +| | | | | | | `-- OCTAL_INT: 0 +| | | | | | `-- Semi: ; +| | | | | `-- R_BRACE: } +| | | | |-- blockItem +| | | | | `-- stmt +| | | | | |-- lVal +| | | | | | `-- Ident: i +| | | | | |-- Assign: = +| | | | | |-- exp +| | | | | | `-- addExp +| | | | | | |-- addExp +| | | | | | | `-- mulExp +| | | | | | | `-- unaryExp +| | | | | | | `-- primary +| | | | | | | `-- lVal +| | | | | | | `-- Ident: i +| | | | | | |-- AddOp: + +| | | | | | `-- mulExp +| | | | | | `-- unaryExp +| | | | | | `-- primary +| | | | | | `-- DECIMAL_INT: 1 +| | | | | `-- Semi: ; +| | | | `-- R_BRACE: } +| | | |-- blockItem +| | | | `-- stmt +| | | | |-- lVal +| | | | | `-- Ident: j +| | | | |-- Assign: = +| | | | |-- exp +| | | | | `-- addExp +| | | | | |-- addExp +| | | | | | `-- mulExp +| | | | | | `-- unaryExp +| | | | | | `-- primary +| | | | | | `-- lVal +| | | | | | `-- Ident: j +| | | | | |-- AddOp: + +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- DECIMAL_INT: 1 +| | | | `-- Semi: ; +| | | `-- R_BRACE: } +| | `-- R_BRACE: } +| `-- funcDef +| |-- funcType +| | `-- Int: int +| |-- Ident: main +| |-- L_PAREN: ( +| |-- R_PAREN: ) +| `-- block +| |-- L_BRACE: { +| |-- blockItem +| | `-- stmt +| | |-- exp +| | | `-- addExp +| | | `-- mulExp +| | | `-- unaryExp +| | | |-- Ident: read_map +| | | |-- L_PAREN: ( +| | | `-- R_PAREN: ) +| | `-- Semi: ; +| |-- blockItem +| | `-- stmt +| | |-- exp +| | | `-- addExp +| | | `-- mulExp +| | | `-- unaryExp +| | | |-- Ident: starttime +| | | |-- L_PAREN: ( +| | | `-- R_PAREN: ) +| | `-- Semi: ; +| |-- blockItem +| | `-- stmt +| | |-- While: while +| | |-- L_PAREN: ( +| | |-- cond +| | | `-- lOrExp +| | | `-- lAndExp +| | | `-- eqExp +| | | `-- relExp +| | | |-- relExp +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- lVal +| | | | `-- Ident: steps +| | | |-- GOp: > +| | | `-- addExp +| | | `-- mulExp +| | | `-- unaryExp +| | | `-- primary +| | | `-- OCTAL_INT: 0 +| | |-- R_PAREN: ) +| | `-- stmt +| | `-- block +| | |-- L_BRACE: { +| | |-- blockItem +| | | `-- stmt +| | | |-- If: if +| | | |-- L_PAREN: ( +| | | |-- cond +| | | | `-- lOrExp +| | | | `-- lAndExp +| | | | `-- eqExp +| | | | |-- eqExp +| | | | | `-- relExp +| | | | | `-- addExp +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- lVal +| | | | | `-- Ident: active +| | | | |-- EqOp: == +| | | | `-- relExp +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- DECIMAL_INT: 1 +| | | |-- R_PAREN: ) +| | | |-- stmt +| | | | `-- block +| | | | |-- L_BRACE: { +| | | | |-- blockItem +| | | | | `-- stmt +| | | | | |-- exp +| | | | | | `-- addExp +| | | | | | `-- mulExp +| | | | | | `-- unaryExp +| | | | | | |-- Ident: step +| | | | | | |-- L_PAREN: ( +| | | | | | |-- funcRParams +| | | | | | | |-- exp +| | | | | | | | `-- addExp +| | | | | | | | `-- mulExp +| | | | | | | | `-- unaryExp +| | | | | | | | `-- primary +| | | | | | | | `-- lVal +| | | | | | | | `-- Ident: sheet1 +| | | | | | | |-- Comma: , +| | | | | | | `-- exp +| | | | | | | `-- addExp +| | | | | | | `-- mulExp +| | | | | | | `-- unaryExp +| | | | | | | `-- primary +| | | | | | | `-- lVal +| | | | | | | `-- Ident: sheet2 +| | | | | | `-- R_PAREN: ) +| | | | | `-- Semi: ; +| | | | |-- blockItem +| | | | | `-- stmt +| | | | | |-- lVal +| | | | | | `-- Ident: active +| | | | | |-- Assign: = +| | | | | |-- exp +| | | | | | `-- addExp +| | | | | | `-- mulExp +| | | | | | `-- unaryExp +| | | | | | `-- primary +| | | | | | `-- DECIMAL_INT: 2 +| | | | | `-- Semi: ; +| | | | `-- R_BRACE: } +| | | |-- Else: else +| | | `-- stmt +| | | `-- block +| | | |-- L_BRACE: { +| | | |-- blockItem +| | | | `-- stmt +| | | | |-- exp +| | | | | `-- addExp +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | |-- Ident: step +| | | | | |-- L_PAREN: ( +| | | | | |-- funcRParams +| | | | | | |-- exp +| | | | | | | `-- addExp +| | | | | | | `-- mulExp +| | | | | | | `-- unaryExp +| | | | | | | `-- primary +| | | | | | | `-- lVal +| | | | | | | `-- Ident: sheet2 +| | | | | | |-- Comma: , +| | | | | | `-- exp +| | | | | | `-- addExp +| | | | | | `-- mulExp +| | | | | | `-- unaryExp +| | | | | | `-- primary +| | | | | | `-- lVal +| | | | | | `-- Ident: sheet1 +| | | | | `-- R_PAREN: ) +| | | | `-- Semi: ; +| | | |-- blockItem +| | | | `-- stmt +| | | | |-- lVal +| | | | | `-- Ident: active +| | | | |-- Assign: = +| | | | |-- exp +| | | | | `-- addExp +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- DECIMAL_INT: 1 +| | | | `-- Semi: ; +| | | `-- R_BRACE: } +| | |-- blockItem +| | | `-- stmt +| | | |-- lVal +| | | | `-- Ident: steps +| | | |-- Assign: = +| | | |-- exp +| | | | `-- addExp +| | | | |-- addExp +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- lVal +| | | | | `-- Ident: steps +| | | | |-- SubOp: - +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- DECIMAL_INT: 1 +| | | `-- Semi: ; +| | `-- R_BRACE: } +| |-- blockItem +| | `-- stmt +| | |-- exp +| | | `-- addExp +| | | `-- mulExp +| | | `-- unaryExp +| | | |-- Ident: stoptime +| | | |-- L_PAREN: ( +| | | `-- R_PAREN: ) +| | `-- Semi: ; +| |-- blockItem +| | `-- stmt +| | |-- If: if +| | |-- L_PAREN: ( +| | |-- cond +| | | `-- lOrExp +| | | `-- lAndExp +| | | `-- eqExp +| | | |-- eqExp +| | | | `-- relExp +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- lVal +| | | | `-- Ident: active +| | | |-- EqOp: == +| | | `-- relExp +| | | `-- addExp +| | | `-- mulExp +| | | `-- unaryExp +| | | `-- primary +| | | `-- DECIMAL_INT: 2 +| | |-- R_PAREN: ) +| | `-- stmt +| | `-- block +| | |-- L_BRACE: { +| | |-- blockItem +| | | `-- stmt +| | | |-- exp +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | |-- Ident: swap12 +| | | | |-- L_PAREN: ( +| | | | `-- R_PAREN: ) +| | | `-- Semi: ; +| | `-- R_BRACE: } +| |-- blockItem +| | `-- stmt +| | |-- exp +| | | `-- addExp +| | | `-- mulExp +| | | `-- unaryExp +| | | |-- Ident: put_map +| | | |-- L_PAREN: ( +| | | `-- R_PAREN: ) +| | `-- Semi: ; +| |-- blockItem +| | `-- stmt +| | `-- returnStmt +| | |-- Return: return +| | |-- exp +| | | `-- addExp +| | | `-- mulExp +| | | `-- unaryExp +| | | `-- primary +| | | `-- OCTAL_INT: 0 +| | `-- Semi: ; +| `-- R_BRACE: } +`-- EOF: + +========== test/test_case/performance/if-combine3.sy ========== +compUnit +|-- program +| |-- funcDef +| | |-- funcType +| | | `-- Int: int +| | |-- Ident: func +| | |-- L_PAREN: ( +| | |-- funcFParams +| | | `-- funcFParam +| | | |-- bType +| | | | `-- Int: int +| | | `-- Ident: n +| | |-- R_PAREN: ) +| | `-- block +| | |-- L_BRACE: { +| | |-- blockItem +| | | `-- decl +| | | `-- varDecl +| | | |-- bType +| | | | `-- Int: int +| | | |-- varDef +| | | | |-- Ident: sum +| | | | |-- Assign: = +| | | | `-- initVal +| | | | `-- exp +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- OCTAL_INT: 0 +| | | `-- Semi: ; +| | |-- blockItem +| | | `-- decl +| | | `-- varDecl +| | | |-- bType +| | | | `-- Int: int +| | | |-- varDef +| | | | |-- Ident: i +| | | | |-- Assign: = +| | | | `-- initVal +| | | | `-- exp +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- DECIMAL_INT: 200 +| | | `-- Semi: ; +| | |-- blockItem +| | | `-- decl +| | | `-- varDecl +| | | |-- bType +| | | | `-- Int: int +| | | |-- varDef +| | | | |-- Ident: j +| | | | |-- Assign: = +| | | | `-- initVal +| | | | `-- exp +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- OCTAL_INT: 0 +| | | `-- Semi: ; +| | |-- blockItem +| | | `-- decl +| | | `-- varDecl +| | | |-- bType +| | | | `-- Int: int +| | | |-- varDef +| | | | |-- Ident: s +| | | | |-- L_BRACK: [ +| | | | |-- constExp +| | | | | `-- addExp +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- DECIMAL_INT: 100 +| | | | `-- R_BRACK: ] +| | | `-- Semi: ; +| | |-- blockItem +| | | `-- decl +| | | `-- varDecl +| | | |-- bType +| | | | `-- Int: int +| | | |-- varDef +| | | | |-- Ident: m +| | | | |-- Assign: = +| | | | `-- initVal +| | | | `-- exp +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- OCTAL_INT: 0 +| | | `-- Semi: ; +| | |-- blockItem +| | | `-- stmt +| | | |-- While: while +| | | |-- L_PAREN: ( +| | | |-- cond +| | | | `-- lOrExp +| | | | `-- lAndExp +| | | | `-- eqExp +| | | | `-- relExp +| | | | |-- relExp +| | | | | `-- addExp +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- lVal +| | | | | `-- Ident: m +| | | | |-- LOp: < +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- DECIMAL_INT: 100 +| | | |-- R_PAREN: ) +| | | `-- stmt +| | | `-- block +| | | |-- L_BRACE: { +| | | |-- blockItem +| | | | `-- stmt +| | | | |-- lVal +| | | | | |-- Ident: s +| | | | | |-- L_BRACK: [ +| | | | | |-- exp +| | | | | | `-- addExp +| | | | | | `-- mulExp +| | | | | | `-- unaryExp +| | | | | | `-- primary +| | | | | | `-- lVal +| | | | | | `-- Ident: m +| | | | | `-- R_BRACK: ] +| | | | |-- Assign: = +| | | | |-- exp +| | | | | `-- addExp +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- OCTAL_INT: 0 +| | | | `-- Semi: ; +| | | |-- blockItem +| | | | `-- stmt +| | | | |-- lVal +| | | | | `-- Ident: m +| | | | |-- Assign: = +| | | | |-- exp +| | | | | `-- addExp +| | | | | |-- addExp +| | | | | | `-- mulExp +| | | | | | `-- unaryExp +| | | | | | `-- primary +| | | | | | `-- lVal +| | | | | | `-- Ident: m +| | | | | |-- AddOp: + +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- DECIMAL_INT: 1 +| | | | `-- Semi: ; +| | | `-- R_BRACE: } +| | |-- blockItem +| | | `-- stmt +| | | |-- While: while +| | | |-- L_PAREN: ( +| | | |-- cond +| | | | `-- lOrExp +| | | | `-- lAndExp +| | | | `-- eqExp +| | | | `-- relExp +| | | | |-- relExp +| | | | | `-- addExp +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- lVal +| | | | | `-- Ident: j +| | | | |-- LOp: < +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- lVal +| | | | `-- Ident: n +| | | |-- R_PAREN: ) +| | | `-- stmt +| | | `-- block +| | | |-- L_BRACE: { +| | | |-- blockItem +| | | | `-- stmt +| | | | |-- If: if +| | | | |-- L_PAREN: ( +| | | | |-- cond +| | | | | `-- lOrExp +| | | | | `-- lAndExp +| | | | | `-- eqExp +| | | | | `-- relExp +| | | | | |-- relExp +| | | | | | `-- addExp +| | | | | | `-- mulExp +| | | | | | `-- unaryExp +| | | | | | `-- primary +| | | | | | `-- lVal +| | | | | | `-- Ident: i +| | | | | |-- GOp: > +| | | | | `-- addExp +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- DECIMAL_INT: 1 +| | | | |-- R_PAREN: ) +| | | | `-- stmt +| | | | `-- block +| | | | |-- L_BRACE: { +| | | | |-- blockItem +| | | | | `-- stmt +| | | | | |-- lVal +| | | | | | |-- Ident: s +| | | | | | |-- L_BRACK: [ +| | | | | | |-- exp +| | | | | | | `-- addExp +| | | | | | | `-- mulExp +| | | | | | | `-- unaryExp +| | | | | | | `-- primary +| | | | | | | `-- DECIMAL_INT: 1 +| | | | | | `-- R_BRACK: ] +| | | | | |-- Assign: = +| | | | | |-- exp +| | | | | | `-- addExp +| | | | | | `-- mulExp +| | | | | | `-- unaryExp +| | | | | | `-- primary +| | | | | | `-- DECIMAL_INT: 1 +| | | | | `-- Semi: ; +| | | | |-- blockItem +| | | | | `-- stmt +| | | | | |-- If: if +| | | | | |-- L_PAREN: ( +| | | | | |-- cond +| | | | | | `-- lOrExp +| | | | | | `-- lAndExp +| | | | | | `-- eqExp +| | | | | | `-- relExp +| | | | | | |-- relExp +| | | | | | | `-- addExp +| | | | | | | `-- mulExp +| | | | | | | `-- unaryExp +| | | | | | | `-- primary +| | | | | | | `-- lVal +| | | | | | | `-- Ident: i +| | | | | | |-- GOp: > +| | | | | | `-- addExp +| | | | | | `-- mulExp +| | | | | | `-- unaryExp +| | | | | | `-- primary +| | | | | | `-- DECIMAL_INT: 2 +| | | | | |-- R_PAREN: ) +| | | | | `-- stmt +| | | | | `-- block +| | | | | |-- L_BRACE: { +| | | | | |-- blockItem +| | | | | | `-- stmt +| | | | | | |-- lVal +| | | | | | | |-- Ident: s +| | | | | | | |-- L_BRACK: [ +| | | | | | | |-- exp +| | | | | | | | `-- addExp +| | | | | | | | `-- mulExp +| | | | | | | | `-- unaryExp +| | | | | | | | `-- primary +| | | | | | | | `-- DECIMAL_INT: 2 +| | | | | | | `-- R_BRACK: ] +| | | | | | |-- Assign: = +| | | | | | |-- exp +| | | | | | | `-- addExp +| | | | | | | `-- mulExp +| | | | | | | `-- unaryExp +| | | | | | | `-- primary +| | | | | | | `-- DECIMAL_INT: 2 +| | | | | | `-- Semi: ; +| | | | | |-- blockItem +| | | | | | `-- stmt +| | | | | | |-- If: if +| | | | | | |-- L_PAREN: ( +| | | | | | |-- cond +| | | | | | | `-- lOrExp +| | | | | | | `-- lAndExp +| | | | | | | `-- eqExp +| | | | | | | `-- relExp +| | | | | | | |-- relExp +| | | | | | | | `-- addExp +| | | | | | | | `-- mulExp +| | | | | | | | `-- unaryExp +| | | | | | | | `-- primary +| | | | | | | | `-- lVal +| | | | | | | | `-- Ident: i +| | | | | | | |-- GOp: > +| | | | | | | `-- addExp +| | | | | | | `-- mulExp +| | | | | | | `-- unaryExp +| | | | | | | `-- primary +| | | | | | | `-- DECIMAL_INT: 3 +| | | | | | |-- R_PAREN: ) +| | | | | | `-- stmt +| | | | | | `-- block +| | | | | | |-- L_BRACE: { +| | | | | | |-- blockItem +| | | | | | | `-- stmt +| | | | | | | |-- lVal +| | | | | | | | |-- Ident: s +| | | | | | | | |-- L_BRACK: [ +| | | | | | | | |-- exp +| | | | | | | | | `-- addExp +| | | | | | | | | `-- mulExp +| | | | | | | | | `-- unaryExp +| | | | | | | | | `-- primary +| | | | | | | | | `-- DECIMAL_INT: 3 +| | | | | | | | `-- R_BRACK: ] +| | | | | | | |-- Assign: = +| | | | | | | |-- exp +| | | | | | | | `-- addExp +| | | | | | | | `-- mulExp +| | | | | | | | `-- unaryExp +| | | | | | | | `-- primary +| | | | | | | | `-- DECIMAL_INT: 3 +| | | | | | | `-- Semi: ; +| | | | | | |-- blockItem +| | | | | | | `-- stmt +| | | | | | | |-- If: if +| | | | | | | |-- L_PAREN: ( +| | | | | | | |-- cond +| | | | | | | | `-- lOrExp +| | | | | | | | `-- lAndExp +| | | | | | | | `-- eqExp +| | | | | | | | `-- relExp +| | | | | | | | |-- relExp +| | | | | | | | | `-- addExp +| | | | | | | | | `-- mulExp +| | | | | | | | | `-- unaryExp +| | | | | | | | | `-- primary +| | | | | | | | | `-- lVal +| | | | | | | | | `-- Ident: i +| | | | | | | | |-- GOp: > +| | | | | | | | `-- addExp +| | | | | | | | `-- mulExp +| | | | | | | | `-- unaryExp +| | | | | | | | `-- primary +| | | | | | | | `-- DECIMAL_INT: 4 +| | | | | | | |-- R_PAREN: ) +| | | | | | | `-- stmt +| | | | | | | `-- block +| | | | | | | |-- L_BRACE: { +| | | | | | | |-- blockItem +| | | | | | | | `-- stmt +| | | | | | | | |-- lVal +| | | | | | | | | |-- Ident: s +| | | | | | | | | |-- L_BRACK: [ +| | | | | | | | | |-- exp +| | | | | | | | | | `-- addExp +| | | | | | | | | | `-- mulExp +| | | | | | | | | | `-- unaryExp +| | | | | | | | | | `-- primary +| | | | | | | | | | `-- DECIMAL_INT: 4 +| | | | | | | | | `-- R_BRACK: ] +| | | | | | | | |-- Assign: = +| | | | | | | | |-- exp +| | | | | | | | | `-- addExp +| | | | | | | | | `-- mulExp +| | | | | | | | | `-- unaryExp +| | | | | | | | | `-- primary +| | | | | | | | | `-- DECIMAL_INT: 4 +| | | | | | | | `-- Semi: ; +| | | | | | | |-- blockItem +| | | | | | | | `-- stmt +| | | | | | | | |-- If: if +| | | | | | | | |-- L_PAREN: ( +| | | | | | | | |-- cond +| | | | | | | | | `-- lOrExp +| | | | | | | | | `-- lAndExp +| | | | | | | | | `-- eqExp +| | | | | | | | | `-- relExp +| | | | | | | | | |-- relExp +| | | | | | | | | | `-- addExp +| | | | | | | | | | `-- mulExp +| | | | | | | | | | `-- unaryExp +| | | | | | | | | | `-- primary +| | | | | | | | | | `-- lVal +| | | | | | | | | | `-- Ident: i +| | | | | | | | | |-- GOp: > +| | | | | | | | | `-- addExp +| | | | | | | | | `-- mulExp +| | | | | | | | | `-- unaryExp +| | | | | | | | | `-- primary +| | | | | | | | | `-- DECIMAL_INT: 5 +| | | | | | | | |-- R_PAREN: ) +| | | | | | | | `-- stmt +| | | | | | | | `-- block +| | | | | | | | |-- L_BRACE: { +| | | | | | | | |-- blockItem +| | | | | | | | | `-- stmt +| | | | | | | | | |-- lVal +| | | | | | | | | | |-- Ident: s +| | | | | | | | | | |-- L_BRACK: [ +| | | | | | | | | | |-- exp +| | | | | | | | | | | `-- addExp +| | | | | | | | | | | `-- mulExp +| | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | `-- primary +| | | | | | | | | | | `-- DECIMAL_INT: 5 +| | | | | | | | | | `-- R_BRACK: ] +| | | | | | | | | |-- Assign: = +| | | | | | | | | |-- exp +| | | | | | | | | | `-- addExp +| | | | | | | | | | `-- mulExp +| | | | | | | | | | `-- unaryExp +| | | | | | | | | | `-- primary +| | | | | | | | | | `-- DECIMAL_INT: 5 +| | | | | | | | | `-- Semi: ; +| | | | | | | | |-- blockItem +| | | | | | | | | `-- stmt +| | | | | | | | | |-- If: if +| | | | | | | | | |-- L_PAREN: ( +| | | | | | | | | |-- cond +| | | | | | | | | | `-- lOrExp +| | | | | | | | | | `-- lAndExp +| | | | | | | | | | `-- eqExp +| | | | | | | | | | `-- relExp +| | | | | | | | | | |-- relExp +| | | | | | | | | | | `-- addExp +| | | | | | | | | | | `-- mulExp +| | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | `-- primary +| | | | | | | | | | | `-- lVal +| | | | | | | | | | | `-- Ident: i +| | | | | | | | | | |-- GOp: > +| | | | | | | | | | `-- addExp +| | | | | | | | | | `-- mulExp +| | | | | | | | | | `-- unaryExp +| | | | | | | | | | `-- primary +| | | | | | | | | | `-- DECIMAL_INT: 6 +| | | | | | | | | |-- R_PAREN: ) +| | | | | | | | | `-- stmt +| | | | | | | | | `-- block +| | | | | | | | | |-- L_BRACE: { +| | | | | | | | | |-- blockItem +| | | | | | | | | | `-- stmt +| | | | | | | | | | |-- lVal +| | | | | | | | | | | |-- Ident: s +| | | | | | | | | | | |-- L_BRACK: [ +| | | | | | | | | | | |-- exp +| | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | `-- primary +| | | | | | | | | | | | `-- DECIMAL_INT: 6 +| | | | | | | | | | | `-- R_BRACK: ] +| | | | | | | | | | |-- Assign: = +| | | | | | | | | | |-- exp +| | | | | | | | | | | `-- addExp +| | | | | | | | | | | `-- mulExp +| | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | `-- primary +| | | | | | | | | | | `-- DECIMAL_INT: 6 +| | | | | | | | | | `-- Semi: ; +| | | | | | | | | |-- blockItem +| | | | | | | | | | `-- stmt +| | | | | | | | | | |-- If: if +| | | | | | | | | | |-- L_PAREN: ( +| | | | | | | | | | |-- cond +| | | | | | | | | | | `-- lOrExp +| | | | | | | | | | | `-- lAndExp +| | | | | | | | | | | `-- eqExp +| | | | | | | | | | | `-- relExp +| | | | | | | | | | | |-- relExp +| | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | `-- primary +| | | | | | | | | | | | `-- lVal +| | | | | | | | | | | | `-- Ident: i +| | | | | | | | | | | |-- GOp: > +| | | | | | | | | | | `-- addExp +| | | | | | | | | | | `-- mulExp +| | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | `-- primary +| | | | | | | | | | | `-- DECIMAL_INT: 7 +| | | | | | | | | | |-- R_PAREN: ) +| | | | | | | | | | `-- stmt +| | | | | | | | | | `-- block +| | | | | | | | | | |-- L_BRACE: { +| | | | | | | | | | |-- blockItem +| | | | | | | | | | | `-- stmt +| | | | | | | | | | | |-- lVal +| | | | | | | | | | | | |-- Ident: s +| | | | | | | | | | | | |-- L_BRACK: [ +| | | | | | | | | | | | |-- exp +| | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | `-- DECIMAL_INT: 7 +| | | | | | | | | | | | `-- R_BRACK: ] +| | | | | | | | | | | |-- Assign: = +| | | | | | | | | | | |-- exp +| | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | `-- primary +| | | | | | | | | | | | `-- DECIMAL_INT: 7 +| | | | | | | | | | | `-- Semi: ; +| | | | | | | | | | |-- blockItem +| | | | | | | | | | | `-- stmt +| | | | | | | | | | | |-- If: if +| | | | | | | | | | | |-- L_PAREN: ( +| | | | | | | | | | | |-- cond +| | | | | | | | | | | | `-- lOrExp +| | | | | | | | | | | | `-- lAndExp +| | | | | | | | | | | | `-- eqExp +| | | | | | | | | | | | `-- relExp +| | | | | | | | | | | | |-- relExp +| | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | `-- lVal +| | | | | | | | | | | | | `-- Ident: i +| | | | | | | | | | | | |-- GOp: > +| | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | `-- primary +| | | | | | | | | | | | `-- DECIMAL_INT: 8 +| | | | | | | | | | | |-- R_PAREN: ) +| | | | | | | | | | | `-- stmt +| | | | | | | | | | | `-- block +| | | | | | | | | | | |-- L_BRACE: { +| | | | | | | | | | | |-- blockItem +| | | | | | | | | | | | `-- stmt +| | | | | | | | | | | | |-- lVal +| | | | | | | | | | | | | |-- Ident: s +| | | | | | | | | | | | | |-- L_BRACK: [ +| | | | | | | | | | | | | |-- exp +| | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | `-- DECIMAL_INT: 8 +| | | | | | | | | | | | | `-- R_BRACK: ] +| | | | | | | | | | | | |-- Assign: = +| | | | | | | | | | | | |-- exp +| | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | `-- DECIMAL_INT: 8 +| | | | | | | | | | | | `-- Semi: ; +| | | | | | | | | | | |-- blockItem +| | | | | | | | | | | | `-- stmt +| | | | | | | | | | | | |-- If: if +| | | | | | | | | | | | |-- L_PAREN: ( +| | | | | | | | | | | | |-- cond +| | | | | | | | | | | | | `-- lOrExp +| | | | | | | | | | | | | `-- lAndExp +| | | | | | | | | | | | | `-- eqExp +| | | | | | | | | | | | | `-- relExp +| | | | | | | | | | | | | |-- relExp +| | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | `-- lVal +| | | | | | | | | | | | | | `-- Ident: i +| | | | | | | | | | | | | |-- GOp: > +| | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | `-- DECIMAL_INT: 9 +| | | | | | | | | | | | |-- R_PAREN: ) +| | | | | | | | | | | | `-- stmt +| | | | | | | | | | | | `-- block +| | | | | | | | | | | | |-- L_BRACE: { +| | | | | | | | | | | | |-- blockItem +| | | | | | | | | | | | | `-- stmt +| | | | | | | | | | | | | |-- lVal +| | | | | | | | | | | | | | |-- Ident: s +| | | | | | | | | | | | | | |-- L_BRACK: [ +| | | | | | | | | | | | | | |-- exp +| | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | `-- DECIMAL_INT: 9 +| | | | | | | | | | | | | | `-- R_BRACK: ] +| | | | | | | | | | | | | |-- Assign: = +| | | | | | | | | | | | | |-- exp +| | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | `-- DECIMAL_INT: 9 +| | | | | | | | | | | | | `-- Semi: ; +| | | | | | | | | | | | |-- blockItem +| | | | | | | | | | | | | `-- stmt +| | | | | | | | | | | | | |-- If: if +| | | | | | | | | | | | | |-- L_PAREN: ( +| | | | | | | | | | | | | |-- cond +| | | | | | | | | | | | | | `-- lOrExp +| | | | | | | | | | | | | | `-- lAndExp +| | | | | | | | | | | | | | `-- eqExp +| | | | | | | | | | | | | | `-- relExp +| | | | | | | | | | | | | | |-- relExp +| | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | `-- lVal +| | | | | | | | | | | | | | | `-- Ident: i +| | | | | | | | | | | | | | |-- GOp: > +| | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | `-- DECIMAL_INT: 10 +| | | | | | | | | | | | | |-- R_PAREN: ) +| | | | | | | | | | | | | `-- stmt +| | | | | | | | | | | | | `-- block +| | | | | | | | | | | | | |-- L_BRACE: { +| | | | | | | | | | | | | |-- blockItem +| | | | | | | | | | | | | | `-- stmt +| | | | | | | | | | | | | | |-- lVal +| | | | | | | | | | | | | | | |-- Ident: s +| | | | | | | | | | | | | | | |-- L_BRACK: [ +| | | | | | | | | | | | | | | |-- exp +| | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | `-- DECIMAL_INT: 10 +| | | | | | | | | | | | | | | `-- R_BRACK: ] +| | | | | | | | | | | | | | |-- Assign: = +| | | | | | | | | | | | | | |-- exp +| | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | `-- DECIMAL_INT: 10 +| | | | | | | | | | | | | | `-- Semi: ; +| | | | | | | | | | | | | |-- blockItem +| | | | | | | | | | | | | | `-- stmt +| | | | | | | | | | | | | | |-- If: if +| | | | | | | | | | | | | | |-- L_PAREN: ( +| | | | | | | | | | | | | | |-- cond +| | | | | | | | | | | | | | | `-- lOrExp +| | | | | | | | | | | | | | | `-- lAndExp +| | | | | | | | | | | | | | | `-- eqExp +| | | | | | | | | | | | | | | `-- relExp +| | | | | | | | | | | | | | | |-- relExp +| | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | `-- lVal +| | | | | | | | | | | | | | | | `-- Ident: i +| | | | | | | | | | | | | | | |-- GOp: > +| | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | `-- DECIMAL_INT: 11 +| | | | | | | | | | | | | | |-- R_PAREN: ) +| | | | | | | | | | | | | | `-- stmt +| | | | | | | | | | | | | | `-- block +| | | | | | | | | | | | | | |-- L_BRACE: { +| | | | | | | | | | | | | | |-- blockItem +| | | | | | | | | | | | | | | `-- stmt +| | | | | | | | | | | | | | | |-- lVal +| | | | | | | | | | | | | | | | |-- Ident: s +| | | | | | | | | | | | | | | | |-- L_BRACK: [ +| | | | | | | | | | | | | | | | |-- exp +| | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | `-- DECIMAL_INT: 11 +| | | | | | | | | | | | | | | | `-- R_BRACK: ] +| | | | | | | | | | | | | | | |-- Assign: = +| | | | | | | | | | | | | | | |-- exp +| | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | `-- DECIMAL_INT: 11 +| | | | | | | | | | | | | | | `-- Semi: ; +| | | | | | | | | | | | | | |-- blockItem +| | | | | | | | | | | | | | | `-- stmt +| | | | | | | | | | | | | | | |-- If: if +| | | | | | | | | | | | | | | |-- L_PAREN: ( +| | | | | | | | | | | | | | | |-- cond +| | | | | | | | | | | | | | | | `-- lOrExp +| | | | | | | | | | | | | | | | `-- lAndExp +| | | | | | | | | | | | | | | | `-- eqExp +| | | | | | | | | | | | | | | | `-- relExp +| | | | | | | | | | | | | | | | |-- relExp +| | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | `-- lVal +| | | | | | | | | | | | | | | | | `-- Ident: i +| | | | | | | | | | | | | | | | |-- GOp: > +| | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | `-- DECIMAL_INT: 12 +| | | | | | | | | | | | | | | |-- R_PAREN: ) +| | | | | | | | | | | | | | | `-- stmt +| | | | | | | | | | | | | | | `-- block +| | | | | | | | | | | | | | | |-- L_BRACE: { +| | | | | | | | | | | | | | | |-- blockItem +| | | | | | | | | | | | | | | | `-- stmt +| | | | | | | | | | | | | | | | |-- lVal +| | | | | | | | | | | | | | | | | |-- Ident: s +| | | | | | | | | | | | | | | | | |-- L_BRACK: [ +| | | | | | | | | | | | | | | | | |-- exp +| | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | `-- DECIMAL_INT: 12 +| | | | | | | | | | | | | | | | | `-- R_BRACK: ] +| | | | | | | | | | | | | | | | |-- Assign: = +| | | | | | | | | | | | | | | | |-- exp +| | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | `-- DECIMAL_INT: 12 +| | | | | | | | | | | | | | | | `-- Semi: ; +| | | | | | | | | | | | | | | |-- blockItem +| | | | | | | | | | | | | | | | `-- stmt +| | | | | | | | | | | | | | | | |-- If: if +| | | | | | | | | | | | | | | | |-- L_PAREN: ( +| | | | | | | | | | | | | | | | |-- cond +| | | | | | | | | | | | | | | | | `-- lOrExp +| | | | | | | | | | | | | | | | | `-- lAndExp +| | | | | | | | | | | | | | | | | `-- eqExp +| | | | | | | | | | | | | | | | | `-- relExp +| | | | | | | | | | | | | | | | | |-- relExp +| | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | `-- lVal +| | | | | | | | | | | | | | | | | | `-- Ident: i +| | | | | | | | | | | | | | | | | |-- GOp: > +| | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | `-- DECIMAL_INT: 13 +| | | | | | | | | | | | | | | | |-- R_PAREN: ) +| | | | | | | | | | | | | | | | `-- stmt +| | | | | | | | | | | | | | | | `-- block +| | | | | | | | | | | | | | | | |-- L_BRACE: { +| | | | | | | | | | | | | | | | |-- blockItem +| | | | | | | | | | | | | | | | | `-- stmt +| | | | | | | | | | | | | | | | | |-- lVal +| | | | | | | | | | | | | | | | | | |-- Ident: s +| | | | | | | | | | | | | | | | | | |-- L_BRACK: [ +| | | | | | | | | | | | | | | | | | |-- exp +| | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | `-- DECIMAL_INT: 13 +| | | | | | | | | | | | | | | | | | `-- R_BRACK: ] +| | | | | | | | | | | | | | | | | |-- Assign: = +| | | | | | | | | | | | | | | | | |-- exp +| | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | `-- DECIMAL_INT: 13 +| | | | | | | | | | | | | | | | | `-- Semi: ; +| | | | | | | | | | | | | | | | |-- blockItem +| | | | | | | | | | | | | | | | | `-- stmt +| | | | | | | | | | | | | | | | | |-- If: if +| | | | | | | | | | | | | | | | | |-- L_PAREN: ( +| | | | | | | | | | | | | | | | | |-- cond +| | | | | | | | | | | | | | | | | | `-- lOrExp +| | | | | | | | | | | | | | | | | | `-- lAndExp +| | | | | | | | | | | | | | | | | | `-- eqExp +| | | | | | | | | | | | | | | | | | `-- relExp +| | | | | | | | | | | | | | | | | | |-- relExp +| | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | `-- lVal +| | | | | | | | | | | | | | | | | | | `-- Ident: i +| | | | | | | | | | | | | | | | | | |-- GOp: > +| | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | `-- DECIMAL_INT: 14 +| | | | | | | | | | | | | | | | | |-- R_PAREN: ) +| | | | | | | | | | | | | | | | | `-- stmt +| | | | | | | | | | | | | | | | | `-- block +| | | | | | | | | | | | | | | | | |-- L_BRACE: { +| | | | | | | | | | | | | | | | | |-- blockItem +| | | | | | | | | | | | | | | | | | `-- stmt +| | | | | | | | | | | | | | | | | | |-- lVal +| | | | | | | | | | | | | | | | | | | |-- Ident: s +| | | | | | | | | | | | | | | | | | | |-- L_BRACK: [ +| | | | | | | | | | | | | | | | | | | |-- exp +| | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | `-- DECIMAL_INT: 14 +| | | | | | | | | | | | | | | | | | | `-- R_BRACK: ] +| | | | | | | | | | | | | | | | | | |-- Assign: = +| | | | | | | | | | | | | | | | | | |-- exp +| | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | `-- DECIMAL_INT: 14 +| | | | | | | | | | | | | | | | | | `-- Semi: ; +| | | | | | | | | | | | | | | | | |-- blockItem +| | | | | | | | | | | | | | | | | | `-- stmt +| | | | | | | | | | | | | | | | | | |-- If: if +| | | | | | | | | | | | | | | | | | |-- L_PAREN: ( +| | | | | | | | | | | | | | | | | | |-- cond +| | | | | | | | | | | | | | | | | | | `-- lOrExp +| | | | | | | | | | | | | | | | | | | `-- lAndExp +| | | | | | | | | | | | | | | | | | | `-- eqExp +| | | | | | | | | | | | | | | | | | | `-- relExp +| | | | | | | | | | | | | | | | | | | |-- relExp +| | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | `-- lVal +| | | | | | | | | | | | | | | | | | | | `-- Ident: i +| | | | | | | | | | | | | | | | | | | |-- GOp: > +| | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | `-- DECIMAL_INT: 15 +| | | | | | | | | | | | | | | | | | |-- R_PAREN: ) +| | | | | | | | | | | | | | | | | | `-- stmt +| | | | | | | | | | | | | | | | | | `-- block +| | | | | | | | | | | | | | | | | | |-- L_BRACE: { +| | | | | | | | | | | | | | | | | | |-- blockItem +| | | | | | | | | | | | | | | | | | | `-- stmt +| | | | | | | | | | | | | | | | | | | |-- lVal +| | | | | | | | | | | | | | | | | | | | |-- Ident: s +| | | | | | | | | | | | | | | | | | | | |-- L_BRACK: [ +| | | | | | | | | | | | | | | | | | | | |-- exp +| | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | `-- DECIMAL_INT: 15 +| | | | | | | | | | | | | | | | | | | | `-- R_BRACK: ] +| | | | | | | | | | | | | | | | | | | |-- Assign: = +| | | | | | | | | | | | | | | | | | | |-- exp +| | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | `-- DECIMAL_INT: 15 +| | | | | | | | | | | | | | | | | | | `-- Semi: ; +| | | | | | | | | | | | | | | | | | |-- blockItem +| | | | | | | | | | | | | | | | | | | `-- stmt +| | | | | | | | | | | | | | | | | | | |-- If: if +| | | | | | | | | | | | | | | | | | | |-- L_PAREN: ( +| | | | | | | | | | | | | | | | | | | |-- cond +| | | | | | | | | | | | | | | | | | | | `-- lOrExp +| | | | | | | | | | | | | | | | | | | | `-- lAndExp +| | | | | | | | | | | | | | | | | | | | `-- eqExp +| | | | | | | | | | | | | | | | | | | | `-- relExp +| | | | | | | | | | | | | | | | | | | | |-- relExp +| | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | `-- lVal +| | | | | | | | | | | | | | | | | | | | | `-- Ident: i +| | | | | | | | | | | | | | | | | | | | |-- GOp: > +| | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | `-- DECIMAL_INT: 16 +| | | | | | | | | | | | | | | | | | | |-- R_PAREN: ) +| | | | | | | | | | | | | | | | | | | `-- stmt +| | | | | | | | | | | | | | | | | | | `-- block +| | | | | | | | | | | | | | | | | | | |-- L_BRACE: { +| | | | | | | | | | | | | | | | | | | |-- blockItem +| | | | | | | | | | | | | | | | | | | | `-- stmt +| | | | | | | | | | | | | | | | | | | | |-- lVal +| | | | | | | | | | | | | | | | | | | | | |-- Ident: s +| | | | | | | | | | | | | | | | | | | | | |-- L_BRACK: [ +| | | | | | | | | | | | | | | | | | | | | |-- exp +| | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | `-- DECIMAL_INT: 16 +| | | | | | | | | | | | | | | | | | | | | `-- R_BRACK: ] +| | | | | | | | | | | | | | | | | | | | |-- Assign: = +| | | | | | | | | | | | | | | | | | | | |-- exp +| | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | `-- DECIMAL_INT: 16 +| | | | | | | | | | | | | | | | | | | | `-- Semi: ; +| | | | | | | | | | | | | | | | | | | |-- blockItem +| | | | | | | | | | | | | | | | | | | | `-- stmt +| | | | | | | | | | | | | | | | | | | | |-- If: if +| | | | | | | | | | | | | | | | | | | | |-- L_PAREN: ( +| | | | | | | | | | | | | | | | | | | | |-- cond +| | | | | | | | | | | | | | | | | | | | | `-- lOrExp +| | | | | | | | | | | | | | | | | | | | | `-- lAndExp +| | | | | | | | | | | | | | | | | | | | | `-- eqExp +| | | | | | | | | | | | | | | | | | | | | `-- relExp +| | | | | | | | | | | | | | | | | | | | | |-- relExp +| | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | `-- lVal +| | | | | | | | | | | | | | | | | | | | | | `-- Ident: i +| | | | | | | | | | | | | | | | | | | | | |-- GOp: > +| | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | `-- DECIMAL_INT: 17 +| | | | | | | | | | | | | | | | | | | | |-- R_PAREN: ) +| | | | | | | | | | | | | | | | | | | | `-- stmt +| | | | | | | | | | | | | | | | | | | | `-- block +| | | | | | | | | | | | | | | | | | | | |-- L_BRACE: { +| | | | | | | | | | | | | | | | | | | | |-- blockItem +| | | | | | | | | | | | | | | | | | | | | `-- stmt +| | | | | | | | | | | | | | | | | | | | | |-- lVal +| | | | | | | | | | | | | | | | | | | | | | |-- Ident: s +| | | | | | | | | | | | | | | | | | | | | | |-- L_BRACK: [ +| | | | | | | | | | | | | | | | | | | | | | |-- exp +| | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | `-- DECIMAL_INT: 17 +| | | | | | | | | | | | | | | | | | | | | | `-- R_BRACK: ] +| | | | | | | | | | | | | | | | | | | | | |-- Assign: = +| | | | | | | | | | | | | | | | | | | | | |-- exp +| | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | `-- DECIMAL_INT: 17 +| | | | | | | | | | | | | | | | | | | | | `-- Semi: ; +| | | | | | | | | | | | | | | | | | | | |-- blockItem +| | | | | | | | | | | | | | | | | | | | | `-- stmt +| | | | | | | | | | | | | | | | | | | | | |-- If: if +| | | | | | | | | | | | | | | | | | | | | |-- L_PAREN: ( +| | | | | | | | | | | | | | | | | | | | | |-- cond +| | | | | | | | | | | | | | | | | | | | | | `-- lOrExp +| | | | | | | | | | | | | | | | | | | | | | `-- lAndExp +| | | | | | | | | | | | | | | | | | | | | | `-- eqExp +| | | | | | | | | | | | | | | | | | | | | | `-- relExp +| | | | | | | | | | | | | | | | | | | | | | |-- relExp +| | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | `-- lVal +| | | | | | | | | | | | | | | | | | | | | | | `-- Ident: i +| | | | | | | | | | | | | | | | | | | | | | |-- GOp: > +| | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | `-- DECIMAL_INT: 18 +| | | | | | | | | | | | | | | | | | | | | |-- R_PAREN: ) +| | | | | | | | | | | | | | | | | | | | | `-- stmt +| | | | | | | | | | | | | | | | | | | | | `-- block +| | | | | | | | | | | | | | | | | | | | | |-- L_BRACE: { +| | | | | | | | | | | | | | | | | | | | | |-- blockItem +| | | | | | | | | | | | | | | | | | | | | | `-- stmt +| | | | | | | | | | | | | | | | | | | | | | |-- lVal +| | | | | | | | | | | | | | | | | | | | | | | |-- Ident: s +| | | | | | | | | | | | | | | | | | | | | | | |-- L_BRACK: [ +| | | | | | | | | | | | | | | | | | | | | | | |-- exp +| | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | `-- DECIMAL_INT: 18 +| | | | | | | | | | | | | | | | | | | | | | | `-- R_BRACK: ] +| | | | | | | | | | | | | | | | | | | | | | |-- Assign: = +| | | | | | | | | | | | | | | | | | | | | | |-- exp +| | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | `-- DECIMAL_INT: 18 +| | | | | | | | | | | | | | | | | | | | | | `-- Semi: ; +| | | | | | | | | | | | | | | | | | | | | |-- blockItem +| | | | | | | | | | | | | | | | | | | | | | `-- stmt +| | | | | | | | | | | | | | | | | | | | | | |-- If: if +| | | | | | | | | | | | | | | | | | | | | | |-- L_PAREN: ( +| | | | | | | | | | | | | | | | | | | | | | |-- cond +| | | | | | | | | | | | | | | | | | | | | | | `-- lOrExp +| | | | | | | | | | | | | | | | | | | | | | | `-- lAndExp +| | | | | | | | | | | | | | | | | | | | | | | `-- eqExp +| | | | | | | | | | | | | | | | | | | | | | | `-- relExp +| | | | | | | | | | | | | | | | | | | | | | | |-- relExp +| | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | `-- lVal +| | | | | | | | | | | | | | | | | | | | | | | | `-- Ident: i +| | | | | | | | | | | | | | | | | | | | | | | |-- GOp: > +| | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | `-- DECIMAL_INT: 19 +| | | | | | | | | | | | | | | | | | | | | | |-- R_PAREN: ) +| | | | | | | | | | | | | | | | | | | | | | `-- stmt +| | | | | | | | | | | | | | | | | | | | | | `-- block +| | | | | | | | | | | | | | | | | | | | | | |-- L_BRACE: { +| | | | | | | | | | | | | | | | | | | | | | |-- blockItem +| | | | | | | | | | | | | | | | | | | | | | | `-- stmt +| | | | | | | | | | | | | | | | | | | | | | | |-- lVal +| | | | | | | | | | | | | | | | | | | | | | | | |-- Ident: s +| | | | | | | | | | | | | | | | | | | | | | | | |-- L_BRACK: [ +| | | | | | | | | | | | | | | | | | | | | | | | |-- exp +| | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | `-- DECIMAL_INT: 19 +| | | | | | | | | | | | | | | | | | | | | | | | `-- R_BRACK: ] +| | | | | | | | | | | | | | | | | | | | | | | |-- Assign: = +| | | | | | | | | | | | | | | | | | | | | | | |-- exp +| | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | `-- DECIMAL_INT: 19 +| | | | | | | | | | | | | | | | | | | | | | | `-- Semi: ; +| | | | | | | | | | | | | | | | | | | | | | |-- blockItem +| | | | | | | | | | | | | | | | | | | | | | | `-- stmt +| | | | | | | | | | | | | | | | | | | | | | | |-- If: if +| | | | | | | | | | | | | | | | | | | | | | | |-- L_PAREN: ( +| | | | | | | | | | | | | | | | | | | | | | | |-- cond +| | | | | | | | | | | | | | | | | | | | | | | | `-- lOrExp +| | | | | | | | | | | | | | | | | | | | | | | | `-- lAndExp +| | | | | | | | | | | | | | | | | | | | | | | | `-- eqExp +| | | | | | | | | | | | | | | | | | | | | | | | `-- relExp +| | | | | | | | | | | | | | | | | | | | | | | | |-- relExp +| | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | `-- lVal +| | | | | | | | | | | | | | | | | | | | | | | | | `-- Ident: i +| | | | | | | | | | | | | | | | | | | | | | | | |-- GOp: > +| | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | `-- DECIMAL_INT: 20 +| | | | | | | | | | | | | | | | | | | | | | | |-- R_PAREN: ) +| | | | | | | | | | | | | | | | | | | | | | | `-- stmt +| | | | | | | | | | | | | | | | | | | | | | | `-- block +| | | | | | | | | | | | | | | | | | | | | | | |-- L_BRACE: { +| | | | | | | | | | | | | | | | | | | | | | | |-- blockItem +| | | | | | | | | | | | | | | | | | | | | | | | `-- stmt +| | | | | | | | | | | | | | | | | | | | | | | | |-- lVal +| | | | | | | | | | | | | | | | | | | | | | | | | |-- Ident: s +| | | | | | | | | | | | | | | | | | | | | | | | | |-- L_BRACK: [ +| | | | | | | | | | | | | | | | | | | | | | | | | |-- exp +| | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | `-- DECIMAL_INT: 20 +| | | | | | | | | | | | | | | | | | | | | | | | | `-- R_BRACK: ] +| | | | | | | | | | | | | | | | | | | | | | | | |-- Assign: = +| | | | | | | | | | | | | | | | | | | | | | | | |-- exp +| | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | `-- DECIMAL_INT: 20 +| | | | | | | | | | | | | | | | | | | | | | | | `-- Semi: ; +| | | | | | | | | | | | | | | | | | | | | | | |-- blockItem +| | | | | | | | | | | | | | | | | | | | | | | | `-- stmt +| | | | | | | | | | | | | | | | | | | | | | | | |-- If: if +| | | | | | | | | | | | | | | | | | | | | | | | |-- L_PAREN: ( +| | | | | | | | | | | | | | | | | | | | | | | | |-- cond +| | | | | | | | | | | | | | | | | | | | | | | | | `-- lOrExp +| | | | | | | | | | | | | | | | | | | | | | | | | `-- lAndExp +| | | | | | | | | | | | | | | | | | | | | | | | | `-- eqExp +| | | | | | | | | | | | | | | | | | | | | | | | | `-- relExp +| | | | | | | | | | | | | | | | | | | | | | | | | |-- relExp +| | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | `-- lVal +| | | | | | | | | | | | | | | | | | | | | | | | | | `-- Ident: i +| | | | | | | | | | | | | | | | | | | | | | | | | |-- GOp: > +| | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | `-- DECIMAL_INT: 21 +| | | | | | | | | | | | | | | | | | | | | | | | |-- R_PAREN: ) +| | | | | | | | | | | | | | | | | | | | | | | | `-- stmt +| | | | | | | | | | | | | | | | | | | | | | | | `-- block +| | | | | | | | | | | | | | | | | | | | | | | | |-- L_BRACE: { +| | | | | | | | | | | | | | | | | | | | | | | | |-- blockItem +| | | | | | | | | | | | | | | | | | | | | | | | | `-- stmt +| | | | | | | | | | | | | | | | | | | | | | | | | |-- lVal +| | | | | | | | | | | | | | | | | | | | | | | | | | |-- Ident: s +| | | | | | | | | | | | | | | | | | | | | | | | | | |-- L_BRACK: [ +| | | | | | | | | | | | | | | | | | | | | | | | | | |-- exp +| | | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | | `-- DECIMAL_INT: 21 +| | | | | | | | | | | | | | | | | | | | | | | | | | `-- R_BRACK: ] +| | | | | | | | | | | | | | | | | | | | | | | | | |-- Assign: = +| | | | | | | | | | | | | | | | | | | | | | | | | |-- exp +| | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | `-- DECIMAL_INT: 21 +| | | | | | | | | | | | | | | | | | | | | | | | | `-- Semi: ; +| | | | | | | | | | | | | | | | | | | | | | | | |-- blockItem +| | | | | | | | | | | | | | | | | | | | | | | | | `-- stmt +| | | | | | | | | | | | | | | | | | | | | | | | | |-- If: if +| | | | | | | | | | | | | | | | | | | | | | | | | |-- L_PAREN: ( +| | | | | | | | | | | | | | | | | | | | | | | | | |-- cond +| | | | | | | | | | | | | | | | | | | | | | | | | | `-- lOrExp +| | | | | | | | | | | | | | | | | | | | | | | | | | `-- lAndExp +| | | | | | | | | | | | | | | | | | | | | | | | | | `-- eqExp +| | | | | | | | | | | | | | | | | | | | | | | | | | `-- relExp +| | | | | | | | | | | | | | | | | | | | | | | | | | |-- relExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | | `-- lVal +| | | | | | | | | | | | | | | | | | | | | | | | | | | `-- Ident: i +| | | | | | | | | | | | | | | | | | | | | | | | | | |-- GOp: > +| | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | `-- DECIMAL_INT: 22 +| | | | | | | | | | | | | | | | | | | | | | | | | |-- R_PAREN: ) +| | | | | | | | | | | | | | | | | | | | | | | | | `-- stmt +| | | | | | | | | | | | | | | | | | | | | | | | | `-- block +| | | | | | | | | | | | | | | | | | | | | | | | | |-- L_BRACE: { +| | | | | | | | | | | | | | | | | | | | | | | | | |-- blockItem +| | | | | | | | | | | | | | | | | | | | | | | | | | `-- stmt +| | | | | | | | | | | | | | | | | | | | | | | | | | |-- lVal +| | | | | | | | | | | | | | | | | | | | | | | | | | | |-- Ident: s +| | | | | | | | | | | | | | | | | | | | | | | | | | | |-- L_BRACK: [ +| | | | | | | | | | | | | | | | | | | | | | | | | | | |-- exp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- DECIMAL_INT: 22 +| | | | | | | | | | | | | | | | | | | | | | | | | | | `-- R_BRACK: ] +| | | | | | | | | | | | | | | | | | | | | | | | | | |-- Assign: = +| | | | | | | | | | | | | | | | | | | | | | | | | | |-- exp +| | | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | | `-- DECIMAL_INT: 22 +| | | | | | | | | | | | | | | | | | | | | | | | | | `-- Semi: ; +| | | | | | | | | | | | | | | | | | | | | | | | | |-- blockItem +| | | | | | | | | | | | | | | | | | | | | | | | | | `-- stmt +| | | | | | | | | | | | | | | | | | | | | | | | | | |-- If: if +| | | | | | | | | | | | | | | | | | | | | | | | | | |-- L_PAREN: ( +| | | | | | | | | | | | | | | | | | | | | | | | | | |-- cond +| | | | | | | | | | | | | | | | | | | | | | | | | | | `-- lOrExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | `-- lAndExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | `-- eqExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | `-- relExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | |-- relExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- lVal +| | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- Ident: i +| | | | | | | | | | | | | | | | | | | | | | | | | | | |-- GOp: > +| | | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | | `-- DECIMAL_INT: 23 +| | | | | | | | | | | | | | | | | | | | | | | | | | |-- R_PAREN: ) +| | | | | | | | | | | | | | | | | | | | | | | | | | `-- stmt +| | | | | | | | | | | | | | | | | | | | | | | | | | `-- block +| | | | | | | | | | | | | | | | | | | | | | | | | | |-- L_BRACE: { +| | | | | | | | | | | | | | | | | | | | | | | | | | |-- blockItem +| | | | | | | | | | | | | | | | | | | | | | | | | | | `-- stmt +| | | | | | | | | | | | | | | | | | | | | | | | | | | |-- lVal +| | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- Ident: s +| | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- L_BRACK: [ +| | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- exp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- DECIMAL_INT: 23 +| | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- R_BRACK: ] +| | | | | | | | | | | | | | | | | | | | | | | | | | | |-- Assign: = +| | | | | | | | | | | | | | | | | | | | | | | | | | | |-- exp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- DECIMAL_INT: 23 +| | | | | | | | | | | | | | | | | | | | | | | | | | | `-- Semi: ; +| | | | | | | | | | | | | | | | | | | | | | | | | | |-- blockItem +| | | | | | | | | | | | | | | | | | | | | | | | | | | `-- stmt +| | | | | | | | | | | | | | | | | | | | | | | | | | | |-- If: if +| | | | | | | | | | | | | | | | | | | | | | | | | | | |-- L_PAREN: ( +| | | | | | | | | | | | | | | | | | | | | | | | | | | |-- cond +| | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- lOrExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- lAndExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- eqExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- relExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- relExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- lVal +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- Ident: i +| | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- GOp: > +| | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- DECIMAL_INT: 24 +| | | | | | | | | | | | | | | | | | | | | | | | | | | |-- R_PAREN: ) +| | | | | | | | | | | | | | | | | | | | | | | | | | | `-- stmt +| | | | | | | | | | | | | | | | | | | | | | | | | | | `-- block +| | | | | | | | | | | | | | | | | | | | | | | | | | | |-- L_BRACE: { +| | | | | | | | | | | | | | | | | | | | | | | | | | | |-- blockItem +| | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- stmt +| | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- lVal +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- Ident: s +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- L_BRACK: [ +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- exp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- DECIMAL_INT: 24 +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- R_BRACK: ] +| | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- Assign: = +| | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- exp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- DECIMAL_INT: 24 +| | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- Semi: ; +| | | | | | | | | | | | | | | | | | | | | | | | | | | |-- blockItem +| | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- stmt +| | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- If: if +| | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- L_PAREN: ( +| | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- cond +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- lOrExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- lAndExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- eqExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- relExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- relExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- lVal +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- Ident: i +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- GOp: > +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- DECIMAL_INT: 25 +| | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- R_PAREN: ) +| | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- stmt +| | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- block +| | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- L_BRACE: { +| | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- blockItem +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- stmt +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- lVal +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- Ident: s +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- L_BRACK: [ +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- exp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- DECIMAL_INT: 25 +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- R_BRACK: ] +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- Assign: = +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- exp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- DECIMAL_INT: 25 +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- Semi: ; +| | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- blockItem +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- stmt +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- If: if +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- L_PAREN: ( +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- cond +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- lOrExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- lAndExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- eqExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- relExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- relExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- lVal +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- Ident: i +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- GOp: > +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- DECIMAL_INT: 26 +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- R_PAREN: ) +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- stmt +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- block +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- L_BRACE: { +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- blockItem +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- stmt +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- lVal +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- Ident: s +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- L_BRACK: [ +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- exp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- DECIMAL_INT: 26 +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- R_BRACK: ] +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- Assign: = +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- exp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- DECIMAL_INT: 26 +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- Semi: ; +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- blockItem +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- stmt +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- If: if +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- L_PAREN: ( +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- cond +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- lOrExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- lAndExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- eqExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- relExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- relExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- lVal +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- Ident: i +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- GOp: > +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- DECIMAL_INT: 27 +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- R_PAREN: ) +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- stmt +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- block +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- L_BRACE: { +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- blockItem +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- stmt +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- lVal +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- Ident: s +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- L_BRACK: [ +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- exp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- DECIMAL_INT: 27 +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- R_BRACK: ] +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- Assign: = +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- exp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- DECIMAL_INT: 27 +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- Semi: ; +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- blockItem +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- stmt +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- If: if +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- L_PAREN: ( +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- cond +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- lOrExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- lAndExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- eqExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- relExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- relExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- lVal +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- Ident: i +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- GOp: > +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- DECIMAL_INT: 28 +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- R_PAREN: ) +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- stmt +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- block +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- L_BRACE: { +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- blockItem +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- stmt +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- lVal +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- Ident: s +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- L_BRACK: [ +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- exp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- DECIMAL_INT: 28 +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- R_BRACK: ] +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- Assign: = +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- exp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- DECIMAL_INT: 28 +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- Semi: ; +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- blockItem +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- stmt +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- If: if +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- L_PAREN: ( +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- cond +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- lOrExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- lAndExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- eqExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- relExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- relExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- lVal +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- Ident: i +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- GOp: > +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- DECIMAL_INT: 29 +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- R_PAREN: ) +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- stmt +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- block +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- L_BRACE: { +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- blockItem +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- stmt +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- lVal +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- Ident: s +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- L_BRACK: [ +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- exp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- DECIMAL_INT: 29 +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- R_BRACK: ] +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- Assign: = +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- exp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- DECIMAL_INT: 29 +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- Semi: ; +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- blockItem +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- stmt +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- If: if +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- L_PAREN: ( +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- cond +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- lOrExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- lAndExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- eqExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- relExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- relExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- lVal +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- Ident: i +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- GOp: > +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- DECIMAL_INT: 30 +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- R_PAREN: ) +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- stmt +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- block +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- L_BRACE: { +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- blockItem +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- stmt +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- lVal +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- Ident: s +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- L_BRACK: [ +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- exp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- DECIMAL_INT: 30 +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- R_BRACK: ] +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- Assign: = +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- exp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- DECIMAL_INT: 30 +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- Semi: ; +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- blockItem +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- stmt +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- If: if +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- L_PAREN: ( +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- cond +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- lOrExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- lAndExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- eqExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- relExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- relExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- lVal +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- Ident: i +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- GOp: > +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- DECIMAL_INT: 31 +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- R_PAREN: ) +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- stmt +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- block +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- L_BRACE: { +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- blockItem +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- stmt +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- lVal +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- Ident: s +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- L_BRACK: [ +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- exp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- DECIMAL_INT: 31 +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- R_BRACK: ] +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- Assign: = +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- exp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- DECIMAL_INT: 31 +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- Semi: ; +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- blockItem +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- stmt +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- If: if +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- L_PAREN: ( +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- cond +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- lOrExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- lAndExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- eqExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- relExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- relExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- lVal +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- Ident: i +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- GOp: > +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- DECIMAL_INT: 32 +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- R_PAREN: ) +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- stmt +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- block +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- L_BRACE: { +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- blockItem +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- stmt +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- lVal +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- Ident: s +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- L_BRACK: [ +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- exp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- DECIMAL_INT: 32 +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- R_BRACK: ] +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- Assign: = +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- exp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- DECIMAL_INT: 32 +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- Semi: ; +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- blockItem +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- stmt +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- If: if +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- L_PAREN: ( +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- cond +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- lOrExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- lAndExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- eqExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- relExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- relExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- lVal +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- Ident: i +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- GOp: > +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- DECIMAL_INT: 33 +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- R_PAREN: ) +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- stmt +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- block +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- L_BRACE: { +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- blockItem +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- stmt +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- lVal +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- Ident: s +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- L_BRACK: [ +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- exp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- DECIMAL_INT: 33 +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- R_BRACK: ] +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- Assign: = +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- exp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- DECIMAL_INT: 33 +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- Semi: ; +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- blockItem +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- stmt +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- If: if +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- L_PAREN: ( +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- cond +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- lOrExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- lAndExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- eqExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- relExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- relExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- lVal +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- Ident: i +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- GOp: > +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- DECIMAL_INT: 34 +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- R_PAREN: ) +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- stmt +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- block +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- L_BRACE: { +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- blockItem +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- stmt +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- lVal +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- Ident: s +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- L_BRACK: [ +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- exp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- DECIMAL_INT: 34 +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- R_BRACK: ] +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- Assign: = +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- exp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- DECIMAL_INT: 34 +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- Semi: ; +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- blockItem +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- stmt +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- If: if +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- L_PAREN: ( +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- cond +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- lOrExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- lAndExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- eqExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- relExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- relExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- lVal +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- Ident: i +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- GOp: > +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- DECIMAL_INT: 35 +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- R_PAREN: ) +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- stmt +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- block +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- L_BRACE: { +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- blockItem +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- stmt +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- lVal +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- Ident: s +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- L_BRACK: [ +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- exp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- DECIMAL_INT: 35 +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- R_BRACK: ] +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- Assign: = +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- exp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- DECIMAL_INT: 35 +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- Semi: ; +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- blockItem +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- stmt +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- If: if +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- L_PAREN: ( +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- cond +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- lOrExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- lAndExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- eqExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- relExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- relExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- lVal +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- Ident: i +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- GOp: > +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- DECIMAL_INT: 36 +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- R_PAREN: ) +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- stmt +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- block +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- L_BRACE: { +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- blockItem +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- stmt +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- lVal +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- Ident: s +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- L_BRACK: [ +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- exp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- DECIMAL_INT: 36 +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- R_BRACK: ] +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- Assign: = +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- exp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- DECIMAL_INT: 36 +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- Semi: ; +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- blockItem +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- stmt +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- If: if +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- L_PAREN: ( +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- cond +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- lOrExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- lAndExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- eqExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- relExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- relExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- lVal +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- Ident: i +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- GOp: > +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- DECIMAL_INT: 37 +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- R_PAREN: ) +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- stmt +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- block +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- L_BRACE: { +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- blockItem +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- stmt +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- lVal +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- Ident: s +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- L_BRACK: [ +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- exp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- DECIMAL_INT: 37 +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- R_BRACK: ] +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- Assign: = +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- exp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- DECIMAL_INT: 37 +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- Semi: ; +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- blockItem +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- stmt +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- If: if +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- L_PAREN: ( +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- cond +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- lOrExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- lAndExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- eqExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- relExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- relExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- lVal +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- Ident: i +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- GOp: > +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- DECIMAL_INT: 38 +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- R_PAREN: ) +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- stmt +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- block +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- L_BRACE: { +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- blockItem +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- stmt +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- lVal +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- Ident: s +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- L_BRACK: [ +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- exp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- DECIMAL_INT: 38 +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- R_BRACK: ] +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- Assign: = +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- exp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- DECIMAL_INT: 38 +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- Semi: ; +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- blockItem +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- stmt +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- If: if +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- L_PAREN: ( +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- cond +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- lOrExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- lAndExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- eqExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- relExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- relExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- lVal +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- Ident: i +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- GOp: > +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- DECIMAL_INT: 39 +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- R_PAREN: ) +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- stmt +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- block +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- L_BRACE: { +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- blockItem +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- stmt +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- lVal +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- Ident: s +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- L_BRACK: [ +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- exp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- DECIMAL_INT: 39 +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- R_BRACK: ] +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- Assign: = +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- exp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- DECIMAL_INT: 39 +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- Semi: ; +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- blockItem +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- stmt +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- If: if +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- L_PAREN: ( +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- cond +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- lOrExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- lAndExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- eqExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- relExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- relExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- lVal +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- Ident: i +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- GOp: > +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- DECIMAL_INT: 40 +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- R_PAREN: ) +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- stmt +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- block +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- L_BRACE: { +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- blockItem +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- stmt +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- lVal +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- Ident: s +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- L_BRACK: [ +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- exp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- DECIMAL_INT: 40 +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- R_BRACK: ] +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- Assign: = +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- exp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- DECIMAL_INT: 40 +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- Semi: ; +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- blockItem +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- stmt +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- If: if +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- L_PAREN: ( +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- cond +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- lOrExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- lAndExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- eqExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- relExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- relExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- lVal +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- Ident: i +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- GOp: > +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- DECIMAL_INT: 41 +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- R_PAREN: ) +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- stmt +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- block +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- L_BRACE: { +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- blockItem +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- stmt +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- lVal +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- Ident: s +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- L_BRACK: [ +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- exp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- DECIMAL_INT: 41 +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- R_BRACK: ] +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- Assign: = +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- exp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- DECIMAL_INT: 41 +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- Semi: ; +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- blockItem +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- stmt +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- If: if +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- L_PAREN: ( +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- cond +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- lOrExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- lAndExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- eqExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- relExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- relExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- lVal +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- Ident: i +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- GOp: > +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- DECIMAL_INT: 42 +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- R_PAREN: ) +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- stmt +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- block +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- L_BRACE: { +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- blockItem +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- stmt +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- lVal +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- Ident: s +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- L_BRACK: [ +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- exp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- DECIMAL_INT: 42 +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- R_BRACK: ] +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- Assign: = +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- exp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- DECIMAL_INT: 42 +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- Semi: ; +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- blockItem +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- stmt +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- If: if +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- L_PAREN: ( +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- cond +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- lOrExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- lAndExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- eqExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- relExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- relExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- lVal +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- Ident: i +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- GOp: > +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- DECIMAL_INT: 43 +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- R_PAREN: ) +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- stmt +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- block +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- L_BRACE: { +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- blockItem +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- stmt +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- lVal +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- Ident: s +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- L_BRACK: [ +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- exp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- DECIMAL_INT: 43 +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- R_BRACK: ] +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- Assign: = +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- exp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- DECIMAL_INT: 43 +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- Semi: ; +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- blockItem +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- stmt +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- If: if +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- L_PAREN: ( +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- cond +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- lOrExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- lAndExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- eqExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- relExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- relExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- lVal +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- Ident: i +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- GOp: > +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- DECIMAL_INT: 44 +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- R_PAREN: ) +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- stmt +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- block +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- L_BRACE: { +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- blockItem +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- stmt +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- lVal +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- Ident: s +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- L_BRACK: [ +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- exp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- DECIMAL_INT: 44 +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- R_BRACK: ] +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- Assign: = +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- exp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- DECIMAL_INT: 44 +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- Semi: ; +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- blockItem +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- stmt +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- If: if +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- L_PAREN: ( +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- cond +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- lOrExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- lAndExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- eqExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- relExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- relExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- lVal +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- Ident: i +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- GOp: > +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- DECIMAL_INT: 45 +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- R_PAREN: ) +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- stmt +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- block +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- L_BRACE: { +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- blockItem +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- stmt +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- lVal +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- Ident: s +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- L_BRACK: [ +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- exp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- DECIMAL_INT: 45 +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- R_BRACK: ] +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- Assign: = +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- exp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- DECIMAL_INT: 45 +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- Semi: ; +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- blockItem +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- stmt +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- If: if +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- L_PAREN: ( +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- cond +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- lOrExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- lAndExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- eqExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- relExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- relExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- lVal +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- Ident: i +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- GOp: > +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- DECIMAL_INT: 46 +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- R_PAREN: ) +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- stmt +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- block +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- L_BRACE: { +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- blockItem +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- stmt +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- lVal +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- Ident: s +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- L_BRACK: [ +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- exp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- DECIMAL_INT: 46 +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- R_BRACK: ] +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- Assign: = +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- exp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- DECIMAL_INT: 46 +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- Semi: ; +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- blockItem +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- stmt +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- If: if +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- L_PAREN: ( +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- cond +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- lOrExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- lAndExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- eqExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- relExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- relExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- lVal +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- Ident: i +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- GOp: > +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- DECIMAL_INT: 47 +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- R_PAREN: ) +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- stmt +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- block +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- L_BRACE: { +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- blockItem +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- stmt +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- lVal +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- Ident: s +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- L_BRACK: [ +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- exp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- DECIMAL_INT: 47 +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- R_BRACK: ] +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- Assign: = +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- exp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- DECIMAL_INT: 47 +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- Semi: ; +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- blockItem +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- stmt +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- If: if +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- L_PAREN: ( +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- cond +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- lOrExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- lAndExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- eqExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- relExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- relExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- lVal +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- Ident: i +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- GOp: > +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- DECIMAL_INT: 48 +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- R_PAREN: ) +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- stmt +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- block +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- L_BRACE: { +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- blockItem +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- stmt +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- lVal +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- Ident: s +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- L_BRACK: [ +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- exp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- DECIMAL_INT: 48 +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- R_BRACK: ] +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- Assign: = +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- exp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- DECIMAL_INT: 48 +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- Semi: ; +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- blockItem +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- stmt +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- If: if +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- L_PAREN: ( +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- cond +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- lOrExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- lAndExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- eqExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- relExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- relExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- lVal +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- Ident: i +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- GOp: > +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- DECIMAL_INT: 49 +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- R_PAREN: ) +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- stmt +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- block +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- L_BRACE: { +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- blockItem +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- stmt +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- lVal +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- Ident: s +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- L_BRACK: [ +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- exp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- DECIMAL_INT: 49 +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- R_BRACK: ] +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- Assign: = +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- exp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- DECIMAL_INT: 49 +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- Semi: ; +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- blockItem +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- stmt +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- If: if +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- L_PAREN: ( +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- cond +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- lOrExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- lAndExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- eqExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- relExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- relExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- lVal +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- Ident: i +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- GOp: > +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- DECIMAL_INT: 50 +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- R_PAREN: ) +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- stmt +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- block +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- L_BRACE: { +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- blockItem +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- stmt +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- lVal +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- Ident: s +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- L_BRACK: [ +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- exp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- DECIMAL_INT: 50 +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- R_BRACK: ] +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- Assign: = +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- exp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- DECIMAL_INT: 50 +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- Semi: ; +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- blockItem +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- stmt +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- If: if +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- L_PAREN: ( +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- cond +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- lOrExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- lAndExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- eqExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- relExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- relExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- lVal +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- Ident: i +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- GOp: > +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- DECIMAL_INT: 51 +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- R_PAREN: ) +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- stmt +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- block +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- L_BRACE: { +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- blockItem +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- stmt +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- lVal +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- Ident: s +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- L_BRACK: [ +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- exp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- DECIMAL_INT: 51 +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- R_BRACK: ] +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- Assign: = +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- exp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- DECIMAL_INT: 51 +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- Semi: ; +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- blockItem +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- stmt +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- If: if +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- L_PAREN: ( +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- cond +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- lOrExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- lAndExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- eqExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- relExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- relExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- lVal +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- Ident: i +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- GOp: > +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- DECIMAL_INT: 52 +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- R_PAREN: ) +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- stmt +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- block +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- L_BRACE: { +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- blockItem +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- stmt +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- lVal +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- Ident: s +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- L_BRACK: [ +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- exp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- DECIMAL_INT: 52 +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- R_BRACK: ] +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- Assign: = +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- exp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- DECIMAL_INT: 52 +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- Semi: ; +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- blockItem +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- stmt +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- If: if +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- L_PAREN: ( +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- cond +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- lOrExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- lAndExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- eqExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- relExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- relExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- lVal +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- Ident: i +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- GOp: > +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- DECIMAL_INT: 53 +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- R_PAREN: ) +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- stmt +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- block +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- L_BRACE: { +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- blockItem +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- stmt +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- lVal +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- Ident: s +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- L_BRACK: [ +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- exp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- DECIMAL_INT: 53 +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- R_BRACK: ] +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- Assign: = +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- exp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- DECIMAL_INT: 53 +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- Semi: ; +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- blockItem +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- stmt +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- If: if +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- L_PAREN: ( +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- cond +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- lOrExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- lAndExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- eqExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- relExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- relExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- lVal +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- Ident: i +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- GOp: > +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- DECIMAL_INT: 54 +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- R_PAREN: ) +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- stmt +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- block +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- L_BRACE: { +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- blockItem +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- stmt +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- lVal +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- Ident: s +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- L_BRACK: [ +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- exp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- DECIMAL_INT: 54 +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- R_BRACK: ] +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- Assign: = +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- exp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- DECIMAL_INT: 54 +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- Semi: ; +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- blockItem +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- stmt +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- If: if +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- L_PAREN: ( +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- cond +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- lOrExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- lAndExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- eqExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- relExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- relExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- lVal +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- Ident: i +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- GOp: > +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- DECIMAL_INT: 55 +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- R_PAREN: ) +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- stmt +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- block +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- L_BRACE: { +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- blockItem +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- stmt +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- lVal +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- Ident: s +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- L_BRACK: [ +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- exp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- DECIMAL_INT: 55 +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- R_BRACK: ] +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- Assign: = +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- exp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- DECIMAL_INT: 55 +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- Semi: ; +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- blockItem +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- stmt +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- If: if +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- L_PAREN: ( +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- cond +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- lOrExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- lAndExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- eqExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- relExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- relExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- lVal +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- Ident: i +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- GOp: > +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- DECIMAL_INT: 56 +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- R_PAREN: ) +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- stmt +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- block +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- L_BRACE: { +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- blockItem +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- stmt +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- lVal +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- Ident: s +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- L_BRACK: [ +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- exp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- DECIMAL_INT: 56 +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- R_BRACK: ] +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- Assign: = +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- exp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- DECIMAL_INT: 56 +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- Semi: ; +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- blockItem +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- stmt +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- If: if +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- L_PAREN: ( +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- cond +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- lOrExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- lAndExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- eqExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- relExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- relExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- lVal +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- Ident: i +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- GOp: > +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- DECIMAL_INT: 57 +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- R_PAREN: ) +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- stmt +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- block +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- L_BRACE: { +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- blockItem +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- stmt +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- lVal +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- Ident: s +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- L_BRACK: [ +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- exp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- DECIMAL_INT: 57 +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- R_BRACK: ] +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- Assign: = +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- exp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- DECIMAL_INT: 57 +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- Semi: ; +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- blockItem +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- stmt +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- If: if +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- L_PAREN: ( +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- cond +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- lOrExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- lAndExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- eqExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- relExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- relExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- lVal +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- Ident: i +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- GOp: > +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- DECIMAL_INT: 58 +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- R_PAREN: ) +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- stmt +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- block +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- L_BRACE: { +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- blockItem +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- stmt +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- lVal +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- Ident: s +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- L_BRACK: [ +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- exp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- DECIMAL_INT: 58 +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- R_BRACK: ] +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- Assign: = +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- exp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- DECIMAL_INT: 58 +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- Semi: ; +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- blockItem +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- stmt +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- If: if +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- L_PAREN: ( +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- cond +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- lOrExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- lAndExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- eqExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- relExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- relExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- lVal +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- Ident: i +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- GOp: > +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- DECIMAL_INT: 59 +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- R_PAREN: ) +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- stmt +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- block +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- L_BRACE: { +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- blockItem +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- stmt +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- lVal +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- Ident: s +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- L_BRACK: [ +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- exp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- DECIMAL_INT: 59 +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- R_BRACK: ] +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- Assign: = +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- exp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- DECIMAL_INT: 59 +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- Semi: ; +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- blockItem +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- stmt +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- If: if +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- L_PAREN: ( +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- cond +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- lOrExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- lAndExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- eqExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- relExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- relExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- lVal +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- Ident: i +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- GOp: > +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- DECIMAL_INT: 60 +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- R_PAREN: ) +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- stmt +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- block +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- L_BRACE: { +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- blockItem +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- stmt +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- lVal +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- Ident: s +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- L_BRACK: [ +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- exp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- DECIMAL_INT: 60 +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- R_BRACK: ] +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- Assign: = +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- exp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- DECIMAL_INT: 60 +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- Semi: ; +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- blockItem +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- stmt +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- If: if +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- L_PAREN: ( +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- cond +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- lOrExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- lAndExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- eqExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- relExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- relExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- lVal +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- Ident: i +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- GOp: > +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- DECIMAL_INT: 61 +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- R_PAREN: ) +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- stmt +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- block +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- L_BRACE: { +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- blockItem +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- stmt +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- lVal +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- Ident: s +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- L_BRACK: [ +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- exp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- DECIMAL_INT: 61 +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- R_BRACK: ] +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- Assign: = +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- exp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- DECIMAL_INT: 61 +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- Semi: ; +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- blockItem +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- stmt +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- If: if +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- L_PAREN: ( +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- cond +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- lOrExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- lAndExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- eqExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- relExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- relExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- lVal +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- Ident: i +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- GOp: > +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- DECIMAL_INT: 62 +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- R_PAREN: ) +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- stmt +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- block +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- L_BRACE: { +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- blockItem +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- stmt +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- lVal +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- Ident: s +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- L_BRACK: [ +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- exp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- DECIMAL_INT: 62 +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- R_BRACK: ] +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- Assign: = +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- exp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- DECIMAL_INT: 62 +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- Semi: ; +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- blockItem +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- stmt +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- If: if +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- L_PAREN: ( +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- cond +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- lOrExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- lAndExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- eqExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- relExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- relExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- lVal +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- Ident: i +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- GOp: > +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- DECIMAL_INT: 63 +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- R_PAREN: ) +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- stmt +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- block +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- L_BRACE: { +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- blockItem +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- stmt +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- lVal +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- Ident: s +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- L_BRACK: [ +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- exp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- DECIMAL_INT: 63 +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- R_BRACK: ] +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- Assign: = +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- exp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- DECIMAL_INT: 63 +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- Semi: ; +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- blockItem +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- stmt +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- If: if +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- L_PAREN: ( +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- cond +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- lOrExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- lAndExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- eqExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- relExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- relExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- lVal +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- Ident: i +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- GOp: > +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- DECIMAL_INT: 64 +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- R_PAREN: ) +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- stmt +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- block +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- L_BRACE: { +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- blockItem +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- stmt +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- lVal +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- Ident: s +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- L_BRACK: [ +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- exp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- DECIMAL_INT: 64 +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- R_BRACK: ] +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- Assign: = +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- exp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- DECIMAL_INT: 64 +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- Semi: ; +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- blockItem +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- stmt +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- If: if +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- L_PAREN: ( +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- cond +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- lOrExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- lAndExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- eqExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- relExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- relExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- lVal +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- Ident: i +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- GOp: > +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- DECIMAL_INT: 65 +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- R_PAREN: ) +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- stmt +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- block +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- L_BRACE: { +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- blockItem +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- stmt +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- lVal +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- Ident: s +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- L_BRACK: [ +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- exp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- DECIMAL_INT: 65 +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- R_BRACK: ] +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- Assign: = +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- exp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- DECIMAL_INT: 65 +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- Semi: ; +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- blockItem +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- stmt +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- If: if +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- L_PAREN: ( +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- cond +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- lOrExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- lAndExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- eqExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- relExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- relExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- lVal +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- Ident: i +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- GOp: > +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- DECIMAL_INT: 66 +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- R_PAREN: ) +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- stmt +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- block +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- L_BRACE: { +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- blockItem +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- stmt +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- lVal +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- Ident: s +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- L_BRACK: [ +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- exp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- DECIMAL_INT: 66 +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- R_BRACK: ] +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- Assign: = +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- exp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- DECIMAL_INT: 66 +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- Semi: ; +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- blockItem +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- stmt +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- If: if +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- L_PAREN: ( +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- cond +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- lOrExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- lAndExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- eqExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- relExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- relExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- lVal +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- Ident: i +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- GOp: > +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- DECIMAL_INT: 67 +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- R_PAREN: ) +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- stmt +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- block +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- L_BRACE: { +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- blockItem +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- stmt +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- lVal +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- Ident: s +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- L_BRACK: [ +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- exp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- DECIMAL_INT: 67 +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- R_BRACK: ] +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- Assign: = +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- exp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- DECIMAL_INT: 67 +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- Semi: ; +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- blockItem +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- stmt +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- If: if +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- L_PAREN: ( +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- cond +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- lOrExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- lAndExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- eqExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- relExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- relExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- lVal +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- Ident: i +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- GOp: > +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- DECIMAL_INT: 68 +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- R_PAREN: ) +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- stmt +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- block +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- L_BRACE: { +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- blockItem +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- stmt +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- lVal +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- Ident: s +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- L_BRACK: [ +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- exp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- DECIMAL_INT: 68 +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- R_BRACK: ] +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- Assign: = +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- exp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- DECIMAL_INT: 68 +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- Semi: ; +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- blockItem +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- stmt +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- If: if +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- L_PAREN: ( +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- cond +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- lOrExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- lAndExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- eqExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- relExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- relExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- lVal +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- Ident: i +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- GOp: > +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- DECIMAL_INT: 69 +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- R_PAREN: ) +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- stmt +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- block +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- L_BRACE: { +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- blockItem +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- stmt +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- lVal +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- Ident: s +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- L_BRACK: [ +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- exp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- DECIMAL_INT: 69 +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- R_BRACK: ] +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- Assign: = +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- exp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- DECIMAL_INT: 69 +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- Semi: ; +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- blockItem +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- stmt +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- If: if +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- L_PAREN: ( +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- cond +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- lOrExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- lAndExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- eqExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- relExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- relExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- lVal +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- Ident: i +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- GOp: > +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- DECIMAL_INT: 70 +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- R_PAREN: ) +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- stmt +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- block +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- L_BRACE: { +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- blockItem +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- stmt +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- lVal +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- Ident: s +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- L_BRACK: [ +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- exp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- DECIMAL_INT: 70 +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- R_BRACK: ] +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- Assign: = +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- exp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- DECIMAL_INT: 70 +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- Semi: ; +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- blockItem +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- stmt +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- If: if +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- L_PAREN: ( +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- cond +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- lOrExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- lAndExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- eqExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- relExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- relExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- lVal +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- Ident: i +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- GOp: > +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- DECIMAL_INT: 71 +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- R_PAREN: ) +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- stmt +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- block +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- L_BRACE: { +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- blockItem +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- stmt +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- lVal +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- Ident: s +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- L_BRACK: [ +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- exp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- DECIMAL_INT: 71 +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- R_BRACK: ] +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- Assign: = +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- exp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- DECIMAL_INT: 71 +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- Semi: ; +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- blockItem +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- stmt +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- If: if +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- L_PAREN: ( +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- cond +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- lOrExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- lAndExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- eqExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- relExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- relExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- lVal +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- Ident: i +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- GOp: > +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- DECIMAL_INT: 72 +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- R_PAREN: ) +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- stmt +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- block +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- L_BRACE: { +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- blockItem +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- stmt +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- lVal +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- Ident: s +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- L_BRACK: [ +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- exp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- DECIMAL_INT: 72 +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- R_BRACK: ] +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- Assign: = +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- exp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- DECIMAL_INT: 72 +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- Semi: ; +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- blockItem +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- stmt +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- If: if +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- L_PAREN: ( +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- cond +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- lOrExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- lAndExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- eqExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- relExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- relExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- lVal +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- Ident: i +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- GOp: > +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- DECIMAL_INT: 73 +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- R_PAREN: ) +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- stmt +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- block +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- L_BRACE: { +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- blockItem +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- stmt +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- lVal +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- Ident: s +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- L_BRACK: [ +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- exp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- DECIMAL_INT: 73 +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- R_BRACK: ] +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- Assign: = +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- exp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- DECIMAL_INT: 73 +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- Semi: ; +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- blockItem +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- stmt +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- If: if +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- L_PAREN: ( +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- cond +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- lOrExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- lAndExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- eqExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- relExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- relExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- lVal +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- Ident: i +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- GOp: > +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- DECIMAL_INT: 74 +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- R_PAREN: ) +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- stmt +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- block +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- L_BRACE: { +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- blockItem +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- stmt +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- lVal +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- Ident: s +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- L_BRACK: [ +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- exp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- DECIMAL_INT: 74 +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- R_BRACK: ] +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- Assign: = +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- exp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- DECIMAL_INT: 74 +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- Semi: ; +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- blockItem +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- stmt +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- If: if +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- L_PAREN: ( +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- cond +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- lOrExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- lAndExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- eqExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- relExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- relExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- lVal +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- Ident: i +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- GOp: > +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- DECIMAL_INT: 75 +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- R_PAREN: ) +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- stmt +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- block +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- L_BRACE: { +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- blockItem +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- stmt +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- lVal +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- Ident: s +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- L_BRACK: [ +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- exp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- DECIMAL_INT: 75 +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- R_BRACK: ] +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- Assign: = +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- exp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- DECIMAL_INT: 75 +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- Semi: ; +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- blockItem +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- stmt +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- If: if +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- L_PAREN: ( +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- cond +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- lOrExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- lAndExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- eqExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- relExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- relExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- lVal +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- Ident: i +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- GOp: > +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- DECIMAL_INT: 76 +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- R_PAREN: ) +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- stmt +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- block +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- L_BRACE: { +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- blockItem +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- stmt +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- lVal +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- Ident: s +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- L_BRACK: [ +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- exp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- DECIMAL_INT: 76 +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- R_BRACK: ] +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- Assign: = +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- exp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- DECIMAL_INT: 76 +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- Semi: ; +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- blockItem +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- stmt +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- If: if +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- L_PAREN: ( +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- cond +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- lOrExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- lAndExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- eqExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- relExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- relExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- lVal +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- Ident: i +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- GOp: > +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- DECIMAL_INT: 77 +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- R_PAREN: ) +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- stmt +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- block +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- L_BRACE: { +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- blockItem +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- stmt +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- lVal +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- Ident: s +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- L_BRACK: [ +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- exp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- DECIMAL_INT: 77 +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- R_BRACK: ] +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- Assign: = +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- exp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- DECIMAL_INT: 77 +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- Semi: ; +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- blockItem +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- stmt +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- If: if +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- L_PAREN: ( +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- cond +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- lOrExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- lAndExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- eqExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- relExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- relExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- lVal +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- Ident: i +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- GOp: > +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- DECIMAL_INT: 78 +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- R_PAREN: ) +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- stmt +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- block +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- L_BRACE: { +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- blockItem +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- stmt +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- lVal +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- Ident: s +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- L_BRACK: [ +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- exp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- DECIMAL_INT: 78 +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- R_BRACK: ] +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- Assign: = +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- exp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- DECIMAL_INT: 78 +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- Semi: ; +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- blockItem +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- stmt +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- If: if +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- L_PAREN: ( +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- cond +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- lOrExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- lAndExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- eqExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- relExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- relExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- lVal +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- Ident: i +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- GOp: > +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- DECIMAL_INT: 79 +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- R_PAREN: ) +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- stmt +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- block +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- L_BRACE: { +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- blockItem +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- stmt +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- lVal +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- Ident: s +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- L_BRACK: [ +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- exp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- DECIMAL_INT: 79 +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- R_BRACK: ] +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- Assign: = +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- exp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- DECIMAL_INT: 79 +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- Semi: ; +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- blockItem +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- stmt +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- If: if +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- L_PAREN: ( +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- cond +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- lOrExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- lAndExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- eqExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- relExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- relExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- lVal +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- Ident: i +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- GOp: > +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- DECIMAL_INT: 80 +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- R_PAREN: ) +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- stmt +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- block +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- L_BRACE: { +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- blockItem +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- stmt +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- lVal +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- Ident: s +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- L_BRACK: [ +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- exp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- DECIMAL_INT: 80 +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- R_BRACK: ] +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- Assign: = +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- exp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- DECIMAL_INT: 80 +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- Semi: ; +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- blockItem +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- stmt +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- If: if +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- L_PAREN: ( +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- cond +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- lOrExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- lAndExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- eqExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- relExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- relExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- lVal +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- Ident: i +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- GOp: > +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- DECIMAL_INT: 81 +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- R_PAREN: ) +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- stmt +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- block +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- L_BRACE: { +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- blockItem +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- stmt +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- lVal +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- Ident: s +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- L_BRACK: [ +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- exp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- DECIMAL_INT: 81 +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- R_BRACK: ] +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- Assign: = +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- exp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- DECIMAL_INT: 81 +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- Semi: ; +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- blockItem +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- stmt +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- If: if +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- L_PAREN: ( +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- cond +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- lOrExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- lAndExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- eqExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- relExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- relExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- lVal +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- Ident: i +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- GOp: > +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- DECIMAL_INT: 82 +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- R_PAREN: ) +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- stmt +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- block +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- L_BRACE: { +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- blockItem +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- stmt +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- lVal +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- Ident: s +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- L_BRACK: [ +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- exp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- DECIMAL_INT: 82 +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- R_BRACK: ] +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- Assign: = +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- exp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- DECIMAL_INT: 82 +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- Semi: ; +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- blockItem +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- stmt +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- If: if +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- L_PAREN: ( +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- cond +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- lOrExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- lAndExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- eqExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- relExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- relExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- lVal +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- Ident: i +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- GOp: > +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- DECIMAL_INT: 83 +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- R_PAREN: ) +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- stmt +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- block +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- L_BRACE: { +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- blockItem +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- stmt +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- lVal +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- Ident: s +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- L_BRACK: [ +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- exp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- DECIMAL_INT: 83 +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- R_BRACK: ] +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- Assign: = +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- exp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- DECIMAL_INT: 83 +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- Semi: ; +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- blockItem +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- stmt +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- If: if +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- L_PAREN: ( +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- cond +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- lOrExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- lAndExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- eqExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- relExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- relExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- lVal +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- Ident: i +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- GOp: > +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- DECIMAL_INT: 84 +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- R_PAREN: ) +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- stmt +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- block +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- L_BRACE: { +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- blockItem +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- stmt +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- lVal +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- Ident: s +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- L_BRACK: [ +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- exp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- DECIMAL_INT: 84 +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- R_BRACK: ] +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- Assign: = +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- exp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- DECIMAL_INT: 84 +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- Semi: ; +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- blockItem +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- stmt +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- If: if +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- L_PAREN: ( +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- cond +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- lOrExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- lAndExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- eqExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- relExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- relExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- lVal +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- Ident: i +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- GOp: > +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- DECIMAL_INT: 85 +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- R_PAREN: ) +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- stmt +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- block +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- L_BRACE: { +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- blockItem +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- stmt +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- lVal +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- Ident: s +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- L_BRACK: [ +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- exp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- DECIMAL_INT: 85 +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- R_BRACK: ] +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- Assign: = +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- exp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- DECIMAL_INT: 85 +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- Semi: ; +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- blockItem +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- stmt +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- If: if +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- L_PAREN: ( +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- cond +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- lOrExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- lAndExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- eqExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- relExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- relExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- lVal +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- Ident: i +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- GOp: > +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- DECIMAL_INT: 86 +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- R_PAREN: ) +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- stmt +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- block +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- L_BRACE: { +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- blockItem +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- stmt +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- lVal +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- Ident: s +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- L_BRACK: [ +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- exp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- DECIMAL_INT: 86 +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- R_BRACK: ] +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- Assign: = +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- exp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- DECIMAL_INT: 86 +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- Semi: ; +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- blockItem +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- stmt +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- If: if +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- L_PAREN: ( +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- cond +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- lOrExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- lAndExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- eqExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- relExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- relExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- lVal +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- Ident: i +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- GOp: > +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- DECIMAL_INT: 87 +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- R_PAREN: ) +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- stmt +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- block +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- L_BRACE: { +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- blockItem +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- stmt +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- lVal +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- Ident: s +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- L_BRACK: [ +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- exp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- DECIMAL_INT: 87 +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- R_BRACK: ] +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- Assign: = +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- exp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- DECIMAL_INT: 87 +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- Semi: ; +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- blockItem +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- stmt +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- If: if +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- L_PAREN: ( +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- cond +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- lOrExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- lAndExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- eqExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- relExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- relExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- lVal +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- Ident: i +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- GOp: > +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- DECIMAL_INT: 88 +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- R_PAREN: ) +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- stmt +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- block +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- L_BRACE: { +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- blockItem +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- stmt +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- lVal +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- Ident: s +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- L_BRACK: [ +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- exp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- DECIMAL_INT: 88 +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- R_BRACK: ] +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- Assign: = +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- exp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- DECIMAL_INT: 88 +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- Semi: ; +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- blockItem +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- stmt +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- If: if +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- L_PAREN: ( +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- cond +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- lOrExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- lAndExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- eqExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- relExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- relExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- lVal +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- Ident: i +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- GOp: > +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- DECIMAL_INT: 89 +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- R_PAREN: ) +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- stmt +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- block +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- L_BRACE: { +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- blockItem +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- stmt +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- lVal +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- Ident: s +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- L_BRACK: [ +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- exp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- DECIMAL_INT: 89 +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- R_BRACK: ] +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- Assign: = +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- exp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- DECIMAL_INT: 89 +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- Semi: ; +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- blockItem +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- stmt +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- If: if +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- L_PAREN: ( +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- cond +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- lOrExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- lAndExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- eqExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- relExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- relExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- lVal +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- Ident: i +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- GOp: > +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- DECIMAL_INT: 90 +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- R_PAREN: ) +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- stmt +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- block +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- L_BRACE: { +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- blockItem +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- stmt +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- lVal +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- Ident: s +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- L_BRACK: [ +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- exp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- DECIMAL_INT: 90 +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- R_BRACK: ] +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- Assign: = +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- exp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- DECIMAL_INT: 90 +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- Semi: ; +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- blockItem +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- stmt +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- If: if +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- L_PAREN: ( +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- cond +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- lOrExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- lAndExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- eqExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- relExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- relExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- lVal +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- Ident: i +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- GOp: > +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- DECIMAL_INT: 91 +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- R_PAREN: ) +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- stmt +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- block +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- L_BRACE: { +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- blockItem +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- stmt +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- lVal +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- Ident: s +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- L_BRACK: [ +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- exp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- DECIMAL_INT: 91 +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- R_BRACK: ] +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- Assign: = +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- exp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- DECIMAL_INT: 91 +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- Semi: ; +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- blockItem +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- stmt +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- If: if +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- L_PAREN: ( +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- cond +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- lOrExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- lAndExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- eqExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- relExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- relExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- lVal +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- Ident: i +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- GOp: > +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- DECIMAL_INT: 92 +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- R_PAREN: ) +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- stmt +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- block +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- L_BRACE: { +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- blockItem +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- stmt +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- lVal +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- Ident: s +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- L_BRACK: [ +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- exp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- DECIMAL_INT: 92 +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- R_BRACK: ] +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- Assign: = +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- exp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- DECIMAL_INT: 92 +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- Semi: ; +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- blockItem +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- stmt +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- If: if +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- L_PAREN: ( +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- cond +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- lOrExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- lAndExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- eqExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- relExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- relExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- lVal +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- Ident: i +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- GOp: > +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- DECIMAL_INT: 93 +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- R_PAREN: ) +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- stmt +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- block +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- L_BRACE: { +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- blockItem +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- stmt +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- lVal +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- Ident: s +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- L_BRACK: [ +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- exp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- DECIMAL_INT: 93 +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- R_BRACK: ] +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- Assign: = +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- exp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- DECIMAL_INT: 93 +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- Semi: ; +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- blockItem +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- stmt +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- If: if +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- L_PAREN: ( +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- cond +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- lOrExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- lAndExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- eqExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- relExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- relExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- lVal +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- Ident: i +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- GOp: > +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- DECIMAL_INT: 94 +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- R_PAREN: ) +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- stmt +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- block +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- L_BRACE: { +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- blockItem +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- stmt +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- lVal +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- Ident: s +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- L_BRACK: [ +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- exp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- DECIMAL_INT: 94 +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- R_BRACK: ] +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- Assign: = +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- exp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- DECIMAL_INT: 94 +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- Semi: ; +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- blockItem +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- stmt +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- If: if +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- L_PAREN: ( +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- cond +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- lOrExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- lAndExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- eqExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- relExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- relExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- lVal +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- Ident: i +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- GOp: > +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- DECIMAL_INT: 95 +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- R_PAREN: ) +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- stmt +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- block +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- L_BRACE: { +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- blockItem +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- stmt +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- lVal +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- Ident: s +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- L_BRACK: [ +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- exp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- DECIMAL_INT: 95 +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- R_BRACK: ] +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- Assign: = +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- exp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- DECIMAL_INT: 95 +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- Semi: ; +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- blockItem +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- stmt +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- If: if +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- L_PAREN: ( +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- cond +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- lOrExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- lAndExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- eqExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- relExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- relExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- lVal +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- Ident: i +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- GOp: > +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- DECIMAL_INT: 96 +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- R_PAREN: ) +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- stmt +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- block +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- L_BRACE: { +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- blockItem +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- stmt +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- lVal +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- Ident: s +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- L_BRACK: [ +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- exp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- DECIMAL_INT: 96 +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- R_BRACK: ] +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- Assign: = +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- exp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- DECIMAL_INT: 96 +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- Semi: ; +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- blockItem +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- stmt +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- If: if +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- L_PAREN: ( +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- cond +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- lOrExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- lAndExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- eqExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- relExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- relExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- lVal +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- Ident: i +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- GOp: > +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- DECIMAL_INT: 97 +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- R_PAREN: ) +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- stmt +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- block +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- L_BRACE: { +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- blockItem +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- stmt +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- lVal +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- Ident: s +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- L_BRACK: [ +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- exp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- DECIMAL_INT: 97 +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- R_BRACK: ] +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- Assign: = +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- exp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- DECIMAL_INT: 97 +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- Semi: ; +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- blockItem +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- stmt +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- If: if +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- L_PAREN: ( +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- cond +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- lOrExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- lAndExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- eqExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- relExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- relExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- lVal +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- Ident: i +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- GOp: > +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- DECIMAL_INT: 98 +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- R_PAREN: ) +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- stmt +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- block +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- L_BRACE: { +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- blockItem +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- stmt +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- lVal +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- Ident: s +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- L_BRACK: [ +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- exp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- DECIMAL_INT: 98 +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- R_BRACK: ] +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- Assign: = +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- exp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- DECIMAL_INT: 98 +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- Semi: ; +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- blockItem +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- stmt +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- If: if +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- L_PAREN: ( +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- cond +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- lOrExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- lAndExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- eqExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- relExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- relExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- lVal +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- Ident: i +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- GOp: > +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- DECIMAL_INT: 99 +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- R_PAREN: ) +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- stmt +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- block +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- L_BRACE: { +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- blockItem +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- stmt +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- lVal +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- Ident: s +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- L_BRACK: [ +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- exp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- DECIMAL_INT: 99 +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- R_BRACK: ] +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- Assign: = +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |-- exp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- addExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- mulExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- primary +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- DECIMAL_INT: 99 +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- Semi: ; +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- R_BRACE: } +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- R_BRACE: } +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- R_BRACE: } +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- R_BRACE: } +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- R_BRACE: } +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- R_BRACE: } +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- R_BRACE: } +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- R_BRACE: } +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- R_BRACE: } +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- R_BRACE: } +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- R_BRACE: } +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- R_BRACE: } +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- R_BRACE: } +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- R_BRACE: } +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- R_BRACE: } +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- R_BRACE: } +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- R_BRACE: } +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- R_BRACE: } +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- R_BRACE: } +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- R_BRACE: } +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- R_BRACE: } +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- R_BRACE: } +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- R_BRACE: } +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- R_BRACE: } +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- R_BRACE: } +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- R_BRACE: } +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- R_BRACE: } +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- R_BRACE: } +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- R_BRACE: } +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- R_BRACE: } +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- R_BRACE: } +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- R_BRACE: } +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- R_BRACE: } +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- R_BRACE: } +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- R_BRACE: } +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- R_BRACE: } +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- R_BRACE: } +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- R_BRACE: } +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- R_BRACE: } +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- R_BRACE: } +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- R_BRACE: } +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- R_BRACE: } +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- R_BRACE: } +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- R_BRACE: } +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- R_BRACE: } +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- R_BRACE: } +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- R_BRACE: } +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- R_BRACE: } +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- R_BRACE: } +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- R_BRACE: } +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- R_BRACE: } +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- R_BRACE: } +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- R_BRACE: } +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- R_BRACE: } +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- R_BRACE: } +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- R_BRACE: } +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- R_BRACE: } +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- R_BRACE: } +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- R_BRACE: } +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- R_BRACE: } +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- R_BRACE: } +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- R_BRACE: } +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- R_BRACE: } +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- R_BRACE: } +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- R_BRACE: } +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- R_BRACE: } +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- R_BRACE: } +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- R_BRACE: } +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- R_BRACE: } +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- R_BRACE: } +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- R_BRACE: } +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- R_BRACE: } +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- R_BRACE: } +| | | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- R_BRACE: } +| | | | | | | | | | | | | | | | | | | | | | | | | | | | `-- R_BRACE: } +| | | | | | | | | | | | | | | | | | | | | | | | | | | `-- R_BRACE: } +| | | | | | | | | | | | | | | | | | | | | | | | | | `-- R_BRACE: } +| | | | | | | | | | | | | | | | | | | | | | | | | `-- R_BRACE: } +| | | | | | | | | | | | | | | | | | | | | | | | `-- R_BRACE: } +| | | | | | | | | | | | | | | | | | | | | | | `-- R_BRACE: } +| | | | | | | | | | | | | | | | | | | | | | `-- R_BRACE: } +| | | | | | | | | | | | | | | | | | | | | `-- R_BRACE: } +| | | | | | | | | | | | | | | | | | | | `-- R_BRACE: } +| | | | | | | | | | | | | | | | | | | `-- R_BRACE: } +| | | | | | | | | | | | | | | | | | `-- R_BRACE: } +| | | | | | | | | | | | | | | | | `-- R_BRACE: } +| | | | | | | | | | | | | | | | `-- R_BRACE: } +| | | | | | | | | | | | | | | `-- R_BRACE: } +| | | | | | | | | | | | | | `-- R_BRACE: } +| | | | | | | | | | | | | `-- R_BRACE: } +| | | | | | | | | | | | `-- R_BRACE: } +| | | | | | | | | | | `-- R_BRACE: } +| | | | | | | | | | `-- R_BRACE: } +| | | | | | | | | `-- R_BRACE: } +| | | | | | | | `-- R_BRACE: } +| | | | | | | `-- R_BRACE: } +| | | | | | `-- R_BRACE: } +| | | | | `-- R_BRACE: } +| | | | `-- R_BRACE: } +| | | |-- blockItem +| | | | `-- stmt +| | | | |-- lVal +| | | | | `-- Ident: j +| | | | |-- Assign: = +| | | | |-- exp +| | | | | `-- addExp +| | | | | |-- addExp +| | | | | | `-- mulExp +| | | | | | `-- unaryExp +| | | | | | `-- primary +| | | | | | `-- lVal +| | | | | | `-- Ident: j +| | | | | |-- AddOp: + +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- DECIMAL_INT: 1 +| | | | `-- Semi: ; +| | | |-- blockItem +| | | | `-- decl +| | | | `-- varDecl +| | | | |-- bType +| | | | | `-- Int: int +| | | | |-- varDef +| | | | | |-- Ident: m +| | | | | |-- Assign: = +| | | | | `-- initVal +| | | | | `-- exp +| | | | | `-- addExp +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- OCTAL_INT: 0 +| | | | `-- Semi: ; +| | | |-- blockItem +| | | | `-- stmt +| | | | |-- While: while +| | | | |-- L_PAREN: ( +| | | | |-- cond +| | | | | `-- lOrExp +| | | | | `-- lAndExp +| | | | | `-- eqExp +| | | | | `-- relExp +| | | | | |-- relExp +| | | | | | `-- addExp +| | | | | | `-- mulExp +| | | | | | `-- unaryExp +| | | | | | `-- primary +| | | | | | `-- lVal +| | | | | | `-- Ident: m +| | | | | |-- LOp: < +| | | | | `-- addExp +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- DECIMAL_INT: 100 +| | | | |-- R_PAREN: ) +| | | | `-- stmt +| | | | `-- block +| | | | |-- L_BRACE: { +| | | | |-- blockItem +| | | | | `-- stmt +| | | | | |-- lVal +| | | | | | `-- Ident: sum +| | | | | |-- Assign: = +| | | | | |-- exp +| | | | | | `-- addExp +| | | | | | |-- addExp +| | | | | | | `-- mulExp +| | | | | | | `-- unaryExp +| | | | | | | `-- primary +| | | | | | | `-- lVal +| | | | | | | `-- Ident: sum +| | | | | | |-- AddOp: + +| | | | | | `-- mulExp +| | | | | | `-- unaryExp +| | | | | | `-- primary +| | | | | | `-- lVal +| | | | | | |-- Ident: s +| | | | | | |-- L_BRACK: [ +| | | | | | |-- exp +| | | | | | | `-- addExp +| | | | | | | `-- mulExp +| | | | | | | `-- unaryExp +| | | | | | | `-- primary +| | | | | | | `-- lVal +| | | | | | | `-- Ident: m +| | | | | | `-- R_BRACK: ] +| | | | | `-- Semi: ; +| | | | |-- blockItem +| | | | | `-- stmt +| | | | | |-- lVal +| | | | | | `-- Ident: m +| | | | | |-- Assign: = +| | | | | |-- exp +| | | | | | `-- addExp +| | | | | | |-- addExp +| | | | | | | `-- mulExp +| | | | | | | `-- unaryExp +| | | | | | | `-- primary +| | | | | | | `-- lVal +| | | | | | | `-- Ident: m +| | | | | | |-- AddOp: + +| | | | | | `-- mulExp +| | | | | | `-- unaryExp +| | | | | | `-- primary +| | | | | | `-- DECIMAL_INT: 1 +| | | | | `-- Semi: ; +| | | | `-- R_BRACE: } +| | | |-- blockItem +| | | | `-- stmt +| | | | |-- lVal +| | | | | `-- Ident: sum +| | | | |-- Assign: = +| | | | |-- exp +| | | | | `-- addExp +| | | | | `-- mulExp +| | | | | |-- mulExp +| | | | | | `-- unaryExp +| | | | | | `-- primary +| | | | | | `-- lVal +| | | | | | `-- Ident: sum +| | | | | |-- QuoOp: % +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- DECIMAL_INT: 65535 +| | | | `-- Semi: ; +| | | `-- R_BRACE: } +| | |-- blockItem +| | | `-- stmt +| | | `-- returnStmt +| | | |-- Return: return +| | | |-- exp +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- lVal +| | | | `-- Ident: sum +| | | `-- Semi: ; +| | `-- R_BRACE: } +| `-- funcDef +| |-- funcType +| | `-- Int: int +| |-- Ident: main +| |-- L_PAREN: ( +| |-- R_PAREN: ) +| `-- block +| |-- L_BRACE: { +| |-- blockItem +| | `-- stmt +| | |-- exp +| | | `-- addExp +| | | `-- mulExp +| | | `-- unaryExp +| | | |-- Ident: starttime +| | | |-- L_PAREN: ( +| | | `-- R_PAREN: ) +| | `-- Semi: ; +| |-- blockItem +| | `-- decl +| | `-- varDecl +| | |-- bType +| | | `-- Int: int +| | |-- varDef +| | | |-- Ident: loopcount +| | | |-- Assign: = +| | | `-- initVal +| | | `-- exp +| | | `-- addExp +| | | `-- mulExp +| | | `-- unaryExp +| | | |-- Ident: getint +| | | |-- L_PAREN: ( +| | | `-- R_PAREN: ) +| | `-- Semi: ; +| |-- blockItem +| | `-- stmt +| | |-- exp +| | | `-- addExp +| | | `-- mulExp +| | | `-- unaryExp +| | | |-- Ident: putint +| | | |-- L_PAREN: ( +| | | |-- funcRParams +| | | | `-- exp +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | |-- Ident: func +| | | | |-- L_PAREN: ( +| | | | |-- funcRParams +| | | | | `-- exp +| | | | | `-- addExp +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- lVal +| | | | | `-- Ident: loopcount +| | | | `-- R_PAREN: ) +| | | `-- R_PAREN: ) +| | `-- Semi: ; +| |-- blockItem +| | `-- stmt +| | |-- exp +| | | `-- addExp +| | | `-- mulExp +| | | `-- unaryExp +| | | |-- Ident: putch +| | | |-- L_PAREN: ( +| | | |-- funcRParams +| | | | `-- exp +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- DECIMAL_INT: 10 +| | | `-- R_PAREN: ) +| | `-- Semi: ; +| |-- blockItem +| | `-- stmt +| | |-- exp +| | | `-- addExp +| | | `-- mulExp +| | | `-- unaryExp +| | | |-- Ident: stoptime +| | | |-- L_PAREN: ( +| | | `-- R_PAREN: ) +| | `-- Semi: ; +| |-- blockItem +| | `-- stmt +| | `-- returnStmt +| | |-- Return: return +| | |-- exp +| | | `-- addExp +| | | `-- mulExp +| | | `-- unaryExp +| | | `-- primary +| | | `-- OCTAL_INT: 0 +| | `-- Semi: ; +| `-- R_BRACE: } +`-- EOF: + +========== test/test_case/performance/large_loop_array_2.sy ========== +compUnit +|-- program +| |-- decl +| | `-- varDecl +| | |-- bType +| | | `-- Int: int +| | |-- varDef +| | | |-- Ident: COUNT +| | | |-- Assign: = +| | | `-- initVal +| | | `-- exp +| | | `-- addExp +| | | `-- mulExp +| | | `-- unaryExp +| | | `-- primary +| | | `-- DECIMAL_INT: 500000 +| | `-- Semi: ; +| |-- funcDef +| | |-- funcType +| | | `-- Float: float +| | |-- Ident: loop +| | |-- L_PAREN: ( +| | |-- funcFParams +| | | |-- funcFParam +| | | | |-- bType +| | | | | `-- Float: float +| | | | |-- Ident: x +| | | | |-- L_BRACK: [ +| | | | `-- R_BRACK: ] +| | | |-- Comma: , +| | | |-- funcFParam +| | | | |-- bType +| | | | | `-- Float: float +| | | | |-- Ident: y +| | | | |-- L_BRACK: [ +| | | | `-- R_BRACK: ] +| | | |-- Comma: , +| | | `-- funcFParam +| | | |-- bType +| | | | `-- Int: int +| | | `-- Ident: length +| | |-- R_PAREN: ) +| | `-- block +| | |-- L_BRACE: { +| | |-- blockItem +| | | `-- decl +| | | `-- varDecl +| | | |-- bType +| | | | `-- Int: int +| | | |-- varDef +| | | | |-- Ident: i +| | | | |-- Assign: = +| | | | `-- initVal +| | | | `-- exp +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- OCTAL_INT: 0 +| | | `-- Semi: ; +| | |-- blockItem +| | | `-- decl +| | | `-- varDecl +| | | |-- bType +| | | | `-- Float: float +| | | |-- varDef +| | | | |-- Ident: accumulator +| | | | |-- Assign: = +| | | | `-- initVal +| | | | `-- exp +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- DEC_FLOAT: 0.0 +| | | `-- Semi: ; +| | |-- blockItem +| | | `-- stmt +| | | |-- While: while +| | | |-- L_PAREN: ( +| | | |-- cond +| | | | `-- lOrExp +| | | | `-- lAndExp +| | | | `-- eqExp +| | | | `-- relExp +| | | | |-- relExp +| | | | | `-- addExp +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- lVal +| | | | | `-- Ident: i +| | | | |-- LOp: < +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- lVal +| | | | `-- Ident: length +| | | |-- R_PAREN: ) +| | | `-- stmt +| | | `-- block +| | | |-- L_BRACE: { +| | | |-- blockItem +| | | | `-- stmt +| | | | |-- lVal +| | | | | `-- Ident: accumulator +| | | | |-- Assign: = +| | | | |-- exp +| | | | | `-- addExp +| | | | | |-- addExp +| | | | | | `-- mulExp +| | | | | | `-- unaryExp +| | | | | | `-- primary +| | | | | | `-- lVal +| | | | | | `-- Ident: accumulator +| | | | | |-- AddOp: + +| | | | | `-- mulExp +| | | | | |-- mulExp +| | | | | | `-- unaryExp +| | | | | | `-- primary +| | | | | | `-- lVal +| | | | | | |-- Ident: x +| | | | | | |-- L_BRACK: [ +| | | | | | |-- exp +| | | | | | | `-- addExp +| | | | | | | `-- mulExp +| | | | | | | `-- unaryExp +| | | | | | | `-- primary +| | | | | | | `-- lVal +| | | | | | | `-- Ident: i +| | | | | | `-- R_BRACK: ] +| | | | | |-- MulOp: * +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- lVal +| | | | | |-- Ident: y +| | | | | |-- L_BRACK: [ +| | | | | |-- exp +| | | | | | `-- addExp +| | | | | | `-- mulExp +| | | | | | `-- unaryExp +| | | | | | `-- primary +| | | | | | `-- lVal +| | | | | | `-- Ident: i +| | | | | `-- R_BRACK: ] +| | | | `-- Semi: ; +| | | |-- blockItem +| | | | `-- stmt +| | | | |-- lVal +| | | | | `-- Ident: i +| | | | |-- Assign: = +| | | | |-- exp +| | | | | `-- addExp +| | | | | |-- addExp +| | | | | | `-- mulExp +| | | | | | `-- unaryExp +| | | | | | `-- primary +| | | | | | `-- lVal +| | | | | | `-- Ident: i +| | | | | |-- AddOp: + +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- DECIMAL_INT: 1 +| | | | `-- Semi: ; +| | | `-- R_BRACE: } +| | |-- blockItem +| | | `-- stmt +| | | `-- returnStmt +| | | |-- Return: return +| | | |-- exp +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- lVal +| | | | `-- Ident: accumulator +| | | `-- Semi: ; +| | `-- R_BRACE: } +| `-- funcDef +| |-- funcType +| | `-- Int: int +| |-- Ident: main +| |-- L_PAREN: ( +| |-- R_PAREN: ) +| `-- block +| |-- L_BRACE: { +| |-- blockItem +| | `-- decl +| | `-- varDecl +| | |-- bType +| | | `-- Int: int +| | |-- varDef +| | | |-- Ident: i +| | | |-- Assign: = +| | | `-- initVal +| | | `-- exp +| | | `-- addExp +| | | `-- mulExp +| | | `-- unaryExp +| | | `-- primary +| | | `-- OCTAL_INT: 0 +| | |-- Comma: , +| | |-- varDef +| | | |-- Ident: j +| | | |-- Assign: = +| | | `-- initVal +| | | `-- exp +| | | `-- addExp +| | | `-- mulExp +| | | `-- unaryExp +| | | `-- primary +| | | `-- OCTAL_INT: 0 +| | `-- Semi: ; +| |-- blockItem +| | `-- decl +| | `-- varDecl +| | |-- bType +| | | `-- Int: int +| | |-- varDef +| | | |-- Ident: len +| | | |-- Assign: = +| | | `-- initVal +| | | `-- exp +| | | `-- addExp +| | | `-- mulExp +| | | `-- unaryExp +| | | |-- Ident: getint +| | | |-- L_PAREN: ( +| | | `-- R_PAREN: ) +| | `-- Semi: ; +| |-- blockItem +| | `-- decl +| | `-- varDecl +| | |-- bType +| | | `-- Float: float +| | |-- varDef +| | | |-- Ident: x +| | | |-- L_BRACK: [ +| | | |-- constExp +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- DECIMAL_INT: 4096 +| | | `-- R_BRACK: ] +| | `-- Semi: ; +| |-- blockItem +| | `-- decl +| | `-- varDecl +| | |-- bType +| | | `-- Float: float +| | |-- varDef +| | | |-- Ident: y +| | | |-- L_BRACK: [ +| | | |-- constExp +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- DECIMAL_INT: 4096 +| | | `-- R_BRACK: ] +| | `-- Semi: ; +| |-- blockItem +| | `-- decl +| | `-- varDecl +| | |-- bType +| | | `-- Float: float +| | |-- varDef +| | | |-- Ident: total +| | | |-- Assign: = +| | | `-- initVal +| | | `-- exp +| | | `-- addExp +| | | `-- mulExp +| | | `-- unaryExp +| | | `-- primary +| | | `-- DEC_FLOAT: 0.0 +| | `-- Semi: ; +| |-- blockItem +| | `-- decl +| | `-- varDecl +| | |-- bType +| | | `-- Float: float +| | |-- varDef +| | | |-- Ident: a +| | | |-- Assign: = +| | | `-- initVal +| | | `-- exp +| | | `-- addExp +| | | `-- mulExp +| | | `-- unaryExp +| | | `-- primary +| | | `-- DEC_FLOAT: 0.0 +| | `-- Semi: ; +| |-- blockItem +| | `-- decl +| | `-- varDecl +| | |-- bType +| | | `-- Float: float +| | |-- varDef +| | | |-- Ident: b +| | | |-- Assign: = +| | | `-- initVal +| | | `-- exp +| | | `-- addExp +| | | `-- mulExp +| | | `-- unaryExp +| | | `-- primary +| | | `-- DEC_FLOAT: 1.0 +| | `-- Semi: ; +| |-- blockItem +| | `-- stmt +| | |-- exp +| | | `-- addExp +| | | `-- mulExp +| | | `-- unaryExp +| | | |-- Ident: starttime +| | | |-- L_PAREN: ( +| | | `-- R_PAREN: ) +| | `-- Semi: ; +| |-- blockItem +| | `-- stmt +| | |-- While: while +| | |-- L_PAREN: ( +| | |-- cond +| | | `-- lOrExp +| | | `-- lAndExp +| | | `-- eqExp +| | | `-- relExp +| | | |-- relExp +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- lVal +| | | | `-- Ident: i +| | | |-- LOp: < +| | | `-- addExp +| | | `-- mulExp +| | | `-- unaryExp +| | | `-- primary +| | | `-- lVal +| | | `-- Ident: COUNT +| | |-- R_PAREN: ) +| | `-- stmt +| | `-- block +| | |-- L_BRACE: { +| | |-- blockItem +| | | `-- stmt +| | | |-- If: if +| | | |-- L_PAREN: ( +| | | |-- cond +| | | | `-- lOrExp +| | | | `-- lAndExp +| | | | `-- eqExp +| | | | `-- relExp +| | | | `-- addExp +| | | | `-- mulExp +| | | | |-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- lVal +| | | | | `-- Ident: i +| | | | |-- QuoOp: % +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- DECIMAL_INT: 10 +| | | |-- R_PAREN: ) +| | | |-- stmt +| | | | `-- block +| | | | |-- L_BRACE: { +| | | | |-- blockItem +| | | | | `-- stmt +| | | | | |-- lVal +| | | | | | `-- Ident: a +| | | | | |-- Assign: = +| | | | | |-- exp +| | | | | | `-- addExp +| | | | | | `-- mulExp +| | | | | | `-- unaryExp +| | | | | | `-- primary +| | | | | | `-- DEC_FLOAT: 0.0 +| | | | | `-- Semi: ; +| | | | |-- blockItem +| | | | | `-- stmt +| | | | | |-- lVal +| | | | | | `-- Ident: b +| | | | | |-- Assign: = +| | | | | |-- exp +| | | | | | `-- addExp +| | | | | | `-- mulExp +| | | | | | `-- unaryExp +| | | | | | `-- primary +| | | | | | `-- DEC_FLOAT: 1.0 +| | | | | `-- Semi: ; +| | | | `-- R_BRACE: } +| | | |-- Else: else +| | | `-- stmt +| | | `-- block +| | | |-- L_BRACE: { +| | | |-- blockItem +| | | | `-- stmt +| | | | |-- lVal +| | | | | `-- Ident: a +| | | | |-- Assign: = +| | | | |-- exp +| | | | | `-- addExp +| | | | | |-- addExp +| | | | | | `-- mulExp +| | | | | | `-- unaryExp +| | | | | | `-- primary +| | | | | | `-- lVal +| | | | | | `-- Ident: a +| | | | | |-- AddOp: + +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- DEC_FLOAT: 0.1 +| | | | `-- Semi: ; +| | | |-- blockItem +| | | | `-- stmt +| | | | |-- lVal +| | | | | `-- Ident: b +| | | | |-- Assign: = +| | | | |-- exp +| | | | | `-- addExp +| | | | | |-- addExp +| | | | | | `-- mulExp +| | | | | | `-- unaryExp +| | | | | | `-- primary +| | | | | | `-- lVal +| | | | | | `-- Ident: b +| | | | | |-- AddOp: + +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- DEC_FLOAT: 0.2 +| | | | `-- Semi: ; +| | | `-- R_BRACE: } +| | |-- blockItem +| | | `-- stmt +| | | |-- While: while +| | | |-- L_PAREN: ( +| | | |-- cond +| | | | `-- lOrExp +| | | | `-- lAndExp +| | | | `-- eqExp +| | | | `-- relExp +| | | | |-- relExp +| | | | | `-- addExp +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- lVal +| | | | | `-- Ident: j +| | | | |-- LOp: < +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- lVal +| | | | `-- Ident: len +| | | |-- R_PAREN: ) +| | | `-- stmt +| | | `-- block +| | | |-- L_BRACE: { +| | | |-- blockItem +| | | | `-- stmt +| | | | |-- lVal +| | | | | |-- Ident: x +| | | | | |-- L_BRACK: [ +| | | | | |-- exp +| | | | | | `-- addExp +| | | | | | `-- mulExp +| | | | | | `-- unaryExp +| | | | | | `-- primary +| | | | | | `-- lVal +| | | | | | `-- Ident: j +| | | | | `-- R_BRACK: ] +| | | | |-- Assign: = +| | | | |-- exp +| | | | | `-- addExp +| | | | | |-- addExp +| | | | | | `-- mulExp +| | | | | | `-- unaryExp +| | | | | | `-- primary +| | | | | | `-- lVal +| | | | | | `-- Ident: a +| | | | | |-- AddOp: + +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- lVal +| | | | | `-- Ident: j +| | | | `-- Semi: ; +| | | |-- blockItem +| | | | `-- stmt +| | | | |-- lVal +| | | | | |-- Ident: y +| | | | | |-- L_BRACK: [ +| | | | | |-- exp +| | | | | | `-- addExp +| | | | | | `-- mulExp +| | | | | | `-- unaryExp +| | | | | | `-- primary +| | | | | | `-- lVal +| | | | | | `-- Ident: j +| | | | | `-- R_BRACK: ] +| | | | |-- Assign: = +| | | | |-- exp +| | | | | `-- addExp +| | | | | |-- addExp +| | | | | | `-- mulExp +| | | | | | `-- unaryExp +| | | | | | `-- primary +| | | | | | `-- lVal +| | | | | | `-- Ident: b +| | | | | |-- AddOp: + +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- lVal +| | | | | `-- Ident: j +| | | | `-- Semi: ; +| | | |-- blockItem +| | | | `-- stmt +| | | | |-- lVal +| | | | | `-- Ident: j +| | | | |-- Assign: = +| | | | |-- exp +| | | | | `-- addExp +| | | | | |-- addExp +| | | | | | `-- mulExp +| | | | | | `-- unaryExp +| | | | | | `-- primary +| | | | | | `-- lVal +| | | | | | `-- Ident: j +| | | | | |-- AddOp: + +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- DECIMAL_INT: 1 +| | | | `-- Semi: ; +| | | `-- R_BRACE: } +| | |-- blockItem +| | | `-- stmt +| | | |-- lVal +| | | | `-- Ident: total +| | | |-- Assign: = +| | | |-- exp +| | | | `-- addExp +| | | | |-- addExp +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- lVal +| | | | | `-- Ident: total +| | | | |-- AddOp: + +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | |-- Ident: loop +| | | | |-- L_PAREN: ( +| | | | |-- funcRParams +| | | | | |-- exp +| | | | | | `-- addExp +| | | | | | `-- mulExp +| | | | | | `-- unaryExp +| | | | | | `-- primary +| | | | | | `-- lVal +| | | | | | `-- Ident: x +| | | | | |-- Comma: , +| | | | | |-- exp +| | | | | | `-- addExp +| | | | | | `-- mulExp +| | | | | | `-- unaryExp +| | | | | | `-- primary +| | | | | | `-- lVal +| | | | | | `-- Ident: y +| | | | | |-- Comma: , +| | | | | `-- exp +| | | | | `-- addExp +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- lVal +| | | | | `-- Ident: len +| | | | `-- R_PAREN: ) +| | | `-- Semi: ; +| | |-- blockItem +| | | `-- stmt +| | | |-- lVal +| | | | `-- Ident: i +| | | |-- Assign: = +| | | |-- exp +| | | | `-- addExp +| | | | |-- addExp +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- lVal +| | | | | `-- Ident: i +| | | | |-- AddOp: + +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- DECIMAL_INT: 1 +| | | `-- Semi: ; +| | `-- R_BRACE: } +| |-- blockItem +| | `-- stmt +| | |-- exp +| | | `-- addExp +| | | `-- mulExp +| | | `-- unaryExp +| | | |-- Ident: stoptime +| | | |-- L_PAREN: ( +| | | `-- R_PAREN: ) +| | `-- Semi: ; +| |-- blockItem +| | `-- stmt +| | |-- If: if +| | |-- L_PAREN: ( +| | |-- cond +| | | `-- lOrExp +| | | |-- lOrExp +| | | | `-- lAndExp +| | | | `-- eqExp +| | | | `-- relExp +| | | | |-- relExp +| | | | | `-- addExp +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | |-- L_PAREN: ( +| | | | | |-- exp +| | | | | | `-- addExp +| | | | | | |-- addExp +| | | | | | | `-- mulExp +| | | | | | | `-- unaryExp +| | | | | | | `-- primary +| | | | | | | `-- lVal +| | | | | | | `-- Ident: total +| | | | | | |-- SubOp: - +| | | | | | `-- mulExp +| | | | | | `-- unaryExp +| | | | | | `-- primary +| | | | | | `-- DEC_FLOAT: 11442437121638400.000000 +| | | | | `-- R_PAREN: ) +| | | | |-- LeOp: <= +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- DEC_FLOAT: 0.000001 +| | | |-- OrOp: || +| | | `-- lAndExp +| | | `-- eqExp +| | | `-- relExp +| | | |-- relExp +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | `-- primary +| | | | |-- L_PAREN: ( +| | | | |-- exp +| | | | | `-- addExp +| | | | | |-- addExp +| | | | | | `-- mulExp +| | | | | | `-- unaryExp +| | | | | | `-- primary +| | | | | | `-- lVal +| | | | | | `-- Ident: total +| | | | | |-- SubOp: - +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- DEC_FLOAT: 11442437121638400.000000 +| | | | `-- R_PAREN: ) +| | | |-- GeOp: >= +| | | `-- addExp +| | | `-- mulExp +| | | `-- unaryExp +| | | |-- unaryOp +| | | | `-- SubOp: - +| | | `-- unaryExp +| | | `-- primary +| | | `-- DEC_FLOAT: 0.000001 +| | |-- R_PAREN: ) +| | |-- stmt +| | | `-- block +| | | |-- L_BRACE: { +| | | |-- blockItem +| | | | `-- stmt +| | | | |-- exp +| | | | | `-- addExp +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | |-- Ident: putint +| | | | | |-- L_PAREN: ( +| | | | | |-- funcRParams +| | | | | | `-- exp +| | | | | | `-- addExp +| | | | | | `-- mulExp +| | | | | | `-- unaryExp +| | | | | | `-- primary +| | | | | | `-- OCTAL_INT: 0 +| | | | | `-- R_PAREN: ) +| | | | `-- Semi: ; +| | | |-- blockItem +| | | | `-- stmt +| | | | `-- returnStmt +| | | | |-- Return: return +| | | | |-- exp +| | | | | `-- addExp +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- OCTAL_INT: 0 +| | | | `-- Semi: ; +| | | `-- R_BRACE: } +| | |-- Else: else +| | `-- stmt +| | `-- block +| | |-- L_BRACE: { +| | |-- blockItem +| | | `-- stmt +| | | |-- exp +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | |-- Ident: putint +| | | | |-- L_PAREN: ( +| | | | |-- funcRParams +| | | | | `-- exp +| | | | | `-- addExp +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- DECIMAL_INT: 1 +| | | | `-- R_PAREN: ) +| | | `-- Semi: ; +| | |-- blockItem +| | | `-- stmt +| | | `-- returnStmt +| | | |-- Return: return +| | | |-- exp +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- DECIMAL_INT: 1 +| | | `-- Semi: ; +| | `-- R_BRACE: } +| `-- R_BRACE: } +`-- EOF: + +========== test/test_case/performance/transpose0.sy ========== +compUnit +|-- program +| |-- decl +| | `-- varDecl +| | |-- bType +| | | `-- Int: int +| | |-- varDef +| | | |-- Ident: matrix +| | | |-- L_BRACK: [ +| | | |-- constExp +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- DECIMAL_INT: 20000000 +| | | `-- R_BRACK: ] +| | `-- Semi: ; +| |-- decl +| | `-- varDecl +| | |-- bType +| | | `-- Int: int +| | |-- varDef +| | | |-- Ident: a +| | | |-- L_BRACK: [ +| | | |-- constExp +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- DECIMAL_INT: 100000 +| | | `-- R_BRACK: ] +| | `-- Semi: ; +| |-- funcDef +| | |-- funcType +| | | `-- Int: int +| | |-- Ident: transpose +| | |-- L_PAREN: ( +| | |-- funcFParams +| | | |-- funcFParam +| | | | |-- bType +| | | | | `-- Int: int +| | | | `-- Ident: n +| | | |-- Comma: , +| | | |-- funcFParam +| | | | |-- bType +| | | | | `-- Int: int +| | | | |-- Ident: matrix +| | | | |-- L_BRACK: [ +| | | | `-- R_BRACK: ] +| | | |-- Comma: , +| | | `-- funcFParam +| | | |-- bType +| | | | `-- Int: int +| | | `-- Ident: rowsize +| | |-- R_PAREN: ) +| | `-- block +| | |-- L_BRACE: { +| | |-- blockItem +| | | `-- decl +| | | `-- varDecl +| | | |-- bType +| | | | `-- Int: int +| | | |-- varDef +| | | | |-- Ident: colsize +| | | | |-- Assign: = +| | | | `-- initVal +| | | | `-- exp +| | | | `-- addExp +| | | | `-- mulExp +| | | | |-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- lVal +| | | | | `-- Ident: n +| | | | |-- DivOp: / +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- lVal +| | | | `-- Ident: rowsize +| | | `-- Semi: ; +| | |-- blockItem +| | | `-- decl +| | | `-- varDecl +| | | |-- bType +| | | | `-- Int: int +| | | |-- varDef +| | | | |-- Ident: i +| | | | |-- Assign: = +| | | | `-- initVal +| | | | `-- exp +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- OCTAL_INT: 0 +| | | `-- Semi: ; +| | |-- blockItem +| | | `-- decl +| | | `-- varDecl +| | | |-- bType +| | | | `-- Int: int +| | | |-- varDef +| | | | |-- Ident: j +| | | | |-- Assign: = +| | | | `-- initVal +| | | | `-- exp +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- OCTAL_INT: 0 +| | | `-- Semi: ; +| | |-- blockItem +| | | `-- stmt +| | | |-- While: while +| | | |-- L_PAREN: ( +| | | |-- cond +| | | | `-- lOrExp +| | | | `-- lAndExp +| | | | `-- eqExp +| | | | `-- relExp +| | | | |-- relExp +| | | | | `-- addExp +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- lVal +| | | | | `-- Ident: i +| | | | |-- LOp: < +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- lVal +| | | | `-- Ident: colsize +| | | |-- R_PAREN: ) +| | | `-- stmt +| | | `-- block +| | | |-- L_BRACE: { +| | | |-- blockItem +| | | | `-- stmt +| | | | |-- lVal +| | | | | `-- Ident: j +| | | | |-- Assign: = +| | | | |-- exp +| | | | | `-- addExp +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- OCTAL_INT: 0 +| | | | `-- Semi: ; +| | | |-- blockItem +| | | | `-- stmt +| | | | |-- While: while +| | | | |-- L_PAREN: ( +| | | | |-- cond +| | | | | `-- lOrExp +| | | | | `-- lAndExp +| | | | | `-- eqExp +| | | | | `-- relExp +| | | | | |-- relExp +| | | | | | `-- addExp +| | | | | | `-- mulExp +| | | | | | `-- unaryExp +| | | | | | `-- primary +| | | | | | `-- lVal +| | | | | | `-- Ident: j +| | | | | |-- LOp: < +| | | | | `-- addExp +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- lVal +| | | | | `-- Ident: rowsize +| | | | |-- R_PAREN: ) +| | | | `-- stmt +| | | | `-- block +| | | | |-- L_BRACE: { +| | | | |-- blockItem +| | | | | `-- stmt +| | | | | |-- If: if +| | | | | |-- L_PAREN: ( +| | | | | |-- cond +| | | | | | `-- lOrExp +| | | | | | `-- lAndExp +| | | | | | `-- eqExp +| | | | | | `-- relExp +| | | | | | |-- relExp +| | | | | | | `-- addExp +| | | | | | | `-- mulExp +| | | | | | | `-- unaryExp +| | | | | | | `-- primary +| | | | | | | `-- lVal +| | | | | | | `-- Ident: i +| | | | | | |-- LOp: < +| | | | | | `-- addExp +| | | | | | `-- mulExp +| | | | | | `-- unaryExp +| | | | | | `-- primary +| | | | | | `-- lVal +| | | | | | `-- Ident: j +| | | | | |-- R_PAREN: ) +| | | | | `-- stmt +| | | | | `-- block +| | | | | |-- L_BRACE: { +| | | | | |-- blockItem +| | | | | | `-- stmt +| | | | | | |-- lVal +| | | | | | | `-- Ident: j +| | | | | | |-- Assign: = +| | | | | | |-- exp +| | | | | | | `-- addExp +| | | | | | | |-- addExp +| | | | | | | | `-- mulExp +| | | | | | | | `-- unaryExp +| | | | | | | | `-- primary +| | | | | | | | `-- lVal +| | | | | | | | `-- Ident: j +| | | | | | | |-- AddOp: + +| | | | | | | `-- mulExp +| | | | | | | `-- unaryExp +| | | | | | | `-- primary +| | | | | | | `-- DECIMAL_INT: 1 +| | | | | | `-- Semi: ; +| | | | | |-- blockItem +| | | | | | `-- stmt +| | | | | | |-- Continue: continue +| | | | | | `-- Semi: ; +| | | | | `-- R_BRACE: } +| | | | |-- blockItem +| | | | | `-- decl +| | | | | `-- varDecl +| | | | | |-- bType +| | | | | | `-- Int: int +| | | | | |-- varDef +| | | | | | |-- Ident: curr +| | | | | | |-- Assign: = +| | | | | | `-- initVal +| | | | | | `-- exp +| | | | | | `-- addExp +| | | | | | `-- mulExp +| | | | | | `-- unaryExp +| | | | | | `-- primary +| | | | | | `-- lVal +| | | | | | |-- Ident: matrix +| | | | | | |-- L_BRACK: [ +| | | | | | |-- exp +| | | | | | | `-- addExp +| | | | | | | |-- addExp +| | | | | | | | `-- mulExp +| | | | | | | | |-- mulExp +| | | | | | | | | `-- unaryExp +| | | | | | | | | `-- primary +| | | | | | | | | `-- lVal +| | | | | | | | | `-- Ident: i +| | | | | | | | |-- MulOp: * +| | | | | | | | `-- unaryExp +| | | | | | | | `-- primary +| | | | | | | | `-- lVal +| | | | | | | | `-- Ident: rowsize +| | | | | | | |-- AddOp: + +| | | | | | | `-- mulExp +| | | | | | | `-- unaryExp +| | | | | | | `-- primary +| | | | | | | `-- lVal +| | | | | | | `-- Ident: j +| | | | | | `-- R_BRACK: ] +| | | | | `-- Semi: ; +| | | | |-- blockItem +| | | | | `-- stmt +| | | | | |-- lVal +| | | | | | |-- Ident: matrix +| | | | | | |-- L_BRACK: [ +| | | | | | |-- exp +| | | | | | | `-- addExp +| | | | | | | |-- addExp +| | | | | | | | `-- mulExp +| | | | | | | | |-- mulExp +| | | | | | | | | `-- unaryExp +| | | | | | | | | `-- primary +| | | | | | | | | `-- lVal +| | | | | | | | | `-- Ident: j +| | | | | | | | |-- MulOp: * +| | | | | | | | `-- unaryExp +| | | | | | | | `-- primary +| | | | | | | | `-- lVal +| | | | | | | | `-- Ident: colsize +| | | | | | | |-- AddOp: + +| | | | | | | `-- mulExp +| | | | | | | `-- unaryExp +| | | | | | | `-- primary +| | | | | | | `-- lVal +| | | | | | | `-- Ident: i +| | | | | | `-- R_BRACK: ] +| | | | | |-- Assign: = +| | | | | |-- exp +| | | | | | `-- addExp +| | | | | | `-- mulExp +| | | | | | `-- unaryExp +| | | | | | `-- primary +| | | | | | `-- lVal +| | | | | | |-- Ident: matrix +| | | | | | |-- L_BRACK: [ +| | | | | | |-- exp +| | | | | | | `-- addExp +| | | | | | | |-- addExp +| | | | | | | | `-- mulExp +| | | | | | | | |-- mulExp +| | | | | | | | | `-- unaryExp +| | | | | | | | | `-- primary +| | | | | | | | | `-- lVal +| | | | | | | | | `-- Ident: i +| | | | | | | | |-- MulOp: * +| | | | | | | | `-- unaryExp +| | | | | | | | `-- primary +| | | | | | | | `-- lVal +| | | | | | | | `-- Ident: rowsize +| | | | | | | |-- AddOp: + +| | | | | | | `-- mulExp +| | | | | | | `-- unaryExp +| | | | | | | `-- primary +| | | | | | | `-- lVal +| | | | | | | `-- Ident: j +| | | | | | `-- R_BRACK: ] +| | | | | `-- Semi: ; +| | | | |-- blockItem +| | | | | `-- stmt +| | | | | |-- lVal +| | | | | | |-- Ident: matrix +| | | | | | |-- L_BRACK: [ +| | | | | | |-- exp +| | | | | | | `-- addExp +| | | | | | | |-- addExp +| | | | | | | | `-- mulExp +| | | | | | | | |-- mulExp +| | | | | | | | | `-- unaryExp +| | | | | | | | | `-- primary +| | | | | | | | | `-- lVal +| | | | | | | | | `-- Ident: i +| | | | | | | | |-- MulOp: * +| | | | | | | | `-- unaryExp +| | | | | | | | `-- primary +| | | | | | | | `-- lVal +| | | | | | | | `-- Ident: rowsize +| | | | | | | |-- AddOp: + +| | | | | | | `-- mulExp +| | | | | | | `-- unaryExp +| | | | | | | `-- primary +| | | | | | | `-- lVal +| | | | | | | `-- Ident: j +| | | | | | `-- R_BRACK: ] +| | | | | |-- Assign: = +| | | | | |-- exp +| | | | | | `-- addExp +| | | | | | `-- mulExp +| | | | | | `-- unaryExp +| | | | | | `-- primary +| | | | | | `-- lVal +| | | | | | `-- Ident: curr +| | | | | `-- Semi: ; +| | | | |-- blockItem +| | | | | `-- stmt +| | | | | |-- lVal +| | | | | | `-- Ident: j +| | | | | |-- Assign: = +| | | | | |-- exp +| | | | | | `-- addExp +| | | | | | |-- addExp +| | | | | | | `-- mulExp +| | | | | | | `-- unaryExp +| | | | | | | `-- primary +| | | | | | | `-- lVal +| | | | | | | `-- Ident: j +| | | | | | |-- AddOp: + +| | | | | | `-- mulExp +| | | | | | `-- unaryExp +| | | | | | `-- primary +| | | | | | `-- DECIMAL_INT: 1 +| | | | | `-- Semi: ; +| | | | `-- R_BRACE: } +| | | |-- blockItem +| | | | `-- stmt +| | | | |-- lVal +| | | | | `-- Ident: i +| | | | |-- Assign: = +| | | | |-- exp +| | | | | `-- addExp +| | | | | |-- addExp +| | | | | | `-- mulExp +| | | | | | `-- unaryExp +| | | | | | `-- primary +| | | | | | `-- lVal +| | | | | | `-- Ident: i +| | | | | |-- AddOp: + +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- DECIMAL_INT: 1 +| | | | `-- Semi: ; +| | | `-- R_BRACE: } +| | |-- blockItem +| | | `-- stmt +| | | `-- returnStmt +| | | |-- Return: return +| | | |-- exp +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | |-- unaryOp +| | | | | `-- SubOp: - +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- DECIMAL_INT: 1 +| | | `-- Semi: ; +| | `-- R_BRACE: } +| `-- funcDef +| |-- funcType +| | `-- Int: int +| |-- Ident: main +| |-- L_PAREN: ( +| |-- R_PAREN: ) +| `-- block +| |-- L_BRACE: { +| |-- blockItem +| | `-- decl +| | `-- varDecl +| | |-- bType +| | | `-- Int: int +| | |-- varDef +| | | |-- Ident: n +| | | |-- Assign: = +| | | `-- initVal +| | | `-- exp +| | | `-- addExp +| | | `-- mulExp +| | | `-- unaryExp +| | | |-- Ident: getint +| | | |-- L_PAREN: ( +| | | `-- R_PAREN: ) +| | `-- Semi: ; +| |-- blockItem +| | `-- decl +| | `-- varDecl +| | |-- bType +| | | `-- Int: int +| | |-- varDef +| | | |-- Ident: len +| | | |-- Assign: = +| | | `-- initVal +| | | `-- exp +| | | `-- addExp +| | | `-- mulExp +| | | `-- unaryExp +| | | |-- Ident: getarray +| | | |-- L_PAREN: ( +| | | |-- funcRParams +| | | | `-- exp +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- lVal +| | | | `-- Ident: a +| | | `-- R_PAREN: ) +| | `-- Semi: ; +| |-- blockItem +| | `-- stmt +| | |-- exp +| | | `-- addExp +| | | `-- mulExp +| | | `-- unaryExp +| | | |-- Ident: starttime +| | | |-- L_PAREN: ( +| | | `-- R_PAREN: ) +| | `-- Semi: ; +| |-- blockItem +| | `-- decl +| | `-- varDecl +| | |-- bType +| | | `-- Int: int +| | |-- varDef +| | | |-- Ident: i +| | | |-- Assign: = +| | | `-- initVal +| | | `-- exp +| | | `-- addExp +| | | `-- mulExp +| | | `-- unaryExp +| | | `-- primary +| | | `-- OCTAL_INT: 0 +| | `-- Semi: ; +| |-- blockItem +| | `-- stmt +| | |-- While: while +| | |-- L_PAREN: ( +| | |-- cond +| | | `-- lOrExp +| | | `-- lAndExp +| | | `-- eqExp +| | | `-- relExp +| | | |-- relExp +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- lVal +| | | | `-- Ident: i +| | | |-- LOp: < +| | | `-- addExp +| | | `-- mulExp +| | | `-- unaryExp +| | | `-- primary +| | | `-- lVal +| | | `-- Ident: n +| | |-- R_PAREN: ) +| | `-- stmt +| | `-- block +| | |-- L_BRACE: { +| | |-- blockItem +| | | `-- stmt +| | | |-- lVal +| | | | |-- Ident: matrix +| | | | |-- L_BRACK: [ +| | | | |-- exp +| | | | | `-- addExp +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- lVal +| | | | | `-- Ident: i +| | | | `-- R_BRACK: ] +| | | |-- Assign: = +| | | |-- exp +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- lVal +| | | | `-- Ident: i +| | | `-- Semi: ; +| | |-- blockItem +| | | `-- stmt +| | | |-- lVal +| | | | `-- Ident: i +| | | |-- Assign: = +| | | |-- exp +| | | | `-- addExp +| | | | |-- addExp +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- lVal +| | | | | `-- Ident: i +| | | | |-- AddOp: + +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- DECIMAL_INT: 1 +| | | `-- Semi: ; +| | `-- R_BRACE: } +| |-- blockItem +| | `-- stmt +| | |-- lVal +| | | `-- Ident: i +| | |-- Assign: = +| | |-- exp +| | | `-- addExp +| | | `-- mulExp +| | | `-- unaryExp +| | | `-- primary +| | | `-- OCTAL_INT: 0 +| | `-- Semi: ; +| |-- blockItem +| | `-- stmt +| | |-- While: while +| | |-- L_PAREN: ( +| | |-- cond +| | | `-- lOrExp +| | | `-- lAndExp +| | | `-- eqExp +| | | `-- relExp +| | | |-- relExp +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- lVal +| | | | `-- Ident: i +| | | |-- LOp: < +| | | `-- addExp +| | | `-- mulExp +| | | `-- unaryExp +| | | `-- primary +| | | `-- lVal +| | | `-- Ident: len +| | |-- R_PAREN: ) +| | `-- stmt +| | `-- block +| | |-- L_BRACE: { +| | |-- blockItem +| | | `-- stmt +| | | |-- exp +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | |-- Ident: transpose +| | | | |-- L_PAREN: ( +| | | | |-- funcRParams +| | | | | |-- exp +| | | | | | `-- addExp +| | | | | | `-- mulExp +| | | | | | `-- unaryExp +| | | | | | `-- primary +| | | | | | `-- lVal +| | | | | | `-- Ident: n +| | | | | |-- Comma: , +| | | | | |-- exp +| | | | | | `-- addExp +| | | | | | `-- mulExp +| | | | | | `-- unaryExp +| | | | | | `-- primary +| | | | | | `-- lVal +| | | | | | `-- Ident: matrix +| | | | | |-- Comma: , +| | | | | `-- exp +| | | | | `-- addExp +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- lVal +| | | | | |-- Ident: a +| | | | | |-- L_BRACK: [ +| | | | | |-- exp +| | | | | | `-- addExp +| | | | | | `-- mulExp +| | | | | | `-- unaryExp +| | | | | | `-- primary +| | | | | | `-- lVal +| | | | | | `-- Ident: i +| | | | | `-- R_BRACK: ] +| | | | `-- R_PAREN: ) +| | | `-- Semi: ; +| | |-- blockItem +| | | `-- stmt +| | | |-- lVal +| | | | `-- Ident: i +| | | |-- Assign: = +| | | |-- exp +| | | | `-- addExp +| | | | |-- addExp +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- lVal +| | | | | `-- Ident: i +| | | | |-- AddOp: + +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- DECIMAL_INT: 1 +| | | `-- Semi: ; +| | `-- R_BRACE: } +| |-- blockItem +| | `-- decl +| | `-- varDecl +| | |-- bType +| | | `-- Int: int +| | |-- varDef +| | | |-- Ident: ans +| | | |-- Assign: = +| | | `-- initVal +| | | `-- exp +| | | `-- addExp +| | | `-- mulExp +| | | `-- unaryExp +| | | `-- primary +| | | `-- OCTAL_INT: 0 +| | `-- Semi: ; +| |-- blockItem +| | `-- stmt +| | |-- lVal +| | | `-- Ident: i +| | |-- Assign: = +| | |-- exp +| | | `-- addExp +| | | `-- mulExp +| | | `-- unaryExp +| | | `-- primary +| | | `-- OCTAL_INT: 0 +| | `-- Semi: ; +| |-- blockItem +| | `-- stmt +| | |-- While: while +| | |-- L_PAREN: ( +| | |-- cond +| | | `-- lOrExp +| | | `-- lAndExp +| | | `-- eqExp +| | | `-- relExp +| | | |-- relExp +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- lVal +| | | | `-- Ident: i +| | | |-- LOp: < +| | | `-- addExp +| | | `-- mulExp +| | | `-- unaryExp +| | | `-- primary +| | | `-- lVal +| | | `-- Ident: len +| | |-- R_PAREN: ) +| | `-- stmt +| | `-- block +| | |-- L_BRACE: { +| | |-- blockItem +| | | `-- stmt +| | | |-- lVal +| | | | `-- Ident: ans +| | | |-- Assign: = +| | | |-- exp +| | | | `-- addExp +| | | | |-- addExp +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- lVal +| | | | | `-- Ident: ans +| | | | |-- AddOp: + +| | | | `-- mulExp +| | | | |-- mulExp +| | | | | |-- mulExp +| | | | | | `-- unaryExp +| | | | | | `-- primary +| | | | | | `-- lVal +| | | | | | `-- Ident: i +| | | | | |-- MulOp: * +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- lVal +| | | | | `-- Ident: i +| | | | |-- MulOp: * +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- lVal +| | | | |-- Ident: matrix +| | | | |-- L_BRACK: [ +| | | | |-- exp +| | | | | `-- addExp +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- lVal +| | | | | `-- Ident: i +| | | | `-- R_BRACK: ] +| | | `-- Semi: ; +| | |-- blockItem +| | | `-- stmt +| | | |-- lVal +| | | | `-- Ident: i +| | | |-- Assign: = +| | | |-- exp +| | | | `-- addExp +| | | | |-- addExp +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- lVal +| | | | | `-- Ident: i +| | | | |-- AddOp: + +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- DECIMAL_INT: 1 +| | | `-- Semi: ; +| | `-- R_BRACE: } +| |-- blockItem +| | `-- stmt +| | |-- If: if +| | |-- L_PAREN: ( +| | |-- cond +| | | `-- lOrExp +| | | `-- lAndExp +| | | `-- eqExp +| | | `-- relExp +| | | |-- relExp +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- lVal +| | | | `-- Ident: ans +| | | |-- LOp: < +| | | `-- addExp +| | | `-- mulExp +| | | `-- unaryExp +| | | `-- primary +| | | `-- OCTAL_INT: 0 +| | |-- R_PAREN: ) +| | `-- stmt +| | |-- lVal +| | | `-- Ident: ans +| | |-- Assign: = +| | |-- exp +| | | `-- addExp +| | | `-- mulExp +| | | `-- unaryExp +| | | |-- unaryOp +| | | | `-- SubOp: - +| | | `-- unaryExp +| | | `-- primary +| | | `-- lVal +| | | `-- Ident: ans +| | `-- Semi: ; +| |-- blockItem +| | `-- stmt +| | |-- exp +| | | `-- addExp +| | | `-- mulExp +| | | `-- unaryExp +| | | |-- Ident: stoptime +| | | |-- L_PAREN: ( +| | | `-- R_PAREN: ) +| | `-- Semi: ; +| |-- blockItem +| | `-- stmt +| | |-- exp +| | | `-- addExp +| | | `-- mulExp +| | | `-- unaryExp +| | | |-- Ident: putint +| | | |-- L_PAREN: ( +| | | |-- funcRParams +| | | | `-- exp +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- lVal +| | | | `-- Ident: ans +| | | `-- R_PAREN: ) +| | `-- Semi: ; +| |-- blockItem +| | `-- stmt +| | |-- exp +| | | `-- addExp +| | | `-- mulExp +| | | `-- unaryExp +| | | |-- Ident: putch +| | | |-- L_PAREN: ( +| | | |-- funcRParams +| | | | `-- exp +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- DECIMAL_INT: 10 +| | | `-- R_PAREN: ) +| | `-- Semi: ; +| |-- blockItem +| | `-- stmt +| | `-- returnStmt +| | |-- Return: return +| | |-- exp +| | | `-- addExp +| | | `-- mulExp +| | | `-- unaryExp +| | | `-- primary +| | | `-- OCTAL_INT: 0 +| | `-- Semi: ; +| `-- R_BRACE: } +`-- EOF: + +========== test/test_case/performance/vector_mul3.sy ========== +compUnit +|-- program +| |-- funcDef +| | |-- funcType +| | | `-- Int: int +| | |-- Ident: func +| | |-- L_PAREN: ( +| | |-- funcFParams +| | | |-- funcFParam +| | | | |-- bType +| | | | | `-- Int: int +| | | | `-- Ident: i +| | | |-- Comma: , +| | | `-- funcFParam +| | | |-- bType +| | | | `-- Int: int +| | | `-- Ident: j +| | |-- R_PAREN: ) +| | `-- block +| | |-- L_BRACE: { +| | |-- blockItem +| | | `-- stmt +| | | `-- returnStmt +| | | |-- Return: return +| | | |-- exp +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | `-- primary +| | | | |-- L_PAREN: ( +| | | | |-- exp +| | | | | `-- addExp +| | | | | |-- addExp +| | | | | | |-- addExp +| | | | | | | `-- mulExp +| | | | | | | |-- mulExp +| | | | | | | | |-- mulExp +| | | | | | | | | `-- unaryExp +| | | | | | | | | `-- primary +| | | | | | | | | |-- L_PAREN: ( +| | | | | | | | | |-- exp +| | | | | | | | | | `-- addExp +| | | | | | | | | | |-- addExp +| | | | | | | | | | | `-- mulExp +| | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | `-- primary +| | | | | | | | | | | `-- lVal +| | | | | | | | | | | `-- Ident: i +| | | | | | | | | | |-- AddOp: + +| | | | | | | | | | `-- mulExp +| | | | | | | | | | `-- unaryExp +| | | | | | | | | | `-- primary +| | | | | | | | | | `-- lVal +| | | | | | | | | | `-- Ident: j +| | | | | | | | | `-- R_PAREN: ) +| | | | | | | | |-- MulOp: * +| | | | | | | | `-- unaryExp +| | | | | | | | `-- primary +| | | | | | | | |-- L_PAREN: ( +| | | | | | | | |-- exp +| | | | | | | | | `-- addExp +| | | | | | | | | |-- addExp +| | | | | | | | | | |-- addExp +| | | | | | | | | | | `-- mulExp +| | | | | | | | | | | `-- unaryExp +| | | | | | | | | | | `-- primary +| | | | | | | | | | | `-- lVal +| | | | | | | | | | | `-- Ident: i +| | | | | | | | | | |-- AddOp: + +| | | | | | | | | | `-- mulExp +| | | | | | | | | | `-- unaryExp +| | | | | | | | | | `-- primary +| | | | | | | | | | `-- lVal +| | | | | | | | | | `-- Ident: j +| | | | | | | | | |-- AddOp: + +| | | | | | | | | `-- mulExp +| | | | | | | | | `-- unaryExp +| | | | | | | | | `-- primary +| | | | | | | | | `-- DECIMAL_INT: 1 +| | | | | | | | `-- R_PAREN: ) +| | | | | | | |-- DivOp: / +| | | | | | | `-- unaryExp +| | | | | | | `-- primary +| | | | | | | `-- DECIMAL_INT: 2 +| | | | | | |-- AddOp: + +| | | | | | `-- mulExp +| | | | | | `-- unaryExp +| | | | | | `-- primary +| | | | | | `-- lVal +| | | | | | `-- Ident: i +| | | | | |-- AddOp: + +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- DECIMAL_INT: 1 +| | | | `-- R_PAREN: ) +| | | `-- Semi: ; +| | `-- R_BRACE: } +| |-- funcDef +| | |-- funcType +| | | `-- Float: float +| | |-- Ident: Vectordot +| | |-- L_PAREN: ( +| | |-- funcFParams +| | | |-- funcFParam +| | | | |-- bType +| | | | | `-- Float: float +| | | | |-- Ident: v +| | | | |-- L_BRACK: [ +| | | | `-- R_BRACK: ] +| | | |-- Comma: , +| | | |-- funcFParam +| | | | |-- bType +| | | | | `-- Float: float +| | | | |-- Ident: u +| | | | |-- L_BRACK: [ +| | | | `-- R_BRACK: ] +| | | |-- Comma: , +| | | `-- funcFParam +| | | |-- bType +| | | | `-- Int: int +| | | `-- Ident: n +| | |-- R_PAREN: ) +| | `-- block +| | |-- L_BRACE: { +| | |-- blockItem +| | | `-- decl +| | | `-- varDecl +| | | |-- bType +| | | | `-- Int: int +| | | |-- varDef +| | | | |-- Ident: i +| | | | |-- Assign: = +| | | | `-- initVal +| | | | `-- exp +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- OCTAL_INT: 0 +| | | `-- Semi: ; +| | |-- blockItem +| | | `-- decl +| | | `-- varDecl +| | | |-- bType +| | | | `-- Float: float +| | | |-- varDef +| | | | |-- Ident: sum +| | | | |-- Assign: = +| | | | `-- initVal +| | | | `-- exp +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- OCTAL_INT: 0 +| | | `-- Semi: ; +| | |-- blockItem +| | | `-- stmt +| | | |-- While: while +| | | |-- L_PAREN: ( +| | | |-- cond +| | | | `-- lOrExp +| | | | `-- lAndExp +| | | | `-- eqExp +| | | | `-- relExp +| | | | |-- relExp +| | | | | `-- addExp +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- lVal +| | | | | `-- Ident: i +| | | | |-- LOp: < +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- lVal +| | | | `-- Ident: n +| | | |-- R_PAREN: ) +| | | `-- stmt +| | | `-- block +| | | |-- L_BRACE: { +| | | |-- blockItem +| | | | `-- stmt +| | | | |-- lVal +| | | | | `-- Ident: sum +| | | | |-- Assign: = +| | | | |-- exp +| | | | | `-- addExp +| | | | | |-- addExp +| | | | | | `-- mulExp +| | | | | | `-- unaryExp +| | | | | | `-- primary +| | | | | | `-- lVal +| | | | | | `-- Ident: sum +| | | | | |-- AddOp: + +| | | | | `-- mulExp +| | | | | |-- mulExp +| | | | | | `-- unaryExp +| | | | | | `-- primary +| | | | | | `-- lVal +| | | | | | |-- Ident: v +| | | | | | |-- L_BRACK: [ +| | | | | | |-- exp +| | | | | | | `-- addExp +| | | | | | | `-- mulExp +| | | | | | | `-- unaryExp +| | | | | | | `-- primary +| | | | | | | `-- lVal +| | | | | | | `-- Ident: i +| | | | | | `-- R_BRACK: ] +| | | | | |-- MulOp: * +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- lVal +| | | | | |-- Ident: u +| | | | | |-- L_BRACK: [ +| | | | | |-- exp +| | | | | | `-- addExp +| | | | | | `-- mulExp +| | | | | | `-- unaryExp +| | | | | | `-- primary +| | | | | | `-- lVal +| | | | | | `-- Ident: i +| | | | | `-- R_BRACK: ] +| | | | `-- Semi: ; +| | | |-- blockItem +| | | | `-- stmt +| | | | |-- lVal +| | | | | `-- Ident: i +| | | | |-- Assign: = +| | | | |-- exp +| | | | | `-- addExp +| | | | | |-- addExp +| | | | | | `-- mulExp +| | | | | | `-- unaryExp +| | | | | | `-- primary +| | | | | | `-- lVal +| | | | | | `-- Ident: i +| | | | | |-- AddOp: + +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- DECIMAL_INT: 1 +| | | | `-- Semi: ; +| | | `-- R_BRACE: } +| | |-- blockItem +| | | `-- stmt +| | | `-- returnStmt +| | | |-- Return: return +| | | |-- exp +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- lVal +| | | | `-- Ident: sum +| | | `-- Semi: ; +| | `-- R_BRACE: } +| |-- funcDef +| | |-- funcType +| | | `-- Void: void +| | |-- Ident: mult1 +| | |-- L_PAREN: ( +| | |-- funcFParams +| | | |-- funcFParam +| | | | |-- bType +| | | | | `-- Float: float +| | | | |-- Ident: v +| | | | |-- L_BRACK: [ +| | | | `-- R_BRACK: ] +| | | |-- Comma: , +| | | |-- funcFParam +| | | | |-- bType +| | | | | `-- Float: float +| | | | |-- Ident: out +| | | | |-- L_BRACK: [ +| | | | `-- R_BRACK: ] +| | | |-- Comma: , +| | | `-- funcFParam +| | | |-- bType +| | | | `-- Int: int +| | | `-- Ident: n +| | |-- R_PAREN: ) +| | `-- block +| | |-- L_BRACE: { +| | |-- blockItem +| | | `-- decl +| | | `-- varDecl +| | | |-- bType +| | | | `-- Int: int +| | | |-- varDef +| | | | |-- Ident: i +| | | | |-- Assign: = +| | | | `-- initVal +| | | | `-- exp +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- OCTAL_INT: 0 +| | | |-- Comma: , +| | | |-- varDef +| | | | |-- Ident: j +| | | | |-- Assign: = +| | | | `-- initVal +| | | | `-- exp +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- OCTAL_INT: 0 +| | | `-- Semi: ; +| | |-- blockItem +| | | `-- decl +| | | `-- varDecl +| | | |-- bType +| | | | `-- Float: float +| | | |-- varDef +| | | | |-- Ident: sum +| | | | |-- Assign: = +| | | | `-- initVal +| | | | `-- exp +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- OCTAL_INT: 0 +| | | `-- Semi: ; +| | |-- blockItem +| | | `-- stmt +| | | |-- While: while +| | | |-- L_PAREN: ( +| | | |-- cond +| | | | `-- lOrExp +| | | | `-- lAndExp +| | | | `-- eqExp +| | | | `-- relExp +| | | | |-- relExp +| | | | | `-- addExp +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- lVal +| | | | | `-- Ident: i +| | | | |-- LOp: < +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- lVal +| | | | `-- Ident: n +| | | |-- R_PAREN: ) +| | | `-- stmt +| | | `-- block +| | | |-- L_BRACE: { +| | | |-- blockItem +| | | | `-- stmt +| | | | |-- While: while +| | | | |-- L_PAREN: ( +| | | | |-- cond +| | | | | `-- lOrExp +| | | | | `-- lAndExp +| | | | | `-- eqExp +| | | | | `-- relExp +| | | | | |-- relExp +| | | | | | `-- addExp +| | | | | | `-- mulExp +| | | | | | `-- unaryExp +| | | | | | `-- primary +| | | | | | `-- lVal +| | | | | | `-- Ident: j +| | | | | |-- LOp: < +| | | | | `-- addExp +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- lVal +| | | | | `-- Ident: n +| | | | |-- R_PAREN: ) +| | | | `-- stmt +| | | | `-- block +| | | | |-- L_BRACE: { +| | | | |-- blockItem +| | | | | `-- stmt +| | | | | |-- lVal +| | | | | | `-- Ident: sum +| | | | | |-- Assign: = +| | | | | |-- exp +| | | | | | `-- addExp +| | | | | | |-- addExp +| | | | | | | `-- mulExp +| | | | | | | `-- unaryExp +| | | | | | | `-- primary +| | | | | | | `-- lVal +| | | | | | | `-- Ident: sum +| | | | | | |-- AddOp: + +| | | | | | `-- mulExp +| | | | | | |-- mulExp +| | | | | | | `-- unaryExp +| | | | | | | `-- primary +| | | | | | | `-- lVal +| | | | | | | |-- Ident: v +| | | | | | | |-- L_BRACK: [ +| | | | | | | |-- exp +| | | | | | | | `-- addExp +| | | | | | | | `-- mulExp +| | | | | | | | `-- unaryExp +| | | | | | | | `-- primary +| | | | | | | | `-- lVal +| | | | | | | | `-- Ident: j +| | | | | | | `-- R_BRACK: ] +| | | | | | |-- DivOp: / +| | | | | | `-- unaryExp +| | | | | | |-- Ident: func +| | | | | | |-- L_PAREN: ( +| | | | | | |-- funcRParams +| | | | | | | |-- exp +| | | | | | | | `-- addExp +| | | | | | | | `-- mulExp +| | | | | | | | `-- unaryExp +| | | | | | | | `-- primary +| | | | | | | | `-- lVal +| | | | | | | | `-- Ident: i +| | | | | | | |-- Comma: , +| | | | | | | `-- exp +| | | | | | | `-- addExp +| | | | | | | `-- mulExp +| | | | | | | `-- unaryExp +| | | | | | | `-- primary +| | | | | | | `-- lVal +| | | | | | | `-- Ident: j +| | | | | | `-- R_PAREN: ) +| | | | | `-- Semi: ; +| | | | |-- blockItem +| | | | | `-- stmt +| | | | | |-- lVal +| | | | | | `-- Ident: j +| | | | | |-- Assign: = +| | | | | |-- exp +| | | | | | `-- addExp +| | | | | | |-- addExp +| | | | | | | `-- mulExp +| | | | | | | `-- unaryExp +| | | | | | | `-- primary +| | | | | | | `-- lVal +| | | | | | | `-- Ident: j +| | | | | | |-- AddOp: + +| | | | | | `-- mulExp +| | | | | | `-- unaryExp +| | | | | | `-- primary +| | | | | | `-- DECIMAL_INT: 1 +| | | | | `-- Semi: ; +| | | | `-- R_BRACE: } +| | | |-- blockItem +| | | | `-- stmt +| | | | |-- lVal +| | | | | |-- Ident: out +| | | | | |-- L_BRACK: [ +| | | | | |-- exp +| | | | | | `-- addExp +| | | | | | `-- mulExp +| | | | | | `-- unaryExp +| | | | | | `-- primary +| | | | | | `-- lVal +| | | | | | `-- Ident: i +| | | | | `-- R_BRACK: ] +| | | | |-- Assign: = +| | | | |-- exp +| | | | | `-- addExp +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- lVal +| | | | | `-- Ident: sum +| | | | `-- Semi: ; +| | | |-- blockItem +| | | | `-- stmt +| | | | |-- lVal +| | | | | `-- Ident: i +| | | | |-- Assign: = +| | | | |-- exp +| | | | | `-- addExp +| | | | | |-- addExp +| | | | | | `-- mulExp +| | | | | | `-- unaryExp +| | | | | | `-- primary +| | | | | | `-- lVal +| | | | | | `-- Ident: i +| | | | | |-- AddOp: + +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- DECIMAL_INT: 1 +| | | | `-- Semi: ; +| | | `-- R_BRACE: } +| | `-- R_BRACE: } +| |-- funcDef +| | |-- funcType +| | | `-- Void: void +| | |-- Ident: mult2 +| | |-- L_PAREN: ( +| | |-- funcFParams +| | | |-- funcFParam +| | | | |-- bType +| | | | | `-- Float: float +| | | | |-- Ident: v +| | | | |-- L_BRACK: [ +| | | | `-- R_BRACK: ] +| | | |-- Comma: , +| | | |-- funcFParam +| | | | |-- bType +| | | | | `-- Float: float +| | | | |-- Ident: out +| | | | |-- L_BRACK: [ +| | | | `-- R_BRACK: ] +| | | |-- Comma: , +| | | `-- funcFParam +| | | |-- bType +| | | | `-- Int: int +| | | `-- Ident: n +| | |-- R_PAREN: ) +| | `-- block +| | |-- L_BRACE: { +| | |-- blockItem +| | | `-- decl +| | | `-- varDecl +| | | |-- bType +| | | | `-- Int: int +| | | |-- varDef +| | | | |-- Ident: i +| | | | |-- Assign: = +| | | | `-- initVal +| | | | `-- exp +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- OCTAL_INT: 0 +| | | |-- Comma: , +| | | |-- varDef +| | | | |-- Ident: j +| | | | |-- Assign: = +| | | | `-- initVal +| | | | `-- exp +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- OCTAL_INT: 0 +| | | `-- Semi: ; +| | |-- blockItem +| | | `-- decl +| | | `-- varDecl +| | | |-- bType +| | | | `-- Float: float +| | | |-- varDef +| | | | |-- Ident: sum +| | | | |-- Assign: = +| | | | `-- initVal +| | | | `-- exp +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- OCTAL_INT: 0 +| | | `-- Semi: ; +| | |-- blockItem +| | | `-- stmt +| | | |-- While: while +| | | |-- L_PAREN: ( +| | | |-- cond +| | | | `-- lOrExp +| | | | `-- lAndExp +| | | | `-- eqExp +| | | | `-- relExp +| | | | |-- relExp +| | | | | `-- addExp +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- lVal +| | | | | `-- Ident: i +| | | | |-- LOp: < +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- lVal +| | | | `-- Ident: n +| | | |-- R_PAREN: ) +| | | `-- stmt +| | | `-- block +| | | |-- L_BRACE: { +| | | |-- blockItem +| | | | `-- stmt +| | | | |-- While: while +| | | | |-- L_PAREN: ( +| | | | |-- cond +| | | | | `-- lOrExp +| | | | | `-- lAndExp +| | | | | `-- eqExp +| | | | | `-- relExp +| | | | | |-- relExp +| | | | | | `-- addExp +| | | | | | `-- mulExp +| | | | | | `-- unaryExp +| | | | | | `-- primary +| | | | | | `-- lVal +| | | | | | `-- Ident: j +| | | | | |-- LOp: < +| | | | | `-- addExp +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- lVal +| | | | | `-- Ident: n +| | | | |-- R_PAREN: ) +| | | | `-- stmt +| | | | `-- block +| | | | |-- L_BRACE: { +| | | | |-- blockItem +| | | | | `-- stmt +| | | | | |-- lVal +| | | | | | `-- Ident: sum +| | | | | |-- Assign: = +| | | | | |-- exp +| | | | | | `-- addExp +| | | | | | |-- addExp +| | | | | | | `-- mulExp +| | | | | | | `-- unaryExp +| | | | | | | `-- primary +| | | | | | | `-- lVal +| | | | | | | `-- Ident: sum +| | | | | | |-- AddOp: + +| | | | | | `-- mulExp +| | | | | | |-- mulExp +| | | | | | | `-- unaryExp +| | | | | | | `-- primary +| | | | | | | `-- lVal +| | | | | | | |-- Ident: v +| | | | | | | |-- L_BRACK: [ +| | | | | | | |-- exp +| | | | | | | | `-- addExp +| | | | | | | | `-- mulExp +| | | | | | | | `-- unaryExp +| | | | | | | | `-- primary +| | | | | | | | `-- lVal +| | | | | | | | `-- Ident: j +| | | | | | | `-- R_BRACK: ] +| | | | | | |-- DivOp: / +| | | | | | `-- unaryExp +| | | | | | |-- Ident: func +| | | | | | |-- L_PAREN: ( +| | | | | | |-- funcRParams +| | | | | | | |-- exp +| | | | | | | | `-- addExp +| | | | | | | | `-- mulExp +| | | | | | | | `-- unaryExp +| | | | | | | | `-- primary +| | | | | | | | `-- lVal +| | | | | | | | `-- Ident: j +| | | | | | | |-- Comma: , +| | | | | | | `-- exp +| | | | | | | `-- addExp +| | | | | | | `-- mulExp +| | | | | | | `-- unaryExp +| | | | | | | `-- primary +| | | | | | | `-- lVal +| | | | | | | `-- Ident: i +| | | | | | `-- R_PAREN: ) +| | | | | `-- Semi: ; +| | | | |-- blockItem +| | | | | `-- stmt +| | | | | |-- lVal +| | | | | | `-- Ident: j +| | | | | |-- Assign: = +| | | | | |-- exp +| | | | | | `-- addExp +| | | | | | |-- addExp +| | | | | | | `-- mulExp +| | | | | | | `-- unaryExp +| | | | | | | `-- primary +| | | | | | | `-- lVal +| | | | | | | `-- Ident: j +| | | | | | |-- AddOp: + +| | | | | | `-- mulExp +| | | | | | `-- unaryExp +| | | | | | `-- primary +| | | | | | `-- DECIMAL_INT: 1 +| | | | | `-- Semi: ; +| | | | `-- R_BRACE: } +| | | |-- blockItem +| | | | `-- stmt +| | | | |-- lVal +| | | | | |-- Ident: out +| | | | | |-- L_BRACK: [ +| | | | | |-- exp +| | | | | | `-- addExp +| | | | | | `-- mulExp +| | | | | | `-- unaryExp +| | | | | | `-- primary +| | | | | | `-- lVal +| | | | | | `-- Ident: i +| | | | | `-- R_BRACK: ] +| | | | |-- Assign: = +| | | | |-- exp +| | | | | `-- addExp +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- lVal +| | | | | `-- Ident: sum +| | | | `-- Semi: ; +| | | |-- blockItem +| | | | `-- stmt +| | | | |-- lVal +| | | | | `-- Ident: i +| | | | |-- Assign: = +| | | | |-- exp +| | | | | `-- addExp +| | | | | |-- addExp +| | | | | | `-- mulExp +| | | | | | `-- unaryExp +| | | | | | `-- primary +| | | | | | `-- lVal +| | | | | | `-- Ident: i +| | | | | |-- AddOp: + +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- DECIMAL_INT: 1 +| | | | `-- Semi: ; +| | | `-- R_BRACE: } +| | `-- R_BRACE: } +| |-- funcDef +| | |-- funcType +| | | `-- Void: void +| | |-- Ident: mult_combin +| | |-- L_PAREN: ( +| | |-- funcFParams +| | | |-- funcFParam +| | | | |-- bType +| | | | | `-- Float: float +| | | | |-- Ident: v +| | | | |-- L_BRACK: [ +| | | | `-- R_BRACK: ] +| | | |-- Comma: , +| | | |-- funcFParam +| | | | |-- bType +| | | | | `-- Float: float +| | | | |-- Ident: out +| | | | |-- L_BRACK: [ +| | | | `-- R_BRACK: ] +| | | |-- Comma: , +| | | |-- funcFParam +| | | | |-- bType +| | | | | `-- Int: int +| | | | `-- Ident: n +| | | |-- Comma: , +| | | `-- funcFParam +| | | |-- bType +| | | | `-- Float: float +| | | |-- Ident: tmp +| | | |-- L_BRACK: [ +| | | `-- R_BRACK: ] +| | |-- R_PAREN: ) +| | `-- block +| | |-- L_BRACE: { +| | |-- blockItem +| | | `-- stmt +| | | |-- exp +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | |-- Ident: mult1 +| | | | |-- L_PAREN: ( +| | | | |-- funcRParams +| | | | | |-- exp +| | | | | | `-- addExp +| | | | | | `-- mulExp +| | | | | | `-- unaryExp +| | | | | | `-- primary +| | | | | | `-- lVal +| | | | | | `-- Ident: v +| | | | | |-- Comma: , +| | | | | |-- exp +| | | | | | `-- addExp +| | | | | | `-- mulExp +| | | | | | `-- unaryExp +| | | | | | `-- primary +| | | | | | `-- lVal +| | | | | | `-- Ident: tmp +| | | | | |-- Comma: , +| | | | | `-- exp +| | | | | `-- addExp +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- lVal +| | | | | `-- Ident: n +| | | | `-- R_PAREN: ) +| | | `-- Semi: ; +| | |-- blockItem +| | | `-- stmt +| | | |-- exp +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | |-- Ident: mult2 +| | | | |-- L_PAREN: ( +| | | | |-- funcRParams +| | | | | |-- exp +| | | | | | `-- addExp +| | | | | | `-- mulExp +| | | | | | `-- unaryExp +| | | | | | `-- primary +| | | | | | `-- lVal +| | | | | | `-- Ident: tmp +| | | | | |-- Comma: , +| | | | | |-- exp +| | | | | | `-- addExp +| | | | | | `-- mulExp +| | | | | | `-- unaryExp +| | | | | | `-- primary +| | | | | | `-- lVal +| | | | | | `-- Ident: out +| | | | | |-- Comma: , +| | | | | `-- exp +| | | | | `-- addExp +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- lVal +| | | | | `-- Ident: n +| | | | `-- R_PAREN: ) +| | | `-- Semi: ; +| | `-- R_BRACE: } +| |-- decl +| | `-- varDecl +| | |-- bType +| | | `-- Float: float +| | |-- varDef +| | | |-- Ident: temp +| | | |-- Assign: = +| | | `-- initVal +| | | `-- exp +| | | `-- addExp +| | | `-- mulExp +| | | `-- unaryExp +| | | `-- primary +| | | `-- DECIMAL_INT: 1 +| | `-- Semi: ; +| |-- funcDef +| | |-- funcType +| | | `-- Float: float +| | |-- Ident: my_sqrt +| | |-- L_PAREN: ( +| | |-- funcFParams +| | | `-- funcFParam +| | | |-- bType +| | | | `-- Float: float +| | | `-- Ident: input +| | |-- R_PAREN: ) +| | `-- block +| | |-- L_BRACE: { +| | |-- blockItem +| | | `-- stmt +| | | |-- While: while +| | | |-- L_PAREN: ( +| | | |-- cond +| | | | `-- lOrExp +| | | | |-- lOrExp +| | | | | `-- lAndExp +| | | | | `-- eqExp +| | | | | `-- relExp +| | | | | |-- relExp +| | | | | | `-- addExp +| | | | | | |-- addExp +| | | | | | | `-- mulExp +| | | | | | | `-- unaryExp +| | | | | | | `-- primary +| | | | | | | `-- lVal +| | | | | | | `-- Ident: temp +| | | | | | |-- SubOp: - +| | | | | | `-- mulExp +| | | | | | |-- mulExp +| | | | | | | `-- unaryExp +| | | | | | | `-- primary +| | | | | | | `-- lVal +| | | | | | | `-- Ident: input +| | | | | | |-- DivOp: / +| | | | | | `-- unaryExp +| | | | | | `-- primary +| | | | | | `-- lVal +| | | | | | `-- Ident: temp +| | | | | |-- GOp: > +| | | | | `-- addExp +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- DEC_FLOAT: 1e-6 +| | | | |-- OrOp: || +| | | | `-- lAndExp +| | | | `-- eqExp +| | | | `-- relExp +| | | | |-- relExp +| | | | | `-- addExp +| | | | | |-- addExp +| | | | | | `-- mulExp +| | | | | | `-- unaryExp +| | | | | | `-- primary +| | | | | | `-- lVal +| | | | | | `-- Ident: temp +| | | | | |-- SubOp: - +| | | | | `-- mulExp +| | | | | |-- mulExp +| | | | | | `-- unaryExp +| | | | | | `-- primary +| | | | | | `-- lVal +| | | | | | `-- Ident: input +| | | | | |-- DivOp: / +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- lVal +| | | | | `-- Ident: temp +| | | | |-- LOp: < +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | |-- unaryOp +| | | | | `-- SubOp: - +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- DEC_FLOAT: 1e-6 +| | | |-- R_PAREN: ) +| | | `-- stmt +| | | `-- block +| | | |-- L_BRACE: { +| | | |-- blockItem +| | | | `-- stmt +| | | | |-- lVal +| | | | | `-- Ident: temp +| | | | |-- Assign: = +| | | | |-- exp +| | | | | `-- addExp +| | | | | `-- mulExp +| | | | | |-- mulExp +| | | | | | `-- unaryExp +| | | | | | `-- primary +| | | | | | |-- L_PAREN: ( +| | | | | | |-- exp +| | | | | | | `-- addExp +| | | | | | | |-- addExp +| | | | | | | | `-- mulExp +| | | | | | | | `-- unaryExp +| | | | | | | | `-- primary +| | | | | | | | `-- lVal +| | | | | | | | `-- Ident: temp +| | | | | | | |-- AddOp: + +| | | | | | | `-- mulExp +| | | | | | | |-- mulExp +| | | | | | | | `-- unaryExp +| | | | | | | | `-- primary +| | | | | | | | `-- lVal +| | | | | | | | `-- Ident: input +| | | | | | | |-- DivOp: / +| | | | | | | `-- unaryExp +| | | | | | | `-- primary +| | | | | | | `-- lVal +| | | | | | | `-- Ident: temp +| | | | | | `-- R_PAREN: ) +| | | | | |-- DivOp: / +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- DECIMAL_INT: 2 +| | | | `-- Semi: ; +| | | `-- R_BRACE: } +| | |-- blockItem +| | | `-- stmt +| | | `-- returnStmt +| | | |-- Return: return +| | | |-- exp +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- lVal +| | | | `-- Ident: temp +| | | `-- Semi: ; +| | `-- R_BRACE: } +| `-- funcDef +| |-- funcType +| | `-- Int: int +| |-- Ident: main +| |-- L_PAREN: ( +| |-- R_PAREN: ) +| `-- block +| |-- L_BRACE: { +| |-- blockItem +| | `-- decl +| | `-- varDecl +| | |-- bType +| | | `-- Int: int +| | |-- varDef +| | | |-- Ident: n +| | | |-- Assign: = +| | | `-- initVal +| | | `-- exp +| | | `-- addExp +| | | `-- mulExp +| | | `-- unaryExp +| | | `-- primary +| | | `-- DECIMAL_INT: 100000 +| | `-- Semi: ; +| |-- blockItem +| | `-- stmt +| | |-- If: if +| | |-- L_PAREN: ( +| | |-- cond +| | | `-- lOrExp +| | | `-- lAndExp +| | | `-- eqExp +| | | `-- relExp +| | | |-- relExp +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- lVal +| | | | `-- Ident: n +| | | |-- LeOp: <= +| | | `-- addExp +| | | `-- mulExp +| | | `-- unaryExp +| | | `-- primary +| | | `-- OCTAL_INT: 0 +| | |-- R_PAREN: ) +| | `-- stmt +| | `-- block +| | |-- L_BRACE: { +| | |-- blockItem +| | | `-- stmt +| | | |-- lVal +| | | | `-- Ident: n +| | | |-- Assign: = +| | | |-- exp +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- DECIMAL_INT: 2000 +| | | `-- Semi: ; +| | `-- R_BRACE: } +| |-- blockItem +| | `-- stmt +| | |-- exp +| | | `-- addExp +| | | `-- mulExp +| | | `-- unaryExp +| | | |-- Ident: starttime +| | | |-- L_PAREN: ( +| | | `-- R_PAREN: ) +| | `-- Semi: ; +| |-- blockItem +| | `-- decl +| | `-- varDecl +| | |-- bType +| | | `-- Float: float +| | |-- varDef +| | | |-- Ident: vectorA +| | | |-- L_BRACK: [ +| | | |-- constExp +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- DECIMAL_INT: 100000 +| | | `-- R_BRACK: ] +| | |-- Comma: , +| | |-- varDef +| | | |-- Ident: vectorB +| | | |-- L_BRACK: [ +| | | |-- constExp +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- DECIMAL_INT: 100000 +| | | `-- R_BRACK: ] +| | |-- Comma: , +| | |-- varDef +| | | |-- Ident: Vectortmp +| | | |-- L_BRACK: [ +| | | |-- constExp +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- DECIMAL_INT: 100000 +| | | `-- R_BRACK: ] +| | `-- Semi: ; +| |-- blockItem +| | `-- decl +| | `-- varDecl +| | |-- bType +| | | `-- Int: int +| | |-- varDef +| | | `-- Ident: i +| | `-- Semi: ; +| |-- blockItem +| | `-- stmt +| | |-- While: while +| | |-- L_PAREN: ( +| | |-- cond +| | | `-- lOrExp +| | | `-- lAndExp +| | | `-- eqExp +| | | `-- relExp +| | | |-- relExp +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- lVal +| | | | `-- Ident: i +| | | |-- LOp: < +| | | `-- addExp +| | | `-- mulExp +| | | `-- unaryExp +| | | `-- primary +| | | `-- lVal +| | | `-- Ident: n +| | |-- R_PAREN: ) +| | `-- stmt +| | `-- block +| | |-- L_BRACE: { +| | |-- blockItem +| | | `-- stmt +| | | |-- lVal +| | | | |-- Ident: vectorA +| | | | |-- L_BRACK: [ +| | | | |-- exp +| | | | | `-- addExp +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- lVal +| | | | | `-- Ident: i +| | | | `-- R_BRACK: ] +| | | |-- Assign: = +| | | |-- exp +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- DECIMAL_INT: 1 +| | | `-- Semi: ; +| | |-- blockItem +| | | `-- stmt +| | | |-- lVal +| | | | `-- Ident: i +| | | |-- Assign: = +| | | |-- exp +| | | | `-- addExp +| | | | |-- addExp +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- lVal +| | | | | `-- Ident: i +| | | | |-- AddOp: + +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- DECIMAL_INT: 1 +| | | `-- Semi: ; +| | `-- R_BRACE: } +| |-- blockItem +| | `-- stmt +| | |-- lVal +| | | `-- Ident: i +| | |-- Assign: = +| | |-- exp +| | | `-- addExp +| | | `-- mulExp +| | | `-- unaryExp +| | | `-- primary +| | | `-- OCTAL_INT: 0 +| | `-- Semi: ; +| |-- blockItem +| | `-- stmt +| | |-- While: while +| | |-- L_PAREN: ( +| | |-- cond +| | | `-- lOrExp +| | | `-- lAndExp +| | | `-- eqExp +| | | `-- relExp +| | | |-- relExp +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- lVal +| | | | `-- Ident: i +| | | |-- LOp: < +| | | `-- addExp +| | | `-- mulExp +| | | `-- unaryExp +| | | `-- primary +| | | `-- DECIMAL_INT: 1000 +| | |-- R_PAREN: ) +| | `-- stmt +| | `-- block +| | |-- L_BRACE: { +| | |-- blockItem +| | | `-- stmt +| | | |-- exp +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | |-- Ident: mult_combin +| | | | |-- L_PAREN: ( +| | | | |-- funcRParams +| | | | | |-- exp +| | | | | | `-- addExp +| | | | | | `-- mulExp +| | | | | | `-- unaryExp +| | | | | | `-- primary +| | | | | | `-- lVal +| | | | | | `-- Ident: vectorA +| | | | | |-- Comma: , +| | | | | |-- exp +| | | | | | `-- addExp +| | | | | | `-- mulExp +| | | | | | `-- unaryExp +| | | | | | `-- primary +| | | | | | `-- lVal +| | | | | | `-- Ident: vectorB +| | | | | |-- Comma: , +| | | | | |-- exp +| | | | | | `-- addExp +| | | | | | `-- mulExp +| | | | | | `-- unaryExp +| | | | | | `-- primary +| | | | | | `-- lVal +| | | | | | `-- Ident: n +| | | | | |-- Comma: , +| | | | | `-- exp +| | | | | `-- addExp +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- lVal +| | | | | `-- Ident: Vectortmp +| | | | `-- R_PAREN: ) +| | | `-- Semi: ; +| | |-- blockItem +| | | `-- stmt +| | | |-- exp +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | |-- Ident: mult_combin +| | | | |-- L_PAREN: ( +| | | | |-- funcRParams +| | | | | |-- exp +| | | | | | `-- addExp +| | | | | | `-- mulExp +| | | | | | `-- unaryExp +| | | | | | `-- primary +| | | | | | `-- lVal +| | | | | | `-- Ident: vectorB +| | | | | |-- Comma: , +| | | | | |-- exp +| | | | | | `-- addExp +| | | | | | `-- mulExp +| | | | | | `-- unaryExp +| | | | | | `-- primary +| | | | | | `-- lVal +| | | | | | `-- Ident: vectorA +| | | | | |-- Comma: , +| | | | | |-- exp +| | | | | | `-- addExp +| | | | | | `-- mulExp +| | | | | | `-- unaryExp +| | | | | | `-- primary +| | | | | | `-- lVal +| | | | | | `-- Ident: n +| | | | | |-- Comma: , +| | | | | `-- exp +| | | | | `-- addExp +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- lVal +| | | | | `-- Ident: Vectortmp +| | | | `-- R_PAREN: ) +| | | `-- Semi: ; +| | |-- blockItem +| | | `-- stmt +| | | |-- lVal +| | | | `-- Ident: i +| | | |-- Assign: = +| | | |-- exp +| | | | `-- addExp +| | | | |-- addExp +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- lVal +| | | | | `-- Ident: i +| | | | |-- AddOp: + +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- DECIMAL_INT: 1 +| | | `-- Semi: ; +| | `-- R_BRACE: } +| |-- blockItem +| | `-- stmt +| | |-- exp +| | | `-- addExp +| | | `-- mulExp +| | | `-- unaryExp +| | | |-- Ident: stoptime +| | | |-- L_PAREN: ( +| | | `-- R_PAREN: ) +| | `-- Semi: ; +| |-- blockItem +| | `-- decl +| | `-- varDecl +| | |-- bType +| | | `-- Float: float +| | |-- varDef +| | | |-- Ident: result +| | | |-- Assign: = +| | | `-- initVal +| | | `-- exp +| | | `-- addExp +| | | `-- mulExp +| | | `-- unaryExp +| | | |-- Ident: my_sqrt +| | | |-- L_PAREN: ( +| | | |-- funcRParams +| | | | `-- exp +| | | | `-- addExp +| | | | `-- mulExp +| | | | |-- mulExp +| | | | | `-- unaryExp +| | | | | |-- Ident: Vectordot +| | | | | |-- L_PAREN: ( +| | | | | |-- funcRParams +| | | | | | |-- exp +| | | | | | | `-- addExp +| | | | | | | `-- mulExp +| | | | | | | `-- unaryExp +| | | | | | | `-- primary +| | | | | | | `-- lVal +| | | | | | | `-- Ident: vectorA +| | | | | | |-- Comma: , +| | | | | | |-- exp +| | | | | | | `-- addExp +| | | | | | | `-- mulExp +| | | | | | | `-- unaryExp +| | | | | | | `-- primary +| | | | | | | `-- lVal +| | | | | | | `-- Ident: vectorB +| | | | | | |-- Comma: , +| | | | | | `-- exp +| | | | | | `-- addExp +| | | | | | `-- mulExp +| | | | | | `-- unaryExp +| | | | | | `-- primary +| | | | | | `-- lVal +| | | | | | `-- Ident: n +| | | | | `-- R_PAREN: ) +| | | | |-- DivOp: / +| | | | `-- unaryExp +| | | | |-- Ident: Vectordot +| | | | |-- L_PAREN: ( +| | | | |-- funcRParams +| | | | | |-- exp +| | | | | | `-- addExp +| | | | | | `-- mulExp +| | | | | | `-- unaryExp +| | | | | | `-- primary +| | | | | | `-- lVal +| | | | | | `-- Ident: vectorB +| | | | | |-- Comma: , +| | | | | |-- exp +| | | | | | `-- addExp +| | | | | | `-- mulExp +| | | | | | `-- unaryExp +| | | | | | `-- primary +| | | | | | `-- lVal +| | | | | | `-- Ident: vectorB +| | | | | |-- Comma: , +| | | | | `-- exp +| | | | | `-- addExp +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- lVal +| | | | | `-- Ident: n +| | | | `-- R_PAREN: ) +| | | `-- R_PAREN: ) +| | `-- Semi: ; +| |-- blockItem +| | `-- stmt +| | |-- If: if +| | |-- L_PAREN: ( +| | |-- cond +| | | `-- lOrExp +| | | `-- lAndExp +| | | |-- lAndExp +| | | | `-- eqExp +| | | | `-- relExp +| | | | |-- relExp +| | | | | `-- addExp +| | | | | |-- addExp +| | | | | | `-- mulExp +| | | | | | `-- unaryExp +| | | | | | `-- primary +| | | | | | `-- lVal +| | | | | | `-- Ident: result +| | | | | |-- SubOp: - +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- DEC_FLOAT: 1.000000 +| | | | |-- LeOp: <= +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- DEC_FLOAT: 1e-6 +| | | |-- AndOp: && +| | | `-- eqExp +| | | `-- relExp +| | | |-- relExp +| | | | `-- addExp +| | | | |-- addExp +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- lVal +| | | | | `-- Ident: result +| | | | |-- SubOp: - +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- DEC_FLOAT: 1.000000 +| | | |-- GeOp: >= +| | | `-- addExp +| | | `-- mulExp +| | | `-- unaryExp +| | | |-- unaryOp +| | | | `-- SubOp: - +| | | `-- unaryExp +| | | `-- primary +| | | `-- DEC_FLOAT: 1e-6 +| | |-- R_PAREN: ) +| | |-- stmt +| | | `-- block +| | | |-- L_BRACE: { +| | | |-- blockItem +| | | | `-- stmt +| | | | |-- exp +| | | | | `-- addExp +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | |-- Ident: putint +| | | | | |-- L_PAREN: ( +| | | | | |-- funcRParams +| | | | | | `-- exp +| | | | | | `-- addExp +| | | | | | `-- mulExp +| | | | | | `-- unaryExp +| | | | | | `-- primary +| | | | | | `-- DECIMAL_INT: 1 +| | | | | `-- R_PAREN: ) +| | | | `-- Semi: ; +| | | `-- R_BRACE: } +| | |-- Else: else +| | `-- stmt +| | `-- block +| | |-- L_BRACE: { +| | |-- blockItem +| | | `-- stmt +| | | |-- exp +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | |-- Ident: putint +| | | | |-- L_PAREN: ( +| | | | |-- funcRParams +| | | | | `-- exp +| | | | | `-- addExp +| | | | | `-- mulExp +| | | | | `-- unaryExp +| | | | | `-- primary +| | | | | `-- OCTAL_INT: 0 +| | | | `-- R_PAREN: ) +| | | `-- Semi: ; +| | `-- R_BRACE: } +| |-- blockItem +| | `-- stmt +| | |-- exp +| | | `-- addExp +| | | `-- mulExp +| | | `-- unaryExp +| | | |-- Ident: putch +| | | |-- L_PAREN: ( +| | | |-- funcRParams +| | | | `-- exp +| | | | `-- addExp +| | | | `-- mulExp +| | | | `-- unaryExp +| | | | `-- primary +| | | | `-- DECIMAL_INT: 10 +| | | `-- R_PAREN: ) +| | `-- Semi: ; +| |-- blockItem +| | `-- stmt +| | `-- returnStmt +| | |-- Return: return +| | |-- exp +| | | `-- addExp +| | | `-- mulExp +| | | `-- unaryExp +| | | `-- primary +| | | `-- OCTAL_INT: 0 +| | `-- Semi: ; +| `-- R_BRACE: } +`-- EOF: + diff --git a/run.sh b/run.sh new file mode 100755 index 0000000..e00da4e --- /dev/null +++ b/run.sh @@ -0,0 +1,96 @@ +#!/bin/bash + +# 测试脚本 +# 用法: ./run_tests.sh [--verbose] [<单个测试文件>] + +COMPILER="./build/bin/compiler" +TEST_DIR="test/test_case" +RESULT_FILE="result.txt" +VERBOSE=0 + +# 解析参数 +if [[ "$1" == "--verbose" ]]; then + VERBOSE=1 + shift +fi + +# 检查编译器是否存在 +if [ ! -f "$COMPILER" ]; then + echo "错误: 编译器未找到于 $COMPILER" + echo "请先完成项目构建 (cmake 和 make)" + exit 1 +fi + +# 如果指定了单个文件,检查文件是否存在 +if [ -n "$1" ] && [ ! -f "$1" ]; then + echo "错误: 文件 $1 不存在" + exit 1 +fi + +# 清空(或创建)结果文件 +> "$RESULT_FILE" + +# 计数器 +total=0 +passed=0 +failed=0 + +echo "开始测试 SysY 解析..." +echo "输出将保存到 $RESULT_FILE" +echo "------------------------" + +# 确定测试文件列表 +if [ -n "$1" ]; then + # 使用提供的单个文件 + TEST_FILES=("$1") +else + # 收集所有 .sy 文件 + mapfile -t TEST_FILES < <(find "$TEST_DIR" -type f -name "*.sy" | sort) +fi + +for file in "${TEST_FILES[@]}"; do + ((total++)) + if [ $VERBOSE -eq 1 ]; then + echo "测试文件: $file" + else + echo -n "测试 $file ... " + fi + + echo "========== $file ==========" >> "$RESULT_FILE" + + if [ $VERBOSE -eq 1 ]; then + "$COMPILER" --emit-parse-tree "$file" 2>&1 | tee -a "$RESULT_FILE" + result=${PIPESTATUS[0]} + else + "$COMPILER" --emit-parse-tree "$file" >> "$RESULT_FILE" 2>&1 + result=$? + fi + + echo "" >> "$RESULT_FILE" + + if [ $result -eq 0 ]; then + if [ $VERBOSE -eq 0 ]; then + echo "通过" + fi + ((passed++)) + else + if [ $VERBOSE -eq 0 ]; then + echo "失败" + else + echo ">>> 解析失败: $file" + fi + ((failed++)) + fi +done + +echo "------------------------" +echo "总计: $total" +echo "通过: $passed" +echo "失败: $failed" +echo "详细输出已保存至 $RESULT_FILE" + +if [ $failed -gt 0 ]; then + exit 1 +else + exit 0 +fi \ No newline at end of file diff --git a/src/antlr4/SysY.g4 b/src/antlr4/SysY.g4 index 263aeef..a426ea2 100644 --- a/src/antlr4/SysY.g4 +++ b/src/antlr4/SysY.g4 @@ -1,68 +1,162 @@ -// SysY 子集语法:支持形如 -// int main() { int a = 1; int b = 2; return a + b; } -// 的最小返回表达式编译。 +// SysY 子集语法 +grammar SysY; -// 后续需要自行添加 +//----词法规则(优先级从高到低)----// +//keywords +Void : 'void'; +Int : 'int'; +Float : 'float'; +Const : 'const'; +If : 'if'; +Else : 'else'; +While : 'while'; +Break : 'break'; +Continue: 'continue'; +Return : 'return'; -grammar SysY; +//Two-character operator (long preferred) +LeOp : '<='; +GeOp : '>='; +EqOp : '=='; +NeOp : '!='; +AndOp : '&&'; +OrOp : '||'; + +//single character operators +AddOp : '+'; +SubOp : '-'; +MulOp : '*'; +DivOp : '/'; +QuoOp : '%'; +NotOp : '!'; +LOp : '<'; +GOp : '>'; +Assign : '='; -/*===-------------------------------------------===*/ -/* Lexer rules */ -/*===-------------------------------------------===*/ +//Separator +Semi : ';'; +Comma : ','; +L_PAREN : '('; +R_PAREN : ')'; +L_BRACK : '['; +R_BRACK : ']'; +L_BRACE : '{'; +R_BRACE : '}'; -INT: 'int'; -RETURN: 'return'; +//const numeric classes +//Number... change +// float first +// 16进制float first +HEX_FLOAT + : '0' [xX]( + // 形式1: 0x1.921fb6p+1 (有小数点和指数) + HEX_DIGIT* '.' HEX_DIGIT+ [pP] [+-]? DECIMAL_DIGIT+ + | // 形式2: 0x1p+1 (没有小数点,只有指数) + HEX_DIGIT+ [pP] [+-]? DECIMAL_DIGIT+ + | // 形式3: 0x.AP-3 (小数点开头) + '.' HEX_DIGIT+ [pP] [+-]? DECIMAL_DIGIT+ + ) + ; +fragment HEX_DIGIT: [0-9a-fA-F]; +fragment DECIMAL_DIGIT: [0-9]; -ASSIGN: '='; -ADD: '+'; +// 10进制float +DEC_FLOAT + : [0-9]+ '.' [0-9]* EXP? //1.2/1./1.2e10/... + | '.' [0-9]+ EXP? //.1/.1e2 + | [0-9]+ EXP //1e2/1e-2 + ; +fragment EXP: [eE] [+-]? [0-9]+; -LPAREN: '('; -RPAREN: ')'; -LBRACE: '{'; -RBRACE: '}'; -SEMICOLON: ';'; +HEX_INT: '0' [xX] [0-9a-fA-F]+; //16进制 +OCTAL_INT: '0' [0-7]*; //8进制 +DECIMAL_INT: [1-9][0-9]*; //10进制 +ZERO: '0'; //单独0 + +// 标识符(放最后) +Ident + : [a-zA-Z_][a-zA-Z_0-9]* + ; -ID: [a-zA-Z_][a-zA-Z_0-9]*; -ILITERAL: [0-9]+; +// 注释和空白 +WS + : [ \t\r\n]+ -> skip + ; -WS: [ \t\r\n] -> skip; -LINECOMMENT: '//' ~[\r\n]* -> skip; -BLOCKCOMMENT: '/*' .*? '*/' -> skip; +COMMENT + : '//' ~[\r\n]* -> skip + ; -/*===-------------------------------------------===*/ -/* Syntax rules */ -/*===-------------------------------------------===*/ +BLOCK_COMMENT + : '/*' .*? '*/' -> skip + ; +//----语法规则----// compUnit - : funcDef EOF + : (funcDef|decl|program) EOF + ; + +program + : (decl|funcDef)+ ; decl - : btype varDef SEMICOLON + : varDecl + | constDecl ; -btype - : INT +constDecl + : Const bType constDef (Comma constDef)* Semi + ; + +bType + : Int + | Float + ; + +constDef + : Ident (L_BRACK constExp R_BRACK)* Assign constInitVal + ; + +constInitVal + : constExp + | L_BRACE (constInitVal (Comma constInitVal)*)? R_BRACE + ; + +varDecl + : bType varDef (Comma varDef)* Semi + | Int Ident (Assign exp)? Semi ; varDef - : lValue (ASSIGN initValue)? + : Ident (L_BRACK constExp R_BRACK)* (Assign initVal)? ; -initValue +initVal : exp + | L_BRACE (initVal (Comma initVal)*)? R_BRACE ; funcDef - : funcType ID LPAREN RPAREN blockStmt + : funcType Ident L_PAREN (funcFParams)? R_PAREN block ; funcType - : INT + : Void + | Int + | Float + ; + +funcFParams + : funcFParam (Comma funcFParam)* + ; + +funcFParam + : bType Ident (L_BRACK R_BRACK (L_BRACK exp R_BRACK)*)? ; -blockStmt - : LBRACE blockItem* RBRACE +block + : L_BRACE (blockItem)* R_BRACE ; blockItem @@ -71,28 +165,93 @@ blockItem ; stmt - : returnStmt + : lVal Assign exp Semi + | (exp)? Semi + | block + | If L_PAREN cond R_PAREN stmt (Else stmt)? + | While L_PAREN cond R_PAREN stmt + | Break Semi + | Continue Semi + | returnStmt ; returnStmt - : RETURN exp SEMICOLON + : Return (exp)? Semi ; exp - : LPAREN exp RPAREN # parenExp - | var # varExp - | number # numberExp - | exp ADD exp # additiveExp + : addExp ; -var - : ID +cond + : lOrExp ; -lValue - : ID +lVal + : Ident (L_BRACK exp R_BRACK)* ; -number - : ILITERAL +primary + : L_PAREN exp R_PAREN + | lVal + | HEX_FLOAT + | DEC_FLOAT + | HEX_INT + | OCTAL_INT + | DECIMAL_INT + | ZERO + | Ident ; + +unaryExp + : primary + | Ident L_PAREN (funcRParams)? R_PAREN + | unaryOp unaryExp + ; + +unaryOp + : AddOp + | SubOp + | NotOp + ; + +funcRParams + : exp (Comma exp)* + ; + +mulExp + : unaryExp + | mulExp (MulOp|DivOp|QuoOp) unaryExp + ; + +addExp + : mulExp + | addExp (AddOp|SubOp) mulExp + | primary (AddOp primary)* + ; + +relExp + : addExp + | relExp (LOp|GOp|LeOp|GeOp) addExp + ; + +eqExp + : relExp + | eqExp (EqOp|NeOp) relExp + ; + +lAndExp + : eqExp + | lAndExp AndOp eqExp + ; + +lOrExp + : lAndExp + | lOrExp OrOp lAndExp + ; + +constExp + : addExp + ; + + -- 2.34.1