forked from NUDT-compiler/nudt-compiler-cpp
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
1556 lines
60 KiB
1556 lines
60 KiB
compUnit
|
|
|-- decl
|
|
| `-- varDecl
|
|
| |-- bType
|
|
| | `-- Int: int
|
|
| |-- varDef
|
|
| | `-- Ident: n
|
|
| `-- Semi: ;
|
|
|-- funcDef
|
|
| |-- funcType
|
|
| | `-- Int: int
|
|
| |-- Ident: main
|
|
| |-- L_PAREN: (
|
|
| |-- R_PAREN: )
|
|
| `-- block
|
|
| |-- L_BRACE: {
|
|
| |-- blockItem
|
|
| | `-- decl
|
|
| | `-- varDecl
|
|
| | |-- bType
|
|
| | | `-- Int: int
|
|
| | |-- varDef
|
|
| | | `-- Ident: a0
|
|
| | `-- Semi: ;
|
|
| |-- blockItem
|
|
| | `-- decl
|
|
| | `-- varDecl
|
|
| | |-- bType
|
|
| | | `-- Int: int
|
|
| | |-- varDef
|
|
| | | `-- Ident: a1
|
|
| | `-- Semi: ;
|
|
| |-- blockItem
|
|
| | `-- decl
|
|
| | `-- varDecl
|
|
| | |-- bType
|
|
| | | `-- Int: int
|
|
| | |-- varDef
|
|
| | | `-- Ident: a2
|
|
| | `-- Semi: ;
|
|
| |-- blockItem
|
|
| | `-- decl
|
|
| | `-- varDecl
|
|
| | |-- bType
|
|
| | | `-- Int: int
|
|
| | |-- varDef
|
|
| | | `-- Ident: a3
|
|
| | `-- Semi: ;
|
|
| |-- blockItem
|
|
| | `-- decl
|
|
| | `-- varDecl
|
|
| | |-- bType
|
|
| | | `-- Int: int
|
|
| | |-- varDef
|
|
| | | `-- Ident: a4
|
|
| | `-- Semi: ;
|
|
| |-- blockItem
|
|
| | `-- decl
|
|
| | `-- varDecl
|
|
| | |-- bType
|
|
| | | `-- Int: int
|
|
| | |-- varDef
|
|
| | | `-- Ident: a5
|
|
| | `-- Semi: ;
|
|
| |-- blockItem
|
|
| | `-- decl
|
|
| | `-- varDecl
|
|
| | |-- bType
|
|
| | | `-- Int: int
|
|
| | |-- varDef
|
|
| | | `-- Ident: a6
|
|
| | `-- Semi: ;
|
|
| |-- blockItem
|
|
| | `-- decl
|
|
| | `-- varDecl
|
|
| | |-- bType
|
|
| | | `-- Int: int
|
|
| | |-- varDef
|
|
| | | `-- Ident: a7
|
|
| | `-- Semi: ;
|
|
| |-- blockItem
|
|
| | `-- decl
|
|
| | `-- varDecl
|
|
| | |-- bType
|
|
| | | `-- Int: int
|
|
| | |-- varDef
|
|
| | | `-- Ident: a8
|
|
| | `-- Semi: ;
|
|
| |-- blockItem
|
|
| | `-- decl
|
|
| | `-- varDecl
|
|
| | |-- bType
|
|
| | | `-- Int: int
|
|
| | |-- varDef
|
|
| | | `-- Ident: a9
|
|
| | `-- Semi: ;
|
|
| |-- blockItem
|
|
| | `-- decl
|
|
| | `-- varDecl
|
|
| | |-- bType
|
|
| | | `-- Int: int
|
|
| | |-- varDef
|
|
| | | `-- Ident: a10
|
|
| | `-- Semi: ;
|
|
| |-- blockItem
|
|
| | `-- decl
|
|
| | `-- varDecl
|
|
| | |-- bType
|
|
| | | `-- Int: int
|
|
| | |-- varDef
|
|
| | | `-- Ident: a11
|
|
| | `-- Semi: ;
|
|
| |-- blockItem
|
|
| | `-- decl
|
|
| | `-- varDecl
|
|
| | |-- bType
|
|
| | | `-- Int: int
|
|
| | |-- varDef
|
|
| | | `-- Ident: a12
|
|
| | `-- Semi: ;
|
|
| |-- blockItem
|
|
| | `-- decl
|
|
| | `-- varDecl
|
|
| | |-- bType
|
|
| | | `-- Int: int
|
|
| | |-- varDef
|
|
| | | `-- Ident: a13
|
|
| | `-- Semi: ;
|
|
| |-- blockItem
|
|
| | `-- decl
|
|
| | `-- varDecl
|
|
| | |-- bType
|
|
| | | `-- Int: int
|
|
| | |-- varDef
|
|
| | | `-- Ident: a14
|
|
| | `-- Semi: ;
|
|
| |-- blockItem
|
|
| | `-- decl
|
|
| | `-- varDecl
|
|
| | |-- bType
|
|
| | | `-- Int: int
|
|
| | |-- varDef
|
|
| | | `-- Ident: a15
|
|
| | `-- Semi: ;
|
|
| |-- blockItem
|
|
| | `-- decl
|
|
| | `-- varDecl
|
|
| | |-- bType
|
|
| | | `-- Int: int
|
|
| | |-- varDef
|
|
| | | `-- Ident: a16
|
|
| | `-- Semi: ;
|
|
| |-- blockItem
|
|
| | `-- decl
|
|
| | `-- varDecl
|
|
| | |-- bType
|
|
| | | `-- Int: int
|
|
| | |-- varDef
|
|
| | | `-- Ident: a17
|
|
| | `-- Semi: ;
|
|
| |-- blockItem
|
|
| | `-- decl
|
|
| | `-- varDecl
|
|
| | |-- bType
|
|
| | | `-- Int: int
|
|
| | |-- varDef
|
|
| | | `-- Ident: a18
|
|
| | `-- Semi: ;
|
|
| |-- blockItem
|
|
| | `-- decl
|
|
| | `-- varDecl
|
|
| | |-- bType
|
|
| | | `-- Int: int
|
|
| | |-- varDef
|
|
| | | `-- Ident: a19
|
|
| | `-- Semi: ;
|
|
| |-- blockItem
|
|
| | `-- decl
|
|
| | `-- varDecl
|
|
| | |-- bType
|
|
| | | `-- Int: int
|
|
| | |-- varDef
|
|
| | | `-- Ident: a20
|
|
| | `-- Semi: ;
|
|
| |-- blockItem
|
|
| | `-- decl
|
|
| | `-- varDecl
|
|
| | |-- bType
|
|
| | | `-- Int: int
|
|
| | |-- varDef
|
|
| | | `-- Ident: a21
|
|
| | `-- Semi: ;
|
|
| |-- blockItem
|
|
| | `-- decl
|
|
| | `-- varDecl
|
|
| | |-- bType
|
|
| | | `-- Int: int
|
|
| | |-- varDef
|
|
| | | `-- Ident: a22
|
|
| | `-- Semi: ;
|
|
| |-- blockItem
|
|
| | `-- decl
|
|
| | `-- varDecl
|
|
| | |-- bType
|
|
| | | `-- Int: int
|
|
| | |-- varDef
|
|
| | | `-- Ident: a23
|
|
| | `-- Semi: ;
|
|
| |-- blockItem
|
|
| | `-- decl
|
|
| | `-- varDecl
|
|
| | |-- bType
|
|
| | | `-- Int: int
|
|
| | |-- varDef
|
|
| | | `-- Ident: a24
|
|
| | `-- Semi: ;
|
|
| |-- blockItem
|
|
| | `-- decl
|
|
| | `-- varDecl
|
|
| | |-- bType
|
|
| | | `-- Int: int
|
|
| | |-- varDef
|
|
| | | `-- Ident: a25
|
|
| | `-- Semi: ;
|
|
| |-- blockItem
|
|
| | `-- decl
|
|
| | `-- varDecl
|
|
| | |-- bType
|
|
| | | `-- Int: int
|
|
| | |-- varDef
|
|
| | | `-- Ident: a26
|
|
| | `-- Semi: ;
|
|
| |-- blockItem
|
|
| | `-- decl
|
|
| | `-- varDecl
|
|
| | |-- bType
|
|
| | | `-- Int: int
|
|
| | |-- varDef
|
|
| | | `-- Ident: a27
|
|
| | `-- Semi: ;
|
|
| |-- blockItem
|
|
| | `-- decl
|
|
| | `-- varDecl
|
|
| | |-- bType
|
|
| | | `-- Int: int
|
|
| | |-- varDef
|
|
| | | `-- Ident: a28
|
|
| | `-- Semi: ;
|
|
| |-- blockItem
|
|
| | `-- decl
|
|
| | `-- varDecl
|
|
| | |-- bType
|
|
| | | `-- Int: int
|
|
| | |-- varDef
|
|
| | | `-- Ident: a29
|
|
| | `-- Semi: ;
|
|
| |-- blockItem
|
|
| | `-- decl
|
|
| | `-- varDecl
|
|
| | |-- bType
|
|
| | | `-- Int: int
|
|
| | |-- varDef
|
|
| | | `-- Ident: b
|
|
| | `-- Semi: ;
|
|
| |-- blockItem
|
|
| | `-- stmt
|
|
| | |-- lVal
|
|
| | | `-- Ident: b
|
|
| | |-- Assign: =
|
|
| | |-- exp
|
|
| | | `-- addExp
|
|
| | | `-- mulExp
|
|
| | | `-- unaryExp
|
|
| | | |-- Ident: getint
|
|
| | | |-- L_PAREN: (
|
|
| | | `-- R_PAREN: )
|
|
| | `-- Semi: ;
|
|
| |-- blockItem
|
|
| | `-- stmt
|
|
| | |-- While: while
|
|
| | |-- L_PAREN: (
|
|
| | |-- cond
|
|
| | | `-- lOrExp
|
|
| | | `-- lAndExp
|
|
| | | `-- eqExp
|
|
| | | |-- eqExp
|
|
| | | | `-- relExp
|
|
| | | | `-- addExp
|
|
| | | | `-- mulExp
|
|
| | | | `-- unaryExp
|
|
| | | | `-- primaryExp
|
|
| | | | `-- lVal
|
|
| | | | `-- Ident: b
|
|
| | | |-- EqOp: ==
|
|
| | | `-- relExp
|
|
| | | `-- addExp
|
|
| | | `-- mulExp
|
|
| | | `-- unaryExp
|
|
| | | `-- primaryExp
|
|
| | | `-- number
|
|
| | | `-- IntConst: 5
|
|
| | |-- R_PAREN: )
|
|
| | `-- stmt
|
|
| | `-- block
|
|
| | |-- L_BRACE: {
|
|
| | |-- blockItem
|
|
| | | `-- stmt
|
|
| | | |-- lVal
|
|
| | | | `-- Ident: b
|
|
| | | |-- Assign: =
|
|
| | | |-- exp
|
|
| | | | `-- addExp
|
|
| | | | |-- addExp
|
|
| | | | | `-- mulExp
|
|
| | | | | `-- unaryExp
|
|
| | | | | `-- primaryExp
|
|
| | | | | `-- lVal
|
|
| | | | | `-- Ident: b
|
|
| | | | |-- AddOp: +
|
|
| | | | `-- mulExp
|
|
| | | | `-- unaryExp
|
|
| | | | `-- primaryExp
|
|
| | | | `-- number
|
|
| | | | `-- IntConst: 1
|
|
| | | `-- Semi: ;
|
|
| | `-- R_BRACE: }
|
|
| |-- blockItem
|
|
| | `-- stmt
|
|
| | |-- lVal
|
|
| | | `-- Ident: a0
|
|
| | |-- Assign: =
|
|
| | |-- exp
|
|
| | | `-- addExp
|
|
| | | `-- mulExp
|
|
| | | `-- unaryExp
|
|
| | | `-- primaryExp
|
|
| | | `-- number
|
|
| | | `-- IntConst: 0
|
|
| | `-- Semi: ;
|
|
| |-- blockItem
|
|
| | `-- stmt
|
|
| | |-- lVal
|
|
| | | `-- Ident: a1
|
|
| | |-- Assign: =
|
|
| | |-- exp
|
|
| | | `-- addExp
|
|
| | | |-- addExp
|
|
| | | | `-- mulExp
|
|
| | | | `-- unaryExp
|
|
| | | | `-- primaryExp
|
|
| | | | `-- lVal
|
|
| | | | `-- Ident: a0
|
|
| | | |-- AddOp: +
|
|
| | | `-- mulExp
|
|
| | | `-- unaryExp
|
|
| | | `-- primaryExp
|
|
| | | `-- number
|
|
| | | `-- IntConst: 1
|
|
| | `-- Semi: ;
|
|
| |-- blockItem
|
|
| | `-- stmt
|
|
| | |-- lVal
|
|
| | | `-- Ident: a2
|
|
| | |-- Assign: =
|
|
| | |-- exp
|
|
| | | `-- addExp
|
|
| | | |-- addExp
|
|
| | | | `-- mulExp
|
|
| | | | `-- unaryExp
|
|
| | | | `-- primaryExp
|
|
| | | | `-- lVal
|
|
| | | | `-- Ident: a1
|
|
| | | |-- AddOp: +
|
|
| | | `-- mulExp
|
|
| | | `-- unaryExp
|
|
| | | `-- primaryExp
|
|
| | | `-- number
|
|
| | | `-- IntConst: 1
|
|
| | `-- Semi: ;
|
|
| |-- blockItem
|
|
| | `-- stmt
|
|
| | |-- lVal
|
|
| | | `-- Ident: a3
|
|
| | |-- Assign: =
|
|
| | |-- exp
|
|
| | | `-- addExp
|
|
| | | |-- addExp
|
|
| | | | `-- mulExp
|
|
| | | | `-- unaryExp
|
|
| | | | `-- primaryExp
|
|
| | | | `-- lVal
|
|
| | | | `-- Ident: a2
|
|
| | | |-- AddOp: +
|
|
| | | `-- mulExp
|
|
| | | `-- unaryExp
|
|
| | | `-- primaryExp
|
|
| | | `-- number
|
|
| | | `-- IntConst: 1
|
|
| | `-- Semi: ;
|
|
| |-- blockItem
|
|
| | `-- stmt
|
|
| | |-- lVal
|
|
| | | `-- Ident: a4
|
|
| | |-- Assign: =
|
|
| | |-- exp
|
|
| | | `-- addExp
|
|
| | | |-- addExp
|
|
| | | | `-- mulExp
|
|
| | | | `-- unaryExp
|
|
| | | | `-- primaryExp
|
|
| | | | `-- lVal
|
|
| | | | `-- Ident: a3
|
|
| | | |-- AddOp: +
|
|
| | | `-- mulExp
|
|
| | | `-- unaryExp
|
|
| | | `-- primaryExp
|
|
| | | `-- number
|
|
| | | `-- IntConst: 1
|
|
| | `-- Semi: ;
|
|
| |-- blockItem
|
|
| | `-- stmt
|
|
| | |-- lVal
|
|
| | | `-- Ident: a5
|
|
| | |-- Assign: =
|
|
| | |-- exp
|
|
| | | `-- addExp
|
|
| | | |-- addExp
|
|
| | | | `-- mulExp
|
|
| | | | `-- unaryExp
|
|
| | | | `-- primaryExp
|
|
| | | | `-- lVal
|
|
| | | | `-- Ident: a4
|
|
| | | |-- AddOp: +
|
|
| | | `-- mulExp
|
|
| | | `-- unaryExp
|
|
| | | `-- primaryExp
|
|
| | | `-- number
|
|
| | | `-- IntConst: 1
|
|
| | `-- Semi: ;
|
|
| |-- blockItem
|
|
| | `-- stmt
|
|
| | |-- lVal
|
|
| | | `-- Ident: a6
|
|
| | |-- Assign: =
|
|
| | |-- exp
|
|
| | | `-- addExp
|
|
| | | |-- addExp
|
|
| | | | `-- mulExp
|
|
| | | | `-- unaryExp
|
|
| | | | `-- primaryExp
|
|
| | | | `-- lVal
|
|
| | | | `-- Ident: a5
|
|
| | | |-- AddOp: +
|
|
| | | `-- mulExp
|
|
| | | `-- unaryExp
|
|
| | | `-- primaryExp
|
|
| | | `-- number
|
|
| | | `-- IntConst: 1
|
|
| | `-- Semi: ;
|
|
| |-- blockItem
|
|
| | `-- stmt
|
|
| | |-- lVal
|
|
| | | `-- Ident: a7
|
|
| | |-- Assign: =
|
|
| | |-- exp
|
|
| | | `-- addExp
|
|
| | | |-- addExp
|
|
| | | | `-- mulExp
|
|
| | | | `-- unaryExp
|
|
| | | | `-- primaryExp
|
|
| | | | `-- lVal
|
|
| | | | `-- Ident: a6
|
|
| | | |-- AddOp: +
|
|
| | | `-- mulExp
|
|
| | | `-- unaryExp
|
|
| | | `-- primaryExp
|
|
| | | `-- number
|
|
| | | `-- IntConst: 1
|
|
| | `-- Semi: ;
|
|
| |-- blockItem
|
|
| | `-- stmt
|
|
| | |-- lVal
|
|
| | | `-- Ident: a8
|
|
| | |-- Assign: =
|
|
| | |-- exp
|
|
| | | `-- addExp
|
|
| | | |-- addExp
|
|
| | | | `-- mulExp
|
|
| | | | `-- unaryExp
|
|
| | | | `-- primaryExp
|
|
| | | | `-- lVal
|
|
| | | | `-- Ident: a7
|
|
| | | |-- AddOp: +
|
|
| | | `-- mulExp
|
|
| | | `-- unaryExp
|
|
| | | `-- primaryExp
|
|
| | | `-- number
|
|
| | | `-- IntConst: 1
|
|
| | `-- Semi: ;
|
|
| |-- blockItem
|
|
| | `-- stmt
|
|
| | |-- lVal
|
|
| | | `-- Ident: a9
|
|
| | |-- Assign: =
|
|
| | |-- exp
|
|
| | | `-- addExp
|
|
| | | |-- addExp
|
|
| | | | `-- mulExp
|
|
| | | | `-- unaryExp
|
|
| | | | `-- primaryExp
|
|
| | | | `-- lVal
|
|
| | | | `-- Ident: a8
|
|
| | | |-- AddOp: +
|
|
| | | `-- mulExp
|
|
| | | `-- unaryExp
|
|
| | | `-- primaryExp
|
|
| | | `-- number
|
|
| | | `-- IntConst: 1
|
|
| | `-- Semi: ;
|
|
| |-- blockItem
|
|
| | `-- stmt
|
|
| | |-- lVal
|
|
| | | `-- Ident: a10
|
|
| | |-- Assign: =
|
|
| | |-- exp
|
|
| | | `-- addExp
|
|
| | | |-- addExp
|
|
| | | | `-- mulExp
|
|
| | | | `-- unaryExp
|
|
| | | | `-- primaryExp
|
|
| | | | `-- lVal
|
|
| | | | `-- Ident: a9
|
|
| | | |-- AddOp: +
|
|
| | | `-- mulExp
|
|
| | | `-- unaryExp
|
|
| | | `-- primaryExp
|
|
| | | `-- number
|
|
| | | `-- IntConst: 1
|
|
| | `-- Semi: ;
|
|
| |-- blockItem
|
|
| | `-- stmt
|
|
| | |-- lVal
|
|
| | | `-- Ident: a11
|
|
| | |-- Assign: =
|
|
| | |-- exp
|
|
| | | `-- addExp
|
|
| | | |-- addExp
|
|
| | | | `-- mulExp
|
|
| | | | `-- unaryExp
|
|
| | | | `-- primaryExp
|
|
| | | | `-- lVal
|
|
| | | | `-- Ident: a10
|
|
| | | |-- AddOp: +
|
|
| | | `-- mulExp
|
|
| | | `-- unaryExp
|
|
| | | `-- primaryExp
|
|
| | | `-- number
|
|
| | | `-- IntConst: 1
|
|
| | `-- Semi: ;
|
|
| |-- blockItem
|
|
| | `-- stmt
|
|
| | |-- lVal
|
|
| | | `-- Ident: a12
|
|
| | |-- Assign: =
|
|
| | |-- exp
|
|
| | | `-- addExp
|
|
| | | |-- addExp
|
|
| | | | `-- mulExp
|
|
| | | | `-- unaryExp
|
|
| | | | `-- primaryExp
|
|
| | | | `-- lVal
|
|
| | | | `-- Ident: a11
|
|
| | | |-- AddOp: +
|
|
| | | `-- mulExp
|
|
| | | `-- unaryExp
|
|
| | | `-- primaryExp
|
|
| | | `-- number
|
|
| | | `-- IntConst: 1
|
|
| | `-- Semi: ;
|
|
| |-- blockItem
|
|
| | `-- stmt
|
|
| | |-- lVal
|
|
| | | `-- Ident: a13
|
|
| | |-- Assign: =
|
|
| | |-- exp
|
|
| | | `-- addExp
|
|
| | | |-- addExp
|
|
| | | | `-- mulExp
|
|
| | | | `-- unaryExp
|
|
| | | | `-- primaryExp
|
|
| | | | `-- lVal
|
|
| | | | `-- Ident: a12
|
|
| | | |-- AddOp: +
|
|
| | | `-- mulExp
|
|
| | | `-- unaryExp
|
|
| | | `-- primaryExp
|
|
| | | `-- number
|
|
| | | `-- IntConst: 1
|
|
| | `-- Semi: ;
|
|
| |-- blockItem
|
|
| | `-- stmt
|
|
| | |-- lVal
|
|
| | | `-- Ident: a14
|
|
| | |-- Assign: =
|
|
| | |-- exp
|
|
| | | `-- addExp
|
|
| | | |-- addExp
|
|
| | | | `-- mulExp
|
|
| | | | `-- unaryExp
|
|
| | | | `-- primaryExp
|
|
| | | | `-- lVal
|
|
| | | | `-- Ident: a13
|
|
| | | |-- AddOp: +
|
|
| | | `-- mulExp
|
|
| | | `-- unaryExp
|
|
| | | `-- primaryExp
|
|
| | | `-- number
|
|
| | | `-- IntConst: 1
|
|
| | `-- Semi: ;
|
|
| |-- blockItem
|
|
| | `-- stmt
|
|
| | |-- lVal
|
|
| | | `-- Ident: a15
|
|
| | |-- Assign: =
|
|
| | |-- exp
|
|
| | | `-- addExp
|
|
| | | |-- addExp
|
|
| | | | `-- mulExp
|
|
| | | | `-- unaryExp
|
|
| | | | `-- primaryExp
|
|
| | | | `-- lVal
|
|
| | | | `-- Ident: a14
|
|
| | | |-- AddOp: +
|
|
| | | `-- mulExp
|
|
| | | `-- unaryExp
|
|
| | | `-- primaryExp
|
|
| | | `-- number
|
|
| | | `-- IntConst: 1
|
|
| | `-- Semi: ;
|
|
| |-- blockItem
|
|
| | `-- stmt
|
|
| | |-- lVal
|
|
| | | `-- Ident: a16
|
|
| | |-- Assign: =
|
|
| | |-- exp
|
|
| | | `-- addExp
|
|
| | | |-- addExp
|
|
| | | | `-- mulExp
|
|
| | | | `-- unaryExp
|
|
| | | | `-- primaryExp
|
|
| | | | `-- lVal
|
|
| | | | `-- Ident: a15
|
|
| | | |-- AddOp: +
|
|
| | | `-- mulExp
|
|
| | | `-- unaryExp
|
|
| | | `-- primaryExp
|
|
| | | `-- number
|
|
| | | `-- IntConst: 1
|
|
| | `-- Semi: ;
|
|
| |-- blockItem
|
|
| | `-- stmt
|
|
| | |-- lVal
|
|
| | | `-- Ident: a17
|
|
| | |-- Assign: =
|
|
| | |-- exp
|
|
| | | `-- addExp
|
|
| | | |-- addExp
|
|
| | | | `-- mulExp
|
|
| | | | `-- unaryExp
|
|
| | | | `-- primaryExp
|
|
| | | | `-- lVal
|
|
| | | | `-- Ident: a16
|
|
| | | |-- AddOp: +
|
|
| | | `-- mulExp
|
|
| | | `-- unaryExp
|
|
| | | `-- primaryExp
|
|
| | | `-- number
|
|
| | | `-- IntConst: 1
|
|
| | `-- Semi: ;
|
|
| |-- blockItem
|
|
| | `-- stmt
|
|
| | |-- lVal
|
|
| | | `-- Ident: a18
|
|
| | |-- Assign: =
|
|
| | |-- exp
|
|
| | | `-- addExp
|
|
| | | |-- addExp
|
|
| | | | `-- mulExp
|
|
| | | | `-- unaryExp
|
|
| | | | `-- primaryExp
|
|
| | | | `-- lVal
|
|
| | | | `-- Ident: a17
|
|
| | | |-- AddOp: +
|
|
| | | `-- mulExp
|
|
| | | `-- unaryExp
|
|
| | | `-- primaryExp
|
|
| | | `-- number
|
|
| | | `-- IntConst: 1
|
|
| | `-- Semi: ;
|
|
| |-- blockItem
|
|
| | `-- stmt
|
|
| | |-- lVal
|
|
| | | `-- Ident: a19
|
|
| | |-- Assign: =
|
|
| | |-- exp
|
|
| | | `-- addExp
|
|
| | | |-- addExp
|
|
| | | | `-- mulExp
|
|
| | | | `-- unaryExp
|
|
| | | | `-- primaryExp
|
|
| | | | `-- lVal
|
|
| | | | `-- Ident: a18
|
|
| | | |-- AddOp: +
|
|
| | | `-- mulExp
|
|
| | | `-- unaryExp
|
|
| | | `-- primaryExp
|
|
| | | `-- number
|
|
| | | `-- IntConst: 1
|
|
| | `-- Semi: ;
|
|
| |-- blockItem
|
|
| | `-- stmt
|
|
| | |-- lVal
|
|
| | | `-- Ident: a20
|
|
| | |-- Assign: =
|
|
| | |-- exp
|
|
| | | `-- addExp
|
|
| | | |-- addExp
|
|
| | | | `-- mulExp
|
|
| | | | `-- unaryExp
|
|
| | | | `-- primaryExp
|
|
| | | | `-- lVal
|
|
| | | | `-- Ident: a19
|
|
| | | |-- AddOp: +
|
|
| | | `-- mulExp
|
|
| | | `-- unaryExp
|
|
| | | `-- primaryExp
|
|
| | | `-- number
|
|
| | | `-- IntConst: 1
|
|
| | `-- Semi: ;
|
|
| |-- blockItem
|
|
| | `-- stmt
|
|
| | |-- lVal
|
|
| | | `-- Ident: a21
|
|
| | |-- Assign: =
|
|
| | |-- exp
|
|
| | | `-- addExp
|
|
| | | |-- addExp
|
|
| | | | `-- mulExp
|
|
| | | | `-- unaryExp
|
|
| | | | `-- primaryExp
|
|
| | | | `-- lVal
|
|
| | | | `-- Ident: a20
|
|
| | | |-- AddOp: +
|
|
| | | `-- mulExp
|
|
| | | `-- unaryExp
|
|
| | | `-- primaryExp
|
|
| | | `-- number
|
|
| | | `-- IntConst: 1
|
|
| | `-- Semi: ;
|
|
| |-- blockItem
|
|
| | `-- stmt
|
|
| | |-- lVal
|
|
| | | `-- Ident: a22
|
|
| | |-- Assign: =
|
|
| | |-- exp
|
|
| | | `-- addExp
|
|
| | | |-- addExp
|
|
| | | | `-- mulExp
|
|
| | | | `-- unaryExp
|
|
| | | | `-- primaryExp
|
|
| | | | `-- lVal
|
|
| | | | `-- Ident: a21
|
|
| | | |-- AddOp: +
|
|
| | | `-- mulExp
|
|
| | | `-- unaryExp
|
|
| | | `-- primaryExp
|
|
| | | `-- number
|
|
| | | `-- IntConst: 1
|
|
| | `-- Semi: ;
|
|
| |-- blockItem
|
|
| | `-- stmt
|
|
| | |-- lVal
|
|
| | | `-- Ident: a23
|
|
| | |-- Assign: =
|
|
| | |-- exp
|
|
| | | `-- addExp
|
|
| | | |-- addExp
|
|
| | | | `-- mulExp
|
|
| | | | `-- unaryExp
|
|
| | | | `-- primaryExp
|
|
| | | | `-- lVal
|
|
| | | | `-- Ident: a22
|
|
| | | |-- AddOp: +
|
|
| | | `-- mulExp
|
|
| | | `-- unaryExp
|
|
| | | `-- primaryExp
|
|
| | | `-- number
|
|
| | | `-- IntConst: 1
|
|
| | `-- Semi: ;
|
|
| |-- blockItem
|
|
| | `-- stmt
|
|
| | |-- lVal
|
|
| | | `-- Ident: a24
|
|
| | |-- Assign: =
|
|
| | |-- exp
|
|
| | | `-- addExp
|
|
| | | |-- addExp
|
|
| | | | `-- mulExp
|
|
| | | | `-- unaryExp
|
|
| | | | `-- primaryExp
|
|
| | | | `-- lVal
|
|
| | | | `-- Ident: a23
|
|
| | | |-- AddOp: +
|
|
| | | `-- mulExp
|
|
| | | `-- unaryExp
|
|
| | | `-- primaryExp
|
|
| | | `-- number
|
|
| | | `-- IntConst: 1
|
|
| | `-- Semi: ;
|
|
| |-- blockItem
|
|
| | `-- stmt
|
|
| | |-- lVal
|
|
| | | `-- Ident: a25
|
|
| | |-- Assign: =
|
|
| | |-- exp
|
|
| | | `-- addExp
|
|
| | | |-- addExp
|
|
| | | | `-- mulExp
|
|
| | | | `-- unaryExp
|
|
| | | | `-- primaryExp
|
|
| | | | `-- lVal
|
|
| | | | `-- Ident: a24
|
|
| | | |-- AddOp: +
|
|
| | | `-- mulExp
|
|
| | | `-- unaryExp
|
|
| | | `-- primaryExp
|
|
| | | `-- number
|
|
| | | `-- IntConst: 1
|
|
| | `-- Semi: ;
|
|
| |-- blockItem
|
|
| | `-- stmt
|
|
| | |-- lVal
|
|
| | | `-- Ident: a26
|
|
| | |-- Assign: =
|
|
| | |-- exp
|
|
| | | `-- addExp
|
|
| | | |-- addExp
|
|
| | | | `-- mulExp
|
|
| | | | `-- unaryExp
|
|
| | | | `-- primaryExp
|
|
| | | | `-- lVal
|
|
| | | | `-- Ident: a25
|
|
| | | |-- AddOp: +
|
|
| | | `-- mulExp
|
|
| | | `-- unaryExp
|
|
| | | `-- primaryExp
|
|
| | | `-- number
|
|
| | | `-- IntConst: 1
|
|
| | `-- Semi: ;
|
|
| |-- blockItem
|
|
| | `-- stmt
|
|
| | |-- lVal
|
|
| | | `-- Ident: a27
|
|
| | |-- Assign: =
|
|
| | |-- exp
|
|
| | | `-- addExp
|
|
| | | |-- addExp
|
|
| | | | `-- mulExp
|
|
| | | | `-- unaryExp
|
|
| | | | `-- primaryExp
|
|
| | | | `-- lVal
|
|
| | | | `-- Ident: a26
|
|
| | | |-- AddOp: +
|
|
| | | `-- mulExp
|
|
| | | `-- unaryExp
|
|
| | | `-- primaryExp
|
|
| | | `-- number
|
|
| | | `-- IntConst: 1
|
|
| | `-- Semi: ;
|
|
| |-- blockItem
|
|
| | `-- stmt
|
|
| | |-- lVal
|
|
| | | `-- Ident: a28
|
|
| | |-- Assign: =
|
|
| | |-- exp
|
|
| | | `-- addExp
|
|
| | | |-- addExp
|
|
| | | | `-- mulExp
|
|
| | | | `-- unaryExp
|
|
| | | | `-- primaryExp
|
|
| | | | `-- lVal
|
|
| | | | `-- Ident: a27
|
|
| | | |-- AddOp: +
|
|
| | | `-- mulExp
|
|
| | | `-- unaryExp
|
|
| | | `-- primaryExp
|
|
| | | `-- number
|
|
| | | `-- IntConst: 1
|
|
| | `-- Semi: ;
|
|
| |-- blockItem
|
|
| | `-- stmt
|
|
| | |-- lVal
|
|
| | | `-- Ident: a29
|
|
| | |-- Assign: =
|
|
| | |-- exp
|
|
| | | `-- addExp
|
|
| | | |-- addExp
|
|
| | | | `-- mulExp
|
|
| | | | `-- unaryExp
|
|
| | | | `-- primaryExp
|
|
| | | | `-- lVal
|
|
| | | | `-- Ident: a28
|
|
| | | |-- AddOp: +
|
|
| | | `-- mulExp
|
|
| | | `-- unaryExp
|
|
| | | `-- primaryExp
|
|
| | | `-- number
|
|
| | | `-- IntConst: 1
|
|
| | `-- Semi: ;
|
|
| |-- blockItem
|
|
| | `-- decl
|
|
| | `-- varDecl
|
|
| | |-- bType
|
|
| | | `-- Int: int
|
|
| | |-- varDef
|
|
| | | `-- Ident: t
|
|
| | `-- Semi: ;
|
|
| |-- blockItem
|
|
| | `-- stmt
|
|
| | |-- exp
|
|
| | | `-- addExp
|
|
| | | `-- mulExp
|
|
| | | `-- unaryExp
|
|
| | | |-- Ident: putint
|
|
| | | |-- L_PAREN: (
|
|
| | | |-- funcRParams
|
|
| | | | `-- exp
|
|
| | | | `-- addExp
|
|
| | | | `-- mulExp
|
|
| | | | `-- unaryExp
|
|
| | | | `-- primaryExp
|
|
| | | | `-- lVal
|
|
| | | | `-- Ident: a0
|
|
| | | `-- R_PAREN: )
|
|
| | `-- Semi: ;
|
|
| |-- blockItem
|
|
| | `-- stmt
|
|
| | |-- exp
|
|
| | | `-- addExp
|
|
| | | `-- mulExp
|
|
| | | `-- unaryExp
|
|
| | | |-- Ident: putint
|
|
| | | |-- L_PAREN: (
|
|
| | | |-- funcRParams
|
|
| | | | `-- exp
|
|
| | | | `-- addExp
|
|
| | | | `-- mulExp
|
|
| | | | `-- unaryExp
|
|
| | | | `-- primaryExp
|
|
| | | | `-- lVal
|
|
| | | | `-- Ident: a1
|
|
| | | `-- R_PAREN: )
|
|
| | `-- Semi: ;
|
|
| |-- blockItem
|
|
| | `-- stmt
|
|
| | |-- exp
|
|
| | | `-- addExp
|
|
| | | `-- mulExp
|
|
| | | `-- unaryExp
|
|
| | | |-- Ident: putint
|
|
| | | |-- L_PAREN: (
|
|
| | | |-- funcRParams
|
|
| | | | `-- exp
|
|
| | | | `-- addExp
|
|
| | | | `-- mulExp
|
|
| | | | `-- unaryExp
|
|
| | | | `-- primaryExp
|
|
| | | | `-- lVal
|
|
| | | | `-- Ident: a2
|
|
| | | `-- R_PAREN: )
|
|
| | `-- Semi: ;
|
|
| |-- blockItem
|
|
| | `-- stmt
|
|
| | |-- exp
|
|
| | | `-- addExp
|
|
| | | `-- mulExp
|
|
| | | `-- unaryExp
|
|
| | | |-- Ident: putint
|
|
| | | |-- L_PAREN: (
|
|
| | | |-- funcRParams
|
|
| | | | `-- exp
|
|
| | | | `-- addExp
|
|
| | | | `-- mulExp
|
|
| | | | `-- unaryExp
|
|
| | | | `-- primaryExp
|
|
| | | | `-- lVal
|
|
| | | | `-- Ident: a3
|
|
| | | `-- R_PAREN: )
|
|
| | `-- Semi: ;
|
|
| |-- blockItem
|
|
| | `-- stmt
|
|
| | |-- exp
|
|
| | | `-- addExp
|
|
| | | `-- mulExp
|
|
| | | `-- unaryExp
|
|
| | | |-- Ident: putint
|
|
| | | |-- L_PAREN: (
|
|
| | | |-- funcRParams
|
|
| | | | `-- exp
|
|
| | | | `-- addExp
|
|
| | | | `-- mulExp
|
|
| | | | `-- unaryExp
|
|
| | | | `-- primaryExp
|
|
| | | | `-- lVal
|
|
| | | | `-- Ident: a4
|
|
| | | `-- R_PAREN: )
|
|
| | `-- Semi: ;
|
|
| |-- blockItem
|
|
| | `-- stmt
|
|
| | |-- exp
|
|
| | | `-- addExp
|
|
| | | `-- mulExp
|
|
| | | `-- unaryExp
|
|
| | | |-- Ident: putint
|
|
| | | |-- L_PAREN: (
|
|
| | | |-- funcRParams
|
|
| | | | `-- exp
|
|
| | | | `-- addExp
|
|
| | | | `-- mulExp
|
|
| | | | `-- unaryExp
|
|
| | | | `-- primaryExp
|
|
| | | | `-- lVal
|
|
| | | | `-- Ident: a5
|
|
| | | `-- R_PAREN: )
|
|
| | `-- Semi: ;
|
|
| |-- blockItem
|
|
| | `-- stmt
|
|
| | |-- exp
|
|
| | | `-- addExp
|
|
| | | `-- mulExp
|
|
| | | `-- unaryExp
|
|
| | | |-- Ident: putint
|
|
| | | |-- L_PAREN: (
|
|
| | | |-- funcRParams
|
|
| | | | `-- exp
|
|
| | | | `-- addExp
|
|
| | | | `-- mulExp
|
|
| | | | `-- unaryExp
|
|
| | | | `-- primaryExp
|
|
| | | | `-- lVal
|
|
| | | | `-- Ident: a6
|
|
| | | `-- R_PAREN: )
|
|
| | `-- Semi: ;
|
|
| |-- blockItem
|
|
| | `-- stmt
|
|
| | |-- exp
|
|
| | | `-- addExp
|
|
| | | `-- mulExp
|
|
| | | `-- unaryExp
|
|
| | | |-- Ident: putint
|
|
| | | |-- L_PAREN: (
|
|
| | | |-- funcRParams
|
|
| | | | `-- exp
|
|
| | | | `-- addExp
|
|
| | | | `-- mulExp
|
|
| | | | `-- unaryExp
|
|
| | | | `-- primaryExp
|
|
| | | | `-- lVal
|
|
| | | | `-- Ident: a7
|
|
| | | `-- R_PAREN: )
|
|
| | `-- Semi: ;
|
|
| |-- blockItem
|
|
| | `-- stmt
|
|
| | |-- exp
|
|
| | | `-- addExp
|
|
| | | `-- mulExp
|
|
| | | `-- unaryExp
|
|
| | | |-- Ident: putint
|
|
| | | |-- L_PAREN: (
|
|
| | | |-- funcRParams
|
|
| | | | `-- exp
|
|
| | | | `-- addExp
|
|
| | | | `-- mulExp
|
|
| | | | `-- unaryExp
|
|
| | | | `-- primaryExp
|
|
| | | | `-- lVal
|
|
| | | | `-- Ident: a8
|
|
| | | `-- R_PAREN: )
|
|
| | `-- Semi: ;
|
|
| |-- blockItem
|
|
| | `-- stmt
|
|
| | |-- exp
|
|
| | | `-- addExp
|
|
| | | `-- mulExp
|
|
| | | `-- unaryExp
|
|
| | | |-- Ident: putint
|
|
| | | |-- L_PAREN: (
|
|
| | | |-- funcRParams
|
|
| | | | `-- exp
|
|
| | | | `-- addExp
|
|
| | | | `-- mulExp
|
|
| | | | `-- unaryExp
|
|
| | | | `-- primaryExp
|
|
| | | | `-- lVal
|
|
| | | | `-- Ident: a9
|
|
| | | `-- R_PAREN: )
|
|
| | `-- Semi: ;
|
|
| |-- blockItem
|
|
| | `-- stmt
|
|
| | |-- exp
|
|
| | | `-- addExp
|
|
| | | `-- mulExp
|
|
| | | `-- unaryExp
|
|
| | | |-- Ident: putint
|
|
| | | |-- L_PAREN: (
|
|
| | | |-- funcRParams
|
|
| | | | `-- exp
|
|
| | | | `-- addExp
|
|
| | | | `-- mulExp
|
|
| | | | `-- unaryExp
|
|
| | | | `-- primaryExp
|
|
| | | | `-- lVal
|
|
| | | | `-- Ident: a10
|
|
| | | `-- R_PAREN: )
|
|
| | `-- Semi: ;
|
|
| |-- blockItem
|
|
| | `-- stmt
|
|
| | |-- exp
|
|
| | | `-- addExp
|
|
| | | `-- mulExp
|
|
| | | `-- unaryExp
|
|
| | | |-- Ident: putint
|
|
| | | |-- L_PAREN: (
|
|
| | | |-- funcRParams
|
|
| | | | `-- exp
|
|
| | | | `-- addExp
|
|
| | | | `-- mulExp
|
|
| | | | `-- unaryExp
|
|
| | | | `-- primaryExp
|
|
| | | | `-- lVal
|
|
| | | | `-- Ident: a11
|
|
| | | `-- R_PAREN: )
|
|
| | `-- Semi: ;
|
|
| |-- blockItem
|
|
| | `-- stmt
|
|
| | |-- exp
|
|
| | | `-- addExp
|
|
| | | `-- mulExp
|
|
| | | `-- unaryExp
|
|
| | | |-- Ident: putint
|
|
| | | |-- L_PAREN: (
|
|
| | | |-- funcRParams
|
|
| | | | `-- exp
|
|
| | | | `-- addExp
|
|
| | | | `-- mulExp
|
|
| | | | `-- unaryExp
|
|
| | | | `-- primaryExp
|
|
| | | | `-- lVal
|
|
| | | | `-- Ident: a12
|
|
| | | `-- R_PAREN: )
|
|
| | `-- Semi: ;
|
|
| |-- blockItem
|
|
| | `-- stmt
|
|
| | |-- exp
|
|
| | | `-- addExp
|
|
| | | `-- mulExp
|
|
| | | `-- unaryExp
|
|
| | | |-- Ident: putint
|
|
| | | |-- L_PAREN: (
|
|
| | | |-- funcRParams
|
|
| | | | `-- exp
|
|
| | | | `-- addExp
|
|
| | | | `-- mulExp
|
|
| | | | `-- unaryExp
|
|
| | | | `-- primaryExp
|
|
| | | | `-- lVal
|
|
| | | | `-- Ident: a13
|
|
| | | `-- R_PAREN: )
|
|
| | `-- Semi: ;
|
|
| |-- blockItem
|
|
| | `-- stmt
|
|
| | |-- exp
|
|
| | | `-- addExp
|
|
| | | `-- mulExp
|
|
| | | `-- unaryExp
|
|
| | | |-- Ident: putint
|
|
| | | |-- L_PAREN: (
|
|
| | | |-- funcRParams
|
|
| | | | `-- exp
|
|
| | | | `-- addExp
|
|
| | | | `-- mulExp
|
|
| | | | `-- unaryExp
|
|
| | | | `-- primaryExp
|
|
| | | | `-- lVal
|
|
| | | | `-- Ident: a14
|
|
| | | `-- R_PAREN: )
|
|
| | `-- Semi: ;
|
|
| |-- blockItem
|
|
| | `-- stmt
|
|
| | |-- exp
|
|
| | | `-- addExp
|
|
| | | `-- mulExp
|
|
| | | `-- unaryExp
|
|
| | | |-- Ident: putint
|
|
| | | |-- L_PAREN: (
|
|
| | | |-- funcRParams
|
|
| | | | `-- exp
|
|
| | | | `-- addExp
|
|
| | | | `-- mulExp
|
|
| | | | `-- unaryExp
|
|
| | | | `-- primaryExp
|
|
| | | | `-- lVal
|
|
| | | | `-- Ident: a15
|
|
| | | `-- R_PAREN: )
|
|
| | `-- Semi: ;
|
|
| |-- blockItem
|
|
| | `-- stmt
|
|
| | |-- exp
|
|
| | | `-- addExp
|
|
| | | `-- mulExp
|
|
| | | `-- unaryExp
|
|
| | | |-- Ident: putint
|
|
| | | |-- L_PAREN: (
|
|
| | | |-- funcRParams
|
|
| | | | `-- exp
|
|
| | | | `-- addExp
|
|
| | | | `-- mulExp
|
|
| | | | `-- unaryExp
|
|
| | | | `-- primaryExp
|
|
| | | | `-- lVal
|
|
| | | | `-- Ident: a16
|
|
| | | `-- R_PAREN: )
|
|
| | `-- Semi: ;
|
|
| |-- blockItem
|
|
| | `-- stmt
|
|
| | |-- exp
|
|
| | | `-- addExp
|
|
| | | `-- mulExp
|
|
| | | `-- unaryExp
|
|
| | | |-- Ident: putint
|
|
| | | |-- L_PAREN: (
|
|
| | | |-- funcRParams
|
|
| | | | `-- exp
|
|
| | | | `-- addExp
|
|
| | | | `-- mulExp
|
|
| | | | `-- unaryExp
|
|
| | | | `-- primaryExp
|
|
| | | | `-- lVal
|
|
| | | | `-- Ident: a17
|
|
| | | `-- R_PAREN: )
|
|
| | `-- Semi: ;
|
|
| |-- blockItem
|
|
| | `-- stmt
|
|
| | |-- exp
|
|
| | | `-- addExp
|
|
| | | `-- mulExp
|
|
| | | `-- unaryExp
|
|
| | | |-- Ident: putint
|
|
| | | |-- L_PAREN: (
|
|
| | | |-- funcRParams
|
|
| | | | `-- exp
|
|
| | | | `-- addExp
|
|
| | | | `-- mulExp
|
|
| | | | `-- unaryExp
|
|
| | | | `-- primaryExp
|
|
| | | | `-- lVal
|
|
| | | | `-- Ident: a18
|
|
| | | `-- R_PAREN: )
|
|
| | `-- Semi: ;
|
|
| |-- blockItem
|
|
| | `-- stmt
|
|
| | |-- exp
|
|
| | | `-- addExp
|
|
| | | `-- mulExp
|
|
| | | `-- unaryExp
|
|
| | | |-- Ident: putint
|
|
| | | |-- L_PAREN: (
|
|
| | | |-- funcRParams
|
|
| | | | `-- exp
|
|
| | | | `-- addExp
|
|
| | | | `-- mulExp
|
|
| | | | `-- unaryExp
|
|
| | | | `-- primaryExp
|
|
| | | | `-- lVal
|
|
| | | | `-- Ident: a19
|
|
| | | `-- R_PAREN: )
|
|
| | `-- Semi: ;
|
|
| |-- blockItem
|
|
| | `-- stmt
|
|
| | |-- exp
|
|
| | | `-- addExp
|
|
| | | `-- mulExp
|
|
| | | `-- unaryExp
|
|
| | | |-- Ident: putint
|
|
| | | |-- L_PAREN: (
|
|
| | | |-- funcRParams
|
|
| | | | `-- exp
|
|
| | | | `-- addExp
|
|
| | | | `-- mulExp
|
|
| | | | `-- unaryExp
|
|
| | | | `-- primaryExp
|
|
| | | | `-- lVal
|
|
| | | | `-- Ident: a20
|
|
| | | `-- R_PAREN: )
|
|
| | `-- Semi: ;
|
|
| |-- blockItem
|
|
| | `-- stmt
|
|
| | |-- exp
|
|
| | | `-- addExp
|
|
| | | `-- mulExp
|
|
| | | `-- unaryExp
|
|
| | | |-- Ident: putint
|
|
| | | |-- L_PAREN: (
|
|
| | | |-- funcRParams
|
|
| | | | `-- exp
|
|
| | | | `-- addExp
|
|
| | | | `-- mulExp
|
|
| | | | `-- unaryExp
|
|
| | | | `-- primaryExp
|
|
| | | | `-- lVal
|
|
| | | | `-- Ident: a21
|
|
| | | `-- R_PAREN: )
|
|
| | `-- Semi: ;
|
|
| |-- blockItem
|
|
| | `-- stmt
|
|
| | |-- exp
|
|
| | | `-- addExp
|
|
| | | `-- mulExp
|
|
| | | `-- unaryExp
|
|
| | | |-- Ident: putint
|
|
| | | |-- L_PAREN: (
|
|
| | | |-- funcRParams
|
|
| | | | `-- exp
|
|
| | | | `-- addExp
|
|
| | | | `-- mulExp
|
|
| | | | `-- unaryExp
|
|
| | | | `-- primaryExp
|
|
| | | | `-- lVal
|
|
| | | | `-- Ident: a22
|
|
| | | `-- R_PAREN: )
|
|
| | `-- Semi: ;
|
|
| |-- blockItem
|
|
| | `-- stmt
|
|
| | |-- exp
|
|
| | | `-- addExp
|
|
| | | `-- mulExp
|
|
| | | `-- unaryExp
|
|
| | | |-- Ident: putint
|
|
| | | |-- L_PAREN: (
|
|
| | | |-- funcRParams
|
|
| | | | `-- exp
|
|
| | | | `-- addExp
|
|
| | | | `-- mulExp
|
|
| | | | `-- unaryExp
|
|
| | | | `-- primaryExp
|
|
| | | | `-- lVal
|
|
| | | | `-- Ident: a23
|
|
| | | `-- R_PAREN: )
|
|
| | `-- Semi: ;
|
|
| |-- blockItem
|
|
| | `-- stmt
|
|
| | |-- exp
|
|
| | | `-- addExp
|
|
| | | `-- mulExp
|
|
| | | `-- unaryExp
|
|
| | | |-- Ident: putint
|
|
| | | |-- L_PAREN: (
|
|
| | | |-- funcRParams
|
|
| | | | `-- exp
|
|
| | | | `-- addExp
|
|
| | | | `-- mulExp
|
|
| | | | `-- unaryExp
|
|
| | | | `-- primaryExp
|
|
| | | | `-- lVal
|
|
| | | | `-- Ident: a24
|
|
| | | `-- R_PAREN: )
|
|
| | `-- Semi: ;
|
|
| |-- blockItem
|
|
| | `-- stmt
|
|
| | |-- exp
|
|
| | | `-- addExp
|
|
| | | `-- mulExp
|
|
| | | `-- unaryExp
|
|
| | | |-- Ident: putint
|
|
| | | |-- L_PAREN: (
|
|
| | | |-- funcRParams
|
|
| | | | `-- exp
|
|
| | | | `-- addExp
|
|
| | | | `-- mulExp
|
|
| | | | `-- unaryExp
|
|
| | | | `-- primaryExp
|
|
| | | | `-- lVal
|
|
| | | | `-- Ident: a25
|
|
| | | `-- R_PAREN: )
|
|
| | `-- Semi: ;
|
|
| |-- blockItem
|
|
| | `-- stmt
|
|
| | |-- exp
|
|
| | | `-- addExp
|
|
| | | `-- mulExp
|
|
| | | `-- unaryExp
|
|
| | | |-- Ident: putint
|
|
| | | |-- L_PAREN: (
|
|
| | | |-- funcRParams
|
|
| | | | `-- exp
|
|
| | | | `-- addExp
|
|
| | | | `-- mulExp
|
|
| | | | `-- unaryExp
|
|
| | | | `-- primaryExp
|
|
| | | | `-- lVal
|
|
| | | | `-- Ident: a26
|
|
| | | `-- R_PAREN: )
|
|
| | `-- Semi: ;
|
|
| |-- blockItem
|
|
| | `-- stmt
|
|
| | |-- exp
|
|
| | | `-- addExp
|
|
| | | `-- mulExp
|
|
| | | `-- unaryExp
|
|
| | | |-- Ident: putint
|
|
| | | |-- L_PAREN: (
|
|
| | | |-- funcRParams
|
|
| | | | `-- exp
|
|
| | | | `-- addExp
|
|
| | | | `-- mulExp
|
|
| | | | `-- unaryExp
|
|
| | | | `-- primaryExp
|
|
| | | | `-- lVal
|
|
| | | | `-- Ident: a27
|
|
| | | `-- R_PAREN: )
|
|
| | `-- Semi: ;
|
|
| |-- blockItem
|
|
| | `-- stmt
|
|
| | |-- exp
|
|
| | | `-- addExp
|
|
| | | `-- mulExp
|
|
| | | `-- unaryExp
|
|
| | | |-- Ident: putint
|
|
| | | |-- L_PAREN: (
|
|
| | | |-- funcRParams
|
|
| | | | `-- exp
|
|
| | | | `-- addExp
|
|
| | | | `-- mulExp
|
|
| | | | `-- unaryExp
|
|
| | | | `-- primaryExp
|
|
| | | | `-- lVal
|
|
| | | | `-- Ident: a28
|
|
| | | `-- R_PAREN: )
|
|
| | `-- Semi: ;
|
|
| |-- blockItem
|
|
| | `-- stmt
|
|
| | |-- exp
|
|
| | | `-- addExp
|
|
| | | `-- mulExp
|
|
| | | `-- unaryExp
|
|
| | | |-- Ident: putint
|
|
| | | |-- L_PAREN: (
|
|
| | | |-- funcRParams
|
|
| | | | `-- exp
|
|
| | | | `-- addExp
|
|
| | | | `-- mulExp
|
|
| | | | `-- unaryExp
|
|
| | | | `-- primaryExp
|
|
| | | | `-- lVal
|
|
| | | | `-- Ident: a29
|
|
| | | `-- R_PAREN: )
|
|
| | `-- Semi: ;
|
|
| |-- blockItem
|
|
| | `-- decl
|
|
| | `-- varDecl
|
|
| | |-- bType
|
|
| | | `-- Int: int
|
|
| | |-- varDef
|
|
| | | `-- Ident: newline
|
|
| | `-- Semi: ;
|
|
| |-- blockItem
|
|
| | `-- stmt
|
|
| | |-- lVal
|
|
| | | `-- Ident: newline
|
|
| | |-- Assign: =
|
|
| | |-- exp
|
|
| | | `-- addExp
|
|
| | | `-- mulExp
|
|
| | | `-- unaryExp
|
|
| | | `-- primaryExp
|
|
| | | `-- number
|
|
| | | `-- IntConst: 10
|
|
| | `-- Semi: ;
|
|
| |-- blockItem
|
|
| | `-- stmt
|
|
| | |-- exp
|
|
| | | `-- addExp
|
|
| | | `-- mulExp
|
|
| | | `-- unaryExp
|
|
| | | |-- Ident: putch
|
|
| | | |-- L_PAREN: (
|
|
| | | |-- funcRParams
|
|
| | | | `-- exp
|
|
| | | | `-- addExp
|
|
| | | | `-- mulExp
|
|
| | | | `-- unaryExp
|
|
| | | | `-- primaryExp
|
|
| | | | `-- lVal
|
|
| | | | `-- Ident: newline
|
|
| | | `-- R_PAREN: )
|
|
| | `-- Semi: ;
|
|
| |-- blockItem
|
|
| | `-- stmt
|
|
| | |-- exp
|
|
| | | `-- addExp
|
|
| | | `-- mulExp
|
|
| | | `-- unaryExp
|
|
| | | |-- Ident: putint
|
|
| | | |-- L_PAREN: (
|
|
| | | |-- funcRParams
|
|
| | | | `-- exp
|
|
| | | | `-- addExp
|
|
| | | | `-- mulExp
|
|
| | | | `-- unaryExp
|
|
| | | | `-- primaryExp
|
|
| | | | `-- lVal
|
|
| | | | `-- Ident: b
|
|
| | | `-- R_PAREN: )
|
|
| | `-- Semi: ;
|
|
| |-- blockItem
|
|
| | `-- stmt
|
|
| | |-- exp
|
|
| | | `-- addExp
|
|
| | | `-- mulExp
|
|
| | | `-- unaryExp
|
|
| | | |-- Ident: putch
|
|
| | | |-- L_PAREN: (
|
|
| | | |-- funcRParams
|
|
| | | | `-- exp
|
|
| | | | `-- addExp
|
|
| | | | `-- mulExp
|
|
| | | | `-- unaryExp
|
|
| | | | `-- primaryExp
|
|
| | | | `-- lVal
|
|
| | | | `-- Ident: newline
|
|
| | | `-- R_PAREN: )
|
|
| | `-- Semi: ;
|
|
| |-- blockItem
|
|
| | `-- stmt
|
|
| | |-- Return: return
|
|
| | |-- exp
|
|
| | | `-- addExp
|
|
| | | `-- mulExp
|
|
| | | `-- unaryExp
|
|
| | | `-- primaryExp
|
|
| | | `-- lVal
|
|
| | | `-- Ident: a25
|
|
| | `-- Semi: ;
|
|
| `-- R_BRACE: }
|
|
`-- EOF: <EOF>
|