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.
699 lines
49 KiB
699 lines
49 KiB
compUnit
|
|
`-- funcDef
|
|
|-- funcType
|
|
| `-- INT: int
|
|
|-- Ident: main
|
|
|-- LPAREN: (
|
|
|-- RPAREN: )
|
|
`-- block
|
|
|-- LBRACE: {
|
|
|-- blockItem
|
|
| `-- stmt
|
|
| |-- exp
|
|
| | `-- addExp
|
|
| | `-- mulExp
|
|
| | `-- unaryExp
|
|
| | |-- Ident: putch
|
|
| | |-- LPAREN: (
|
|
| | |-- funcRParams
|
|
| | | `-- exp
|
|
| | | `-- addExp
|
|
| | | `-- mulExp
|
|
| | | `-- unaryExp
|
|
| | | `-- primaryExp
|
|
| | | `-- number
|
|
| | | `-- IntConst: 97
|
|
| | `-- RPAREN: )
|
|
| `-- SEMI: ;
|
|
|-- blockItem
|
|
| `-- stmt
|
|
| |-- exp
|
|
| | `-- addExp
|
|
| | `-- mulExp
|
|
| | `-- unaryExp
|
|
| | |-- Ident: putch
|
|
| | |-- LPAREN: (
|
|
| | |-- funcRParams
|
|
| | | `-- exp
|
|
| | | `-- addExp
|
|
| | | `-- mulExp
|
|
| | | `-- unaryExp
|
|
| | | `-- primaryExp
|
|
| | | `-- number
|
|
| | | `-- IntConst: 10
|
|
| | `-- RPAREN: )
|
|
| `-- SEMI: ;
|
|
|-- blockItem
|
|
| `-- decl
|
|
| `-- varDecl
|
|
| |-- bType
|
|
| | `-- INT: int
|
|
| |-- varDef
|
|
| | |-- Ident: a
|
|
| | |-- ASSIGN: =
|
|
| | `-- initVal
|
|
| | `-- exp
|
|
| | `-- addExp
|
|
| | `-- mulExp
|
|
| | `-- unaryExp
|
|
| | `-- primaryExp
|
|
| | `-- number
|
|
| | `-- IntConst: 1
|
|
| |-- COMMA: ,
|
|
| |-- varDef
|
|
| | |-- Ident: putch
|
|
| | |-- ASSIGN: =
|
|
| | `-- initVal
|
|
| | `-- exp
|
|
| | `-- addExp
|
|
| | `-- mulExp
|
|
| | `-- unaryExp
|
|
| | `-- primaryExp
|
|
| | `-- number
|
|
| | `-- IntConst: 0
|
|
| `-- SEMI: ;
|
|
|-- blockItem
|
|
| `-- stmt
|
|
| `-- block
|
|
| |-- LBRACE: {
|
|
| |-- blockItem
|
|
| | `-- stmt
|
|
| | |-- lVal
|
|
| | | `-- Ident: a
|
|
| | |-- ASSIGN: =
|
|
| | |-- exp
|
|
| | | `-- addExp
|
|
| | | |-- addExp
|
|
| | | | `-- mulExp
|
|
| | | | `-- unaryExp
|
|
| | | | `-- primaryExp
|
|
| | | | `-- lVal
|
|
| | | | `-- Ident: a
|
|
| | | |-- ADD: +
|
|
| | | `-- mulExp
|
|
| | | `-- unaryExp
|
|
| | | `-- primaryExp
|
|
| | | `-- number
|
|
| | | `-- IntConst: 2
|
|
| | `-- SEMI: ;
|
|
| |-- blockItem
|
|
| | `-- decl
|
|
| | `-- varDecl
|
|
| | |-- bType
|
|
| | | `-- INT: int
|
|
| | |-- varDef
|
|
| | | |-- Ident: b
|
|
| | | |-- ASSIGN: =
|
|
| | | `-- initVal
|
|
| | | `-- exp
|
|
| | | `-- addExp
|
|
| | | |-- addExp
|
|
| | | | `-- mulExp
|
|
| | | | `-- unaryExp
|
|
| | | | `-- primaryExp
|
|
| | | | `-- lVal
|
|
| | | | `-- Ident: a
|
|
| | | |-- ADD: +
|
|
| | | `-- mulExp
|
|
| | | `-- unaryExp
|
|
| | | `-- primaryExp
|
|
| | | `-- number
|
|
| | | `-- IntConst: 3
|
|
| | `-- SEMI: ;
|
|
| |-- blockItem
|
|
| | `-- stmt
|
|
| | |-- lVal
|
|
| | | `-- Ident: b
|
|
| | |-- ASSIGN: =
|
|
| | |-- exp
|
|
| | | `-- addExp
|
|
| | | |-- addExp
|
|
| | | | `-- mulExp
|
|
| | | | `-- unaryExp
|
|
| | | | `-- primaryExp
|
|
| | | | `-- lVal
|
|
| | | | `-- Ident: b
|
|
| | | |-- ADD: +
|
|
| | | `-- mulExp
|
|
| | | `-- unaryExp
|
|
| | | `-- primaryExp
|
|
| | | `-- number
|
|
| | | `-- IntConst: 4
|
|
| | `-- SEMI: ;
|
|
| |-- blockItem
|
|
| | `-- stmt
|
|
| | |-- lVal
|
|
| | | `-- Ident: putch
|
|
| | |-- ASSIGN: =
|
|
| | |-- exp
|
|
| | | `-- addExp
|
|
| | | |-- addExp
|
|
| | | | |-- addExp
|
|
| | | | | `-- mulExp
|
|
| | | | | `-- unaryExp
|
|
| | | | | `-- primaryExp
|
|
| | | | | `-- lVal
|
|
| | | | | `-- Ident: putch
|
|
| | | | |-- ADD: +
|
|
| | | | `-- mulExp
|
|
| | | | `-- unaryExp
|
|
| | | | `-- primaryExp
|
|
| | | | `-- lVal
|
|
| | | | `-- Ident: a
|
|
| | | |-- ADD: +
|
|
| | | `-- mulExp
|
|
| | | `-- unaryExp
|
|
| | | `-- primaryExp
|
|
| | | `-- lVal
|
|
| | | `-- Ident: b
|
|
| | `-- SEMI: ;
|
|
| |-- blockItem
|
|
| | `-- stmt
|
|
| | `-- block
|
|
| | |-- LBRACE: {
|
|
| | |-- blockItem
|
|
| | | `-- stmt
|
|
| | | |-- lVal
|
|
| | | | `-- Ident: b
|
|
| | | |-- ASSIGN: =
|
|
| | | |-- exp
|
|
| | | | `-- addExp
|
|
| | | | |-- addExp
|
|
| | | | | `-- mulExp
|
|
| | | | | `-- unaryExp
|
|
| | | | | `-- primaryExp
|
|
| | | | | `-- lVal
|
|
| | | | | `-- Ident: b
|
|
| | | | |-- ADD: +
|
|
| | | | `-- mulExp
|
|
| | | | `-- unaryExp
|
|
| | | | `-- primaryExp
|
|
| | | | `-- number
|
|
| | | | `-- IntConst: 5
|
|
| | | `-- SEMI: ;
|
|
| | |-- blockItem
|
|
| | | `-- decl
|
|
| | | `-- varDecl
|
|
| | | |-- bType
|
|
| | | | `-- INT: int
|
|
| | | |-- varDef
|
|
| | | | |-- Ident: main
|
|
| | | | |-- ASSIGN: =
|
|
| | | | `-- initVal
|
|
| | | | `-- exp
|
|
| | | | `-- addExp
|
|
| | | | |-- addExp
|
|
| | | | | `-- mulExp
|
|
| | | | | `-- unaryExp
|
|
| | | | | `-- primaryExp
|
|
| | | | | `-- lVal
|
|
| | | | | `-- Ident: b
|
|
| | | | |-- ADD: +
|
|
| | | | `-- mulExp
|
|
| | | | `-- unaryExp
|
|
| | | | `-- primaryExp
|
|
| | | | `-- number
|
|
| | | | `-- IntConst: 6
|
|
| | | `-- SEMI: ;
|
|
| | |-- blockItem
|
|
| | | `-- stmt
|
|
| | | |-- lVal
|
|
| | | | `-- Ident: a
|
|
| | | |-- ASSIGN: =
|
|
| | | |-- exp
|
|
| | | | `-- addExp
|
|
| | | | |-- addExp
|
|
| | | | | `-- mulExp
|
|
| | | | | `-- unaryExp
|
|
| | | | | `-- primaryExp
|
|
| | | | | `-- lVal
|
|
| | | | | `-- Ident: a
|
|
| | | | |-- ADD: +
|
|
| | | | `-- mulExp
|
|
| | | | `-- unaryExp
|
|
| | | | `-- primaryExp
|
|
| | | | `-- lVal
|
|
| | | | `-- Ident: main
|
|
| | | `-- SEMI: ;
|
|
| | |-- blockItem
|
|
| | | `-- stmt
|
|
| | | |-- lVal
|
|
| | | | `-- Ident: putch
|
|
| | | |-- ASSIGN: =
|
|
| | | |-- exp
|
|
| | | | `-- addExp
|
|
| | | | |-- addExp
|
|
| | | | | |-- addExp
|
|
| | | | | | |-- addExp
|
|
| | | | | | | `-- mulExp
|
|
| | | | | | | `-- unaryExp
|
|
| | | | | | | `-- primaryExp
|
|
| | | | | | | `-- lVal
|
|
| | | | | | | `-- Ident: putch
|
|
| | | | | | |-- ADD: +
|
|
| | | | | | `-- mulExp
|
|
| | | | | | `-- unaryExp
|
|
| | | | | | `-- primaryExp
|
|
| | | | | | `-- lVal
|
|
| | | | | | `-- Ident: a
|
|
| | | | | |-- ADD: +
|
|
| | | | | `-- mulExp
|
|
| | | | | `-- unaryExp
|
|
| | | | | `-- primaryExp
|
|
| | | | | `-- lVal
|
|
| | | | | `-- Ident: b
|
|
| | | | |-- ADD: +
|
|
| | | | `-- mulExp
|
|
| | | | `-- unaryExp
|
|
| | | | `-- primaryExp
|
|
| | | | `-- lVal
|
|
| | | | `-- Ident: main
|
|
| | | `-- SEMI: ;
|
|
| | |-- blockItem
|
|
| | | `-- stmt
|
|
| | | `-- block
|
|
| | | |-- LBRACE: {
|
|
| | | |-- blockItem
|
|
| | | | `-- stmt
|
|
| | | | |-- lVal
|
|
| | | | | `-- Ident: b
|
|
| | | | |-- ASSIGN: =
|
|
| | | | |-- exp
|
|
| | | | | `-- addExp
|
|
| | | | | |-- addExp
|
|
| | | | | | `-- mulExp
|
|
| | | | | | `-- unaryExp
|
|
| | | | | | `-- primaryExp
|
|
| | | | | | `-- lVal
|
|
| | | | | | `-- Ident: b
|
|
| | | | | |-- ADD: +
|
|
| | | | | `-- mulExp
|
|
| | | | | `-- unaryExp
|
|
| | | | | `-- primaryExp
|
|
| | | | | `-- lVal
|
|
| | | | | `-- Ident: a
|
|
| | | | `-- SEMI: ;
|
|
| | | |-- blockItem
|
|
| | | | `-- decl
|
|
| | | | `-- varDecl
|
|
| | | | |-- bType
|
|
| | | | | `-- INT: int
|
|
| | | | |-- varDef
|
|
| | | | | |-- Ident: a
|
|
| | | | | |-- ASSIGN: =
|
|
| | | | | `-- initVal
|
|
| | | | | `-- exp
|
|
| | | | | `-- addExp
|
|
| | | | | |-- addExp
|
|
| | | | | | `-- mulExp
|
|
| | | | | | `-- unaryExp
|
|
| | | | | | `-- primaryExp
|
|
| | | | | | `-- lVal
|
|
| | | | | | `-- Ident: main
|
|
| | | | | |-- ADD: +
|
|
| | | | | `-- mulExp
|
|
| | | | | `-- unaryExp
|
|
| | | | | `-- primaryExp
|
|
| | | | | `-- number
|
|
| | | | | `-- IntConst: 7
|
|
| | | | `-- SEMI: ;
|
|
| | | |-- blockItem
|
|
| | | | `-- stmt
|
|
| | | | |-- lVal
|
|
| | | | | `-- Ident: a
|
|
| | | | |-- ASSIGN: =
|
|
| | | | |-- exp
|
|
| | | | | `-- addExp
|
|
| | | | | |-- addExp
|
|
| | | | | | `-- mulExp
|
|
| | | | | | `-- unaryExp
|
|
| | | | | | `-- primaryExp
|
|
| | | | | | `-- lVal
|
|
| | | | | | `-- Ident: a
|
|
| | | | | |-- ADD: +
|
|
| | | | | `-- mulExp
|
|
| | | | | `-- unaryExp
|
|
| | | | | `-- primaryExp
|
|
| | | | | `-- number
|
|
| | | | | `-- IntConst: 8
|
|
| | | | `-- SEMI: ;
|
|
| | | |-- blockItem
|
|
| | | | `-- stmt
|
|
| | | | |-- lVal
|
|
| | | | | `-- Ident: putch
|
|
| | | | |-- ASSIGN: =
|
|
| | | | |-- exp
|
|
| | | | | `-- addExp
|
|
| | | | | |-- addExp
|
|
| | | | | | |-- addExp
|
|
| | | | | | | |-- addExp
|
|
| | | | | | | | `-- mulExp
|
|
| | | | | | | | `-- unaryExp
|
|
| | | | | | | | `-- primaryExp
|
|
| | | | | | | | `-- lVal
|
|
| | | | | | | | `-- Ident: putch
|
|
| | | | | | | |-- ADD: +
|
|
| | | | | | | `-- mulExp
|
|
| | | | | | | `-- unaryExp
|
|
| | | | | | | `-- primaryExp
|
|
| | | | | | | `-- lVal
|
|
| | | | | | | `-- Ident: a
|
|
| | | | | | |-- ADD: +
|
|
| | | | | | `-- mulExp
|
|
| | | | | | `-- unaryExp
|
|
| | | | | | `-- primaryExp
|
|
| | | | | | `-- lVal
|
|
| | | | | | `-- Ident: b
|
|
| | | | | |-- ADD: +
|
|
| | | | | `-- mulExp
|
|
| | | | | `-- unaryExp
|
|
| | | | | `-- primaryExp
|
|
| | | | | `-- lVal
|
|
| | | | | `-- Ident: main
|
|
| | | | `-- SEMI: ;
|
|
| | | |-- blockItem
|
|
| | | | `-- stmt
|
|
| | | | `-- block
|
|
| | | | |-- LBRACE: {
|
|
| | | | |-- blockItem
|
|
| | | | | `-- stmt
|
|
| | | | | |-- lVal
|
|
| | | | | | `-- Ident: b
|
|
| | | | | |-- ASSIGN: =
|
|
| | | | | |-- exp
|
|
| | | | | | `-- addExp
|
|
| | | | | | |-- addExp
|
|
| | | | | | | `-- mulExp
|
|
| | | | | | | `-- unaryExp
|
|
| | | | | | | `-- primaryExp
|
|
| | | | | | | `-- lVal
|
|
| | | | | | | `-- Ident: b
|
|
| | | | | | |-- ADD: +
|
|
| | | | | | `-- mulExp
|
|
| | | | | | `-- unaryExp
|
|
| | | | | | `-- primaryExp
|
|
| | | | | | `-- lVal
|
|
| | | | | | `-- Ident: a
|
|
| | | | | `-- SEMI: ;
|
|
| | | | |-- blockItem
|
|
| | | | | `-- decl
|
|
| | | | | `-- varDecl
|
|
| | | | | |-- bType
|
|
| | | | | | `-- INT: int
|
|
| | | | | |-- varDef
|
|
| | | | | | |-- Ident: b
|
|
| | | | | | |-- ASSIGN: =
|
|
| | | | | | `-- initVal
|
|
| | | | | | `-- exp
|
|
| | | | | | `-- addExp
|
|
| | | | | | |-- addExp
|
|
| | | | | | | `-- mulExp
|
|
| | | | | | | `-- unaryExp
|
|
| | | | | | | `-- primaryExp
|
|
| | | | | | | `-- lVal
|
|
| | | | | | | `-- Ident: main
|
|
| | | | | | |-- ADD: +
|
|
| | | | | | `-- mulExp
|
|
| | | | | | `-- unaryExp
|
|
| | | | | | `-- primaryExp
|
|
| | | | | | `-- number
|
|
| | | | | | `-- IntConst: 9
|
|
| | | | | `-- SEMI: ;
|
|
| | | | |-- blockItem
|
|
| | | | | `-- stmt
|
|
| | | | | |-- lVal
|
|
| | | | | | `-- Ident: a
|
|
| | | | | |-- ASSIGN: =
|
|
| | | | | |-- exp
|
|
| | | | | | `-- addExp
|
|
| | | | | | |-- addExp
|
|
| | | | | | | `-- mulExp
|
|
| | | | | | | `-- unaryExp
|
|
| | | | | | | `-- primaryExp
|
|
| | | | | | | `-- lVal
|
|
| | | | | | | `-- Ident: a
|
|
| | | | | | |-- ADD: +
|
|
| | | | | | `-- mulExp
|
|
| | | | | | `-- unaryExp
|
|
| | | | | | `-- primaryExp
|
|
| | | | | | `-- number
|
|
| | | | | | `-- IntConst: 10
|
|
| | | | | `-- SEMI: ;
|
|
| | | | |-- blockItem
|
|
| | | | | `-- decl
|
|
| | | | | `-- constDecl
|
|
| | | | | |-- CONST: const
|
|
| | | | | |-- bType
|
|
| | | | | | `-- INT: int
|
|
| | | | | |-- constDef
|
|
| | | | | | |-- Ident: a
|
|
| | | | | | |-- ASSIGN: =
|
|
| | | | | | `-- constInitVal
|
|
| | | | | | `-- constExp
|
|
| | | | | | `-- addExp
|
|
| | | | | | `-- mulExp
|
|
| | | | | | `-- unaryExp
|
|
| | | | | | `-- primaryExp
|
|
| | | | | | `-- number
|
|
| | | | | | `-- IntConst: 11
|
|
| | | | | `-- SEMI: ;
|
|
| | | | |-- blockItem
|
|
| | | | | `-- stmt
|
|
| | | | | |-- lVal
|
|
| | | | | | `-- Ident: b
|
|
| | | | | |-- ASSIGN: =
|
|
| | | | | |-- exp
|
|
| | | | | | `-- addExp
|
|
| | | | | | |-- addExp
|
|
| | | | | | | `-- mulExp
|
|
| | | | | | | `-- unaryExp
|
|
| | | | | | | `-- primaryExp
|
|
| | | | | | | `-- lVal
|
|
| | | | | | | `-- Ident: b
|
|
| | | | | | |-- ADD: +
|
|
| | | | | | `-- mulExp
|
|
| | | | | | `-- unaryExp
|
|
| | | | | | `-- primaryExp
|
|
| | | | | | `-- number
|
|
| | | | | | `-- IntConst: 12
|
|
| | | | | `-- SEMI: ;
|
|
| | | | |-- blockItem
|
|
| | | | | `-- stmt
|
|
| | | | | |-- lVal
|
|
| | | | | | `-- Ident: putch
|
|
| | | | | |-- ASSIGN: =
|
|
| | | | | |-- exp
|
|
| | | | | | `-- addExp
|
|
| | | | | | |-- addExp
|
|
| | | | | | | |-- addExp
|
|
| | | | | | | | |-- addExp
|
|
| | | | | | | | | `-- mulExp
|
|
| | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | `-- lVal
|
|
| | | | | | | | | `-- Ident: putch
|
|
| | | | | | | | |-- ADD: +
|
|
| | | | | | | | `-- mulExp
|
|
| | | | | | | | `-- unaryExp
|
|
| | | | | | | | `-- primaryExp
|
|
| | | | | | | | `-- lVal
|
|
| | | | | | | | `-- Ident: a
|
|
| | | | | | | |-- ADD: +
|
|
| | | | | | | `-- mulExp
|
|
| | | | | | | `-- unaryExp
|
|
| | | | | | | `-- primaryExp
|
|
| | | | | | | `-- lVal
|
|
| | | | | | | `-- Ident: b
|
|
| | | | | | |-- ADD: +
|
|
| | | | | | `-- mulExp
|
|
| | | | | | `-- unaryExp
|
|
| | | | | | `-- primaryExp
|
|
| | | | | | `-- lVal
|
|
| | | | | | `-- Ident: main
|
|
| | | | | `-- SEMI: ;
|
|
| | | | |-- blockItem
|
|
| | | | | `-- stmt
|
|
| | | | | `-- block
|
|
| | | | | |-- LBRACE: {
|
|
| | | | | |-- blockItem
|
|
| | | | | | `-- stmt
|
|
| | | | | | |-- lVal
|
|
| | | | | | | `-- Ident: main
|
|
| | | | | | |-- ASSIGN: =
|
|
| | | | | | |-- exp
|
|
| | | | | | | `-- addExp
|
|
| | | | | | | |-- addExp
|
|
| | | | | | | | `-- mulExp
|
|
| | | | | | | | `-- unaryExp
|
|
| | | | | | | | `-- primaryExp
|
|
| | | | | | | | `-- lVal
|
|
| | | | | | | | `-- Ident: main
|
|
| | | | | | | |-- ADD: +
|
|
| | | | | | | `-- mulExp
|
|
| | | | | | | `-- unaryExp
|
|
| | | | | | | `-- primaryExp
|
|
| | | | | | | `-- lVal
|
|
| | | | | | | `-- Ident: b
|
|
| | | | | | `-- SEMI: ;
|
|
| | | | | |-- blockItem
|
|
| | | | | | `-- decl
|
|
| | | | | | `-- varDecl
|
|
| | | | | | |-- bType
|
|
| | | | | | | `-- INT: int
|
|
| | | | | | |-- varDef
|
|
| | | | | | | |-- Ident: main
|
|
| | | | | | | |-- ASSIGN: =
|
|
| | | | | | | `-- initVal
|
|
| | | | | | | `-- exp
|
|
| | | | | | | `-- addExp
|
|
| | | | | | | |-- addExp
|
|
| | | | | | | | `-- mulExp
|
|
| | | | | | | | `-- unaryExp
|
|
| | | | | | | | `-- primaryExp
|
|
| | | | | | | | `-- lVal
|
|
| | | | | | | | `-- Ident: b
|
|
| | | | | | | |-- ADD: +
|
|
| | | | | | | `-- mulExp
|
|
| | | | | | | `-- unaryExp
|
|
| | | | | | | `-- primaryExp
|
|
| | | | | | | `-- number
|
|
| | | | | | | `-- IntConst: 13
|
|
| | | | | | `-- SEMI: ;
|
|
| | | | | |-- blockItem
|
|
| | | | | | `-- stmt
|
|
| | | | | | |-- lVal
|
|
| | | | | | | `-- Ident: main
|
|
| | | | | | |-- ASSIGN: =
|
|
| | | | | | |-- exp
|
|
| | | | | | | `-- addExp
|
|
| | | | | | | |-- addExp
|
|
| | | | | | | | `-- mulExp
|
|
| | | | | | | | `-- unaryExp
|
|
| | | | | | | | `-- primaryExp
|
|
| | | | | | | | `-- lVal
|
|
| | | | | | | | `-- Ident: main
|
|
| | | | | | | |-- ADD: +
|
|
| | | | | | | `-- mulExp
|
|
| | | | | | | `-- unaryExp
|
|
| | | | | | | `-- primaryExp
|
|
| | | | | | | `-- lVal
|
|
| | | | | | | `-- Ident: a
|
|
| | | | | | `-- SEMI: ;
|
|
| | | | | |-- blockItem
|
|
| | | | | | `-- stmt
|
|
| | | | | | |-- lVal
|
|
| | | | | | | `-- Ident: putch
|
|
| | | | | | |-- ASSIGN: =
|
|
| | | | | | |-- exp
|
|
| | | | | | | `-- addExp
|
|
| | | | | | | |-- addExp
|
|
| | | | | | | | |-- addExp
|
|
| | | | | | | | | |-- addExp
|
|
| | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | `-- Ident: putch
|
|
| | | | | | | | | |-- ADD: +
|
|
| | | | | | | | | `-- mulExp
|
|
| | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | `-- lVal
|
|
| | | | | | | | | `-- Ident: a
|
|
| | | | | | | | |-- ADD: +
|
|
| | | | | | | | `-- mulExp
|
|
| | | | | | | | `-- unaryExp
|
|
| | | | | | | | `-- primaryExp
|
|
| | | | | | | | `-- lVal
|
|
| | | | | | | | `-- Ident: b
|
|
| | | | | | | |-- ADD: +
|
|
| | | | | | | `-- mulExp
|
|
| | | | | | | `-- unaryExp
|
|
| | | | | | | `-- primaryExp
|
|
| | | | | | | `-- lVal
|
|
| | | | | | | `-- Ident: main
|
|
| | | | | | `-- SEMI: ;
|
|
| | | | | `-- RBRACE: }
|
|
| | | | |-- blockItem
|
|
| | | | | `-- stmt
|
|
| | | | | |-- lVal
|
|
| | | | | | `-- Ident: putch
|
|
| | | | | |-- ASSIGN: =
|
|
| | | | | |-- exp
|
|
| | | | | | `-- addExp
|
|
| | | | | | |-- addExp
|
|
| | | | | | | `-- mulExp
|
|
| | | | | | | `-- unaryExp
|
|
| | | | | | | `-- primaryExp
|
|
| | | | | | | `-- lVal
|
|
| | | | | | | `-- Ident: putch
|
|
| | | | | | |-- SUB: -
|
|
| | | | | | `-- mulExp
|
|
| | | | | | `-- unaryExp
|
|
| | | | | | `-- primaryExp
|
|
| | | | | | `-- lVal
|
|
| | | | | | `-- Ident: main
|
|
| | | | | `-- SEMI: ;
|
|
| | | | `-- RBRACE: }
|
|
| | | |-- blockItem
|
|
| | | | `-- stmt
|
|
| | | | |-- lVal
|
|
| | | | | `-- Ident: putch
|
|
| | | | |-- ASSIGN: =
|
|
| | | | |-- exp
|
|
| | | | | `-- addExp
|
|
| | | | | |-- addExp
|
|
| | | | | | `-- mulExp
|
|
| | | | | | `-- unaryExp
|
|
| | | | | | `-- primaryExp
|
|
| | | | | | `-- lVal
|
|
| | | | | | `-- Ident: putch
|
|
| | | | | |-- SUB: -
|
|
| | | | | `-- mulExp
|
|
| | | | | `-- unaryExp
|
|
| | | | | `-- primaryExp
|
|
| | | | | `-- lVal
|
|
| | | | | `-- Ident: b
|
|
| | | | `-- SEMI: ;
|
|
| | | `-- RBRACE: }
|
|
| | |-- blockItem
|
|
| | | `-- stmt
|
|
| | | |-- lVal
|
|
| | | | `-- Ident: putch
|
|
| | | |-- ASSIGN: =
|
|
| | | |-- exp
|
|
| | | | `-- addExp
|
|
| | | | |-- addExp
|
|
| | | | | `-- mulExp
|
|
| | | | | `-- unaryExp
|
|
| | | | | `-- primaryExp
|
|
| | | | | `-- lVal
|
|
| | | | | `-- Ident: putch
|
|
| | | | |-- SUB: -
|
|
| | | | `-- mulExp
|
|
| | | | `-- unaryExp
|
|
| | | | `-- primaryExp
|
|
| | | | `-- lVal
|
|
| | | | `-- Ident: a
|
|
| | | `-- SEMI: ;
|
|
| | `-- RBRACE: }
|
|
| `-- RBRACE: }
|
|
|-- blockItem
|
|
| `-- stmt
|
|
| |-- RETURN: return
|
|
| |-- exp
|
|
| | `-- addExp
|
|
| | `-- mulExp
|
|
| | |-- mulExp
|
|
| | | `-- unaryExp
|
|
| | | `-- primaryExp
|
|
| | | `-- lVal
|
|
| | | `-- Ident: putch
|
|
| | |-- MOD: %
|
|
| | `-- unaryExp
|
|
| | `-- primaryExp
|
|
| | `-- number
|
|
| | `-- IntConst: 77
|
|
| `-- SEMI: ;
|
|
`-- RBRACE: }
|