parent
e4fed12b92
commit
29d1315410
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@ -1,69 +1,68 @@
|
||||
compUnit
|
||||
|-- funcDef
|
||||
| |-- funcType
|
||||
| | `-- INT: int
|
||||
| |-- Ident: main
|
||||
| |-- LPAREN: (
|
||||
| |-- RPAREN: )
|
||||
| `-- block
|
||||
| |-- LBRACE: {
|
||||
| |-- blockItem
|
||||
| | `-- decl
|
||||
| | `-- varDecl
|
||||
| | |-- bType
|
||||
| | | `-- INT: int
|
||||
| | |-- varDef
|
||||
| | | `-- Ident: a
|
||||
| | |-- COMMA: ,
|
||||
| | |-- varDef
|
||||
| | | `-- Ident: b
|
||||
| | `-- SEMI: ;
|
||||
| |-- blockItem
|
||||
| | `-- stmt
|
||||
| | |-- lVal
|
||||
| | | `-- Ident: a
|
||||
| | |-- ASSIGN: =
|
||||
| | |-- exp
|
||||
| | | `-- addExp
|
||||
| | | `-- mulExp
|
||||
| | | `-- unaryExp
|
||||
| | | `-- primaryExp
|
||||
| | | `-- number
|
||||
| | | `-- IntConst: 10
|
||||
| | `-- SEMI: ;
|
||||
| |-- blockItem
|
||||
| | `-- stmt
|
||||
| | |-- lVal
|
||||
| | | `-- Ident: b
|
||||
| | |-- ASSIGN: =
|
||||
| | |-- exp
|
||||
| | | `-- addExp
|
||||
| | | `-- mulExp
|
||||
| | | `-- unaryExp
|
||||
| | | |-- unaryOp
|
||||
| | | | `-- SUB: -
|
||||
| | | `-- unaryExp
|
||||
| | | `-- primaryExp
|
||||
| | | `-- number
|
||||
| | | `-- IntConst: 1
|
||||
| | `-- SEMI: ;
|
||||
| |-- blockItem
|
||||
| | `-- stmt
|
||||
| | |-- RETURN: return
|
||||
| | |-- exp
|
||||
| | | `-- addExp
|
||||
| | | |-- addExp
|
||||
| | | | `-- mulExp
|
||||
| | | | `-- unaryExp
|
||||
| | | | `-- primaryExp
|
||||
| | | | `-- lVal
|
||||
| | | | `-- Ident: a
|
||||
| | | |-- ADD: +
|
||||
| | | `-- mulExp
|
||||
| | | `-- unaryExp
|
||||
| | | `-- primaryExp
|
||||
| | | `-- lVal
|
||||
| | | `-- Ident: b
|
||||
| | `-- SEMI: ;
|
||||
| `-- RBRACE: }
|
||||
`-- EOF: <EOF>
|
||||
`-- funcDef
|
||||
|-- funcType
|
||||
| `-- INT: int
|
||||
|-- Ident: main
|
||||
|-- LPAREN: (
|
||||
|-- RPAREN: )
|
||||
`-- block
|
||||
|-- LBRACE: {
|
||||
|-- blockItem
|
||||
| `-- decl
|
||||
| `-- varDecl
|
||||
| |-- bType
|
||||
| | `-- INT: int
|
||||
| |-- varDef
|
||||
| | `-- Ident: a
|
||||
| |-- COMMA: ,
|
||||
| |-- varDef
|
||||
| | `-- Ident: b
|
||||
| `-- SEMI: ;
|
||||
|-- blockItem
|
||||
| `-- stmt
|
||||
| |-- lVal
|
||||
| | `-- Ident: a
|
||||
| |-- ASSIGN: =
|
||||
| |-- exp
|
||||
| | `-- addExp
|
||||
| | `-- mulExp
|
||||
| | `-- unaryExp
|
||||
| | `-- primaryExp
|
||||
| | `-- number
|
||||
| | `-- IntConst: 10
|
||||
| `-- SEMI: ;
|
||||
|-- blockItem
|
||||
| `-- stmt
|
||||
| |-- lVal
|
||||
| | `-- Ident: b
|
||||
| |-- ASSIGN: =
|
||||
| |-- exp
|
||||
| | `-- addExp
|
||||
| | `-- mulExp
|
||||
| | `-- unaryExp
|
||||
| | |-- unaryOp
|
||||
| | | `-- SUB: -
|
||||
| | `-- unaryExp
|
||||
| | `-- primaryExp
|
||||
| | `-- number
|
||||
| | `-- IntConst: 1
|
||||
| `-- SEMI: ;
|
||||
|-- blockItem
|
||||
| `-- stmt
|
||||
| |-- RETURN: return
|
||||
| |-- exp
|
||||
| | `-- addExp
|
||||
| | |-- addExp
|
||||
| | | `-- mulExp
|
||||
| | | `-- unaryExp
|
||||
| | | `-- primaryExp
|
||||
| | | `-- lVal
|
||||
| | | `-- Ident: a
|
||||
| | |-- ADD: +
|
||||
| | `-- mulExp
|
||||
| | `-- unaryExp
|
||||
| | `-- primaryExp
|
||||
| | `-- lVal
|
||||
| | `-- Ident: b
|
||||
| `-- SEMI: ;
|
||||
`-- RBRACE: }
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@ -1,165 +1,164 @@
|
||||
compUnit
|
||||
|-- funcDef
|
||||
| |-- funcType
|
||||
| | `-- INT: int
|
||||
| |-- Ident: main
|
||||
| |-- LPAREN: (
|
||||
| |-- RPAREN: )
|
||||
| `-- block
|
||||
| |-- LBRACE: {
|
||||
| |-- blockItem
|
||||
| | `-- decl
|
||||
| | `-- varDecl
|
||||
| | |-- bType
|
||||
| | | `-- INT: int
|
||||
| | |-- varDef
|
||||
| | | `-- Ident: i
|
||||
| | `-- SEMI: ;
|
||||
| |-- blockItem
|
||||
| | `-- stmt
|
||||
| | |-- lVal
|
||||
| | | `-- Ident: i
|
||||
| | |-- ASSIGN: =
|
||||
| | |-- exp
|
||||
| | | `-- addExp
|
||||
| | | `-- mulExp
|
||||
| | | `-- unaryExp
|
||||
| | | `-- primaryExp
|
||||
| | | `-- number
|
||||
| | | `-- IntConst: 0
|
||||
| | `-- SEMI: ;
|
||||
| |-- blockItem
|
||||
| | `-- decl
|
||||
| | `-- varDecl
|
||||
| | |-- bType
|
||||
| | | `-- INT: int
|
||||
| | |-- varDef
|
||||
| | | `-- Ident: sum
|
||||
| | `-- SEMI: ;
|
||||
| |-- blockItem
|
||||
| | `-- stmt
|
||||
| | |-- lVal
|
||||
| | | `-- Ident: sum
|
||||
| | |-- ASSIGN: =
|
||||
| | |-- exp
|
||||
| | | `-- addExp
|
||||
| | | `-- mulExp
|
||||
| | | `-- unaryExp
|
||||
| | | `-- primaryExp
|
||||
| | | `-- number
|
||||
| | | `-- IntConst: 0
|
||||
| | `-- SEMI: ;
|
||||
| |-- blockItem
|
||||
| | `-- stmt
|
||||
| | |-- WHILE: while
|
||||
| | |-- LPAREN: (
|
||||
| | |-- cond
|
||||
| | | `-- lOrExp
|
||||
| | | `-- lAndExp
|
||||
| | | `-- eqExp
|
||||
| | | `-- relExp
|
||||
| | | |-- relExp
|
||||
| | | | `-- addExp
|
||||
| | | | `-- mulExp
|
||||
| | | | `-- unaryExp
|
||||
| | | | `-- primaryExp
|
||||
| | | | `-- lVal
|
||||
| | | | `-- Ident: i
|
||||
| | | |-- LT: <
|
||||
| | | `-- addExp
|
||||
| | | `-- mulExp
|
||||
| | | `-- unaryExp
|
||||
| | | `-- primaryExp
|
||||
| | | `-- number
|
||||
| | | `-- IntConst: 100
|
||||
| | |-- RPAREN: )
|
||||
| | `-- stmt
|
||||
| | `-- block
|
||||
| | |-- LBRACE: {
|
||||
| | |-- blockItem
|
||||
| | | `-- stmt
|
||||
| | | |-- IF: if
|
||||
| | | |-- LPAREN: (
|
||||
| | | |-- cond
|
||||
| | | | `-- lOrExp
|
||||
| | | | `-- lAndExp
|
||||
| | | | `-- eqExp
|
||||
| | | | |-- eqExp
|
||||
| | | | | `-- relExp
|
||||
| | | | | `-- addExp
|
||||
| | | | | `-- mulExp
|
||||
| | | | | `-- unaryExp
|
||||
| | | | | `-- primaryExp
|
||||
| | | | | `-- lVal
|
||||
| | | | | `-- Ident: i
|
||||
| | | | |-- EQ: ==
|
||||
| | | | `-- relExp
|
||||
| | | | `-- addExp
|
||||
| | | | `-- mulExp
|
||||
| | | | `-- unaryExp
|
||||
| | | | `-- primaryExp
|
||||
| | | | `-- number
|
||||
| | | | `-- IntConst: 50
|
||||
| | | |-- RPAREN: )
|
||||
| | | `-- stmt
|
||||
| | | `-- block
|
||||
| | | |-- LBRACE: {
|
||||
| | | |-- blockItem
|
||||
| | | | `-- stmt
|
||||
| | | | |-- BREAK: break
|
||||
| | | | `-- SEMI: ;
|
||||
| | | `-- RBRACE: }
|
||||
| | |-- blockItem
|
||||
| | | `-- stmt
|
||||
| | | |-- lVal
|
||||
| | | | `-- Ident: sum
|
||||
| | | |-- ASSIGN: =
|
||||
| | | |-- exp
|
||||
| | | | `-- addExp
|
||||
| | | | |-- addExp
|
||||
| | | | | `-- mulExp
|
||||
| | | | | `-- unaryExp
|
||||
| | | | | `-- primaryExp
|
||||
| | | | | `-- lVal
|
||||
| | | | | `-- Ident: sum
|
||||
| | | | |-- ADD: +
|
||||
| | | | `-- mulExp
|
||||
| | | | `-- unaryExp
|
||||
| | | | `-- primaryExp
|
||||
| | | | `-- lVal
|
||||
| | | | `-- Ident: i
|
||||
| | | `-- SEMI: ;
|
||||
| | |-- blockItem
|
||||
| | | `-- stmt
|
||||
| | | |-- lVal
|
||||
| | | | `-- Ident: i
|
||||
| | | |-- ASSIGN: =
|
||||
| | | |-- exp
|
||||
| | | | `-- addExp
|
||||
| | | | |-- addExp
|
||||
| | | | | `-- mulExp
|
||||
| | | | | `-- unaryExp
|
||||
| | | | | `-- primaryExp
|
||||
| | | | | `-- lVal
|
||||
| | | | | `-- Ident: i
|
||||
| | | | |-- ADD: +
|
||||
| | | | `-- mulExp
|
||||
| | | | `-- unaryExp
|
||||
| | | | `-- primaryExp
|
||||
| | | | `-- number
|
||||
| | | | `-- IntConst: 1
|
||||
| | | `-- SEMI: ;
|
||||
| | `-- RBRACE: }
|
||||
| |-- blockItem
|
||||
| | `-- stmt
|
||||
| | |-- RETURN: return
|
||||
| | |-- exp
|
||||
| | | `-- addExp
|
||||
| | | `-- mulExp
|
||||
| | | `-- unaryExp
|
||||
| | | `-- primaryExp
|
||||
| | | `-- lVal
|
||||
| | | `-- Ident: sum
|
||||
| | `-- SEMI: ;
|
||||
| `-- RBRACE: }
|
||||
`-- EOF: <EOF>
|
||||
`-- funcDef
|
||||
|-- funcType
|
||||
| `-- INT: int
|
||||
|-- Ident: main
|
||||
|-- LPAREN: (
|
||||
|-- RPAREN: )
|
||||
`-- block
|
||||
|-- LBRACE: {
|
||||
|-- blockItem
|
||||
| `-- decl
|
||||
| `-- varDecl
|
||||
| |-- bType
|
||||
| | `-- INT: int
|
||||
| |-- varDef
|
||||
| | `-- Ident: i
|
||||
| `-- SEMI: ;
|
||||
|-- blockItem
|
||||
| `-- stmt
|
||||
| |-- lVal
|
||||
| | `-- Ident: i
|
||||
| |-- ASSIGN: =
|
||||
| |-- exp
|
||||
| | `-- addExp
|
||||
| | `-- mulExp
|
||||
| | `-- unaryExp
|
||||
| | `-- primaryExp
|
||||
| | `-- number
|
||||
| | `-- IntConst: 0
|
||||
| `-- SEMI: ;
|
||||
|-- blockItem
|
||||
| `-- decl
|
||||
| `-- varDecl
|
||||
| |-- bType
|
||||
| | `-- INT: int
|
||||
| |-- varDef
|
||||
| | `-- Ident: sum
|
||||
| `-- SEMI: ;
|
||||
|-- blockItem
|
||||
| `-- stmt
|
||||
| |-- lVal
|
||||
| | `-- Ident: sum
|
||||
| |-- ASSIGN: =
|
||||
| |-- exp
|
||||
| | `-- addExp
|
||||
| | `-- mulExp
|
||||
| | `-- unaryExp
|
||||
| | `-- primaryExp
|
||||
| | `-- number
|
||||
| | `-- IntConst: 0
|
||||
| `-- SEMI: ;
|
||||
|-- blockItem
|
||||
| `-- stmt
|
||||
| |-- WHILE: while
|
||||
| |-- LPAREN: (
|
||||
| |-- cond
|
||||
| | `-- lOrExp
|
||||
| | `-- lAndExp
|
||||
| | `-- eqExp
|
||||
| | `-- relExp
|
||||
| | |-- relExp
|
||||
| | | `-- addExp
|
||||
| | | `-- mulExp
|
||||
| | | `-- unaryExp
|
||||
| | | `-- primaryExp
|
||||
| | | `-- lVal
|
||||
| | | `-- Ident: i
|
||||
| | |-- LT: <
|
||||
| | `-- addExp
|
||||
| | `-- mulExp
|
||||
| | `-- unaryExp
|
||||
| | `-- primaryExp
|
||||
| | `-- number
|
||||
| | `-- IntConst: 100
|
||||
| |-- RPAREN: )
|
||||
| `-- stmt
|
||||
| `-- block
|
||||
| |-- LBRACE: {
|
||||
| |-- blockItem
|
||||
| | `-- stmt
|
||||
| | |-- IF: if
|
||||
| | |-- LPAREN: (
|
||||
| | |-- cond
|
||||
| | | `-- lOrExp
|
||||
| | | `-- lAndExp
|
||||
| | | `-- eqExp
|
||||
| | | |-- eqExp
|
||||
| | | | `-- relExp
|
||||
| | | | `-- addExp
|
||||
| | | | `-- mulExp
|
||||
| | | | `-- unaryExp
|
||||
| | | | `-- primaryExp
|
||||
| | | | `-- lVal
|
||||
| | | | `-- Ident: i
|
||||
| | | |-- EQ: ==
|
||||
| | | `-- relExp
|
||||
| | | `-- addExp
|
||||
| | | `-- mulExp
|
||||
| | | `-- unaryExp
|
||||
| | | `-- primaryExp
|
||||
| | | `-- number
|
||||
| | | `-- IntConst: 50
|
||||
| | |-- RPAREN: )
|
||||
| | `-- stmt
|
||||
| | `-- block
|
||||
| | |-- LBRACE: {
|
||||
| | |-- blockItem
|
||||
| | | `-- stmt
|
||||
| | | |-- BREAK: break
|
||||
| | | `-- SEMI: ;
|
||||
| | `-- RBRACE: }
|
||||
| |-- blockItem
|
||||
| | `-- stmt
|
||||
| | |-- lVal
|
||||
| | | `-- Ident: sum
|
||||
| | |-- ASSIGN: =
|
||||
| | |-- exp
|
||||
| | | `-- addExp
|
||||
| | | |-- addExp
|
||||
| | | | `-- mulExp
|
||||
| | | | `-- unaryExp
|
||||
| | | | `-- primaryExp
|
||||
| | | | `-- lVal
|
||||
| | | | `-- Ident: sum
|
||||
| | | |-- ADD: +
|
||||
| | | `-- mulExp
|
||||
| | | `-- unaryExp
|
||||
| | | `-- primaryExp
|
||||
| | | `-- lVal
|
||||
| | | `-- Ident: i
|
||||
| | `-- SEMI: ;
|
||||
| |-- blockItem
|
||||
| | `-- stmt
|
||||
| | |-- lVal
|
||||
| | | `-- Ident: i
|
||||
| | |-- ASSIGN: =
|
||||
| | |-- exp
|
||||
| | | `-- addExp
|
||||
| | | |-- addExp
|
||||
| | | | `-- mulExp
|
||||
| | | | `-- unaryExp
|
||||
| | | | `-- primaryExp
|
||||
| | | | `-- lVal
|
||||
| | | | `-- Ident: i
|
||||
| | | |-- ADD: +
|
||||
| | | `-- mulExp
|
||||
| | | `-- unaryExp
|
||||
| | | `-- primaryExp
|
||||
| | | `-- number
|
||||
| | | `-- IntConst: 1
|
||||
| | `-- SEMI: ;
|
||||
| `-- RBRACE: }
|
||||
|-- blockItem
|
||||
| `-- stmt
|
||||
| |-- RETURN: return
|
||||
| |-- exp
|
||||
| | `-- addExp
|
||||
| | `-- mulExp
|
||||
| | `-- unaryExp
|
||||
| | `-- primaryExp
|
||||
| | `-- lVal
|
||||
| | `-- Ident: sum
|
||||
| `-- SEMI: ;
|
||||
`-- RBRACE: }
|
||||
|
||||
@ -1,125 +1,124 @@
|
||||
compUnit
|
||||
|-- funcDef
|
||||
| |-- funcType
|
||||
| | `-- INT: int
|
||||
| |-- Ident: main
|
||||
| |-- LPAREN: (
|
||||
| |-- RPAREN: )
|
||||
| `-- block
|
||||
| |-- LBRACE: {
|
||||
| |-- 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
|
||||
| | | `-- primaryExp
|
||||
| | | `-- number
|
||||
| | | `-- IntConst: 10
|
||||
| | `-- SEMI: ;
|
||||
| |-- blockItem
|
||||
| | `-- stmt
|
||||
| | |-- lVal
|
||||
| | | `-- Ident: b
|
||||
| | |-- ASSIGN: =
|
||||
| | |-- exp
|
||||
| | | `-- addExp
|
||||
| | | `-- mulExp
|
||||
| | | `-- unaryExp
|
||||
| | | `-- primaryExp
|
||||
| | | `-- number
|
||||
| | | `-- IntConst: 4
|
||||
| | `-- SEMI: ;
|
||||
| |-- blockItem
|
||||
| | `-- stmt
|
||||
| | |-- lVal
|
||||
| | | `-- Ident: c
|
||||
| | |-- ASSIGN: =
|
||||
| | |-- exp
|
||||
| | | `-- addExp
|
||||
| | | `-- mulExp
|
||||
| | | `-- unaryExp
|
||||
| | | `-- primaryExp
|
||||
| | | `-- number
|
||||
| | | `-- IntConst: 2
|
||||
| | `-- SEMI: ;
|
||||
| |-- blockItem
|
||||
| | `-- stmt
|
||||
| | |-- lVal
|
||||
| | | `-- Ident: d
|
||||
| | |-- ASSIGN: =
|
||||
| | |-- exp
|
||||
| | | `-- addExp
|
||||
| | | `-- mulExp
|
||||
| | | `-- unaryExp
|
||||
| | | `-- primaryExp
|
||||
| | | `-- number
|
||||
| | | `-- IntConst: 2
|
||||
| | `-- SEMI: ;
|
||||
| |-- blockItem
|
||||
| | `-- stmt
|
||||
| | |-- RETURN: return
|
||||
| | |-- exp
|
||||
| | | `-- addExp
|
||||
| | | `-- mulExp
|
||||
| | | |-- mulExp
|
||||
| | | | `-- unaryExp
|
||||
| | | | `-- primaryExp
|
||||
| | | | |-- LPAREN: (
|
||||
| | | | |-- exp
|
||||
| | | | | `-- addExp
|
||||
| | | | | |-- addExp
|
||||
| | | | | | `-- mulExp
|
||||
| | | | | | `-- unaryExp
|
||||
| | | | | | `-- primaryExp
|
||||
| | | | | | `-- lVal
|
||||
| | | | | | `-- Ident: c
|
||||
| | | | | |-- ADD: +
|
||||
| | | | | `-- mulExp
|
||||
| | | | | `-- unaryExp
|
||||
| | | | | `-- primaryExp
|
||||
| | | | | `-- lVal
|
||||
| | | | | `-- Ident: a
|
||||
| | | | `-- RPAREN: )
|
||||
| | | |-- MUL: *
|
||||
| | | `-- unaryExp
|
||||
| | | `-- primaryExp
|
||||
| | | |-- LPAREN: (
|
||||
| | | |-- exp
|
||||
| | | | `-- addExp
|
||||
| | | | |-- addExp
|
||||
| | | | | `-- mulExp
|
||||
| | | | | `-- unaryExp
|
||||
| | | | | `-- primaryExp
|
||||
| | | | | `-- lVal
|
||||
| | | | | `-- Ident: b
|
||||
| | | | |-- SUB: -
|
||||
| | | | `-- mulExp
|
||||
| | | | `-- unaryExp
|
||||
| | | | `-- primaryExp
|
||||
| | | | `-- lVal
|
||||
| | | | `-- Ident: d
|
||||
| | | `-- RPAREN: )
|
||||
| | `-- SEMI: ;
|
||||
| `-- RBRACE: }
|
||||
`-- EOF: <EOF>
|
||||
`-- funcDef
|
||||
|-- funcType
|
||||
| `-- INT: int
|
||||
|-- Ident: main
|
||||
|-- LPAREN: (
|
||||
|-- RPAREN: )
|
||||
`-- block
|
||||
|-- LBRACE: {
|
||||
|-- 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
|
||||
| | `-- primaryExp
|
||||
| | `-- number
|
||||
| | `-- IntConst: 10
|
||||
| `-- SEMI: ;
|
||||
|-- blockItem
|
||||
| `-- stmt
|
||||
| |-- lVal
|
||||
| | `-- Ident: b
|
||||
| |-- ASSIGN: =
|
||||
| |-- exp
|
||||
| | `-- addExp
|
||||
| | `-- mulExp
|
||||
| | `-- unaryExp
|
||||
| | `-- primaryExp
|
||||
| | `-- number
|
||||
| | `-- IntConst: 4
|
||||
| `-- SEMI: ;
|
||||
|-- blockItem
|
||||
| `-- stmt
|
||||
| |-- lVal
|
||||
| | `-- Ident: c
|
||||
| |-- ASSIGN: =
|
||||
| |-- exp
|
||||
| | `-- addExp
|
||||
| | `-- mulExp
|
||||
| | `-- unaryExp
|
||||
| | `-- primaryExp
|
||||
| | `-- number
|
||||
| | `-- IntConst: 2
|
||||
| `-- SEMI: ;
|
||||
|-- blockItem
|
||||
| `-- stmt
|
||||
| |-- lVal
|
||||
| | `-- Ident: d
|
||||
| |-- ASSIGN: =
|
||||
| |-- exp
|
||||
| | `-- addExp
|
||||
| | `-- mulExp
|
||||
| | `-- unaryExp
|
||||
| | `-- primaryExp
|
||||
| | `-- number
|
||||
| | `-- IntConst: 2
|
||||
| `-- SEMI: ;
|
||||
|-- blockItem
|
||||
| `-- stmt
|
||||
| |-- RETURN: return
|
||||
| |-- exp
|
||||
| | `-- addExp
|
||||
| | `-- mulExp
|
||||
| | |-- mulExp
|
||||
| | | `-- unaryExp
|
||||
| | | `-- primaryExp
|
||||
| | | |-- LPAREN: (
|
||||
| | | |-- exp
|
||||
| | | | `-- addExp
|
||||
| | | | |-- addExp
|
||||
| | | | | `-- mulExp
|
||||
| | | | | `-- unaryExp
|
||||
| | | | | `-- primaryExp
|
||||
| | | | | `-- lVal
|
||||
| | | | | `-- Ident: c
|
||||
| | | | |-- ADD: +
|
||||
| | | | `-- mulExp
|
||||
| | | | `-- unaryExp
|
||||
| | | | `-- primaryExp
|
||||
| | | | `-- lVal
|
||||
| | | | `-- Ident: a
|
||||
| | | `-- RPAREN: )
|
||||
| | |-- MUL: *
|
||||
| | `-- unaryExp
|
||||
| | `-- primaryExp
|
||||
| | |-- LPAREN: (
|
||||
| | |-- exp
|
||||
| | | `-- addExp
|
||||
| | | |-- addExp
|
||||
| | | | `-- mulExp
|
||||
| | | | `-- unaryExp
|
||||
| | | | `-- primaryExp
|
||||
| | | | `-- lVal
|
||||
| | | | `-- Ident: b
|
||||
| | | |-- SUB: -
|
||||
| | | `-- mulExp
|
||||
| | | `-- unaryExp
|
||||
| | | `-- primaryExp
|
||||
| | | `-- lVal
|
||||
| | | `-- Ident: d
|
||||
| | `-- RPAREN: )
|
||||
| `-- SEMI: ;
|
||||
`-- RBRACE: }
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@ -1,63 +1,62 @@
|
||||
compUnit
|
||||
|-- funcDef
|
||||
| |-- funcType
|
||||
| | `-- INT: int
|
||||
| |-- Ident: main
|
||||
| |-- LPAREN: (
|
||||
| |-- RPAREN: )
|
||||
| `-- block
|
||||
| |-- LBRACE: {
|
||||
| |-- blockItem
|
||||
| | `-- decl
|
||||
| | `-- varDecl
|
||||
| | |-- bType
|
||||
| | | `-- INT: int
|
||||
| | |-- varDef
|
||||
| | | |-- Ident: a
|
||||
| | | |-- ASSIGN: =
|
||||
| | | `-- initVal
|
||||
| | | `-- exp
|
||||
| | | `-- addExp
|
||||
| | | `-- mulExp
|
||||
| | | `-- unaryExp
|
||||
| | | `-- primaryExp
|
||||
| | | `-- number
|
||||
| | | `-- IntConst: 1
|
||||
| | `-- SEMI: ;
|
||||
| |-- blockItem
|
||||
| | `-- decl
|
||||
| | `-- varDecl
|
||||
| | |-- bType
|
||||
| | | `-- INT: int
|
||||
| | |-- varDef
|
||||
| | | |-- Ident: b
|
||||
| | | |-- ASSIGN: =
|
||||
| | | `-- initVal
|
||||
| | | `-- exp
|
||||
| | | `-- addExp
|
||||
| | | `-- mulExp
|
||||
| | | `-- unaryExp
|
||||
| | | `-- primaryExp
|
||||
| | | `-- number
|
||||
| | | `-- IntConst: 2
|
||||
| | `-- SEMI: ;
|
||||
| |-- blockItem
|
||||
| | `-- stmt
|
||||
| | |-- RETURN: return
|
||||
| | |-- exp
|
||||
| | | `-- addExp
|
||||
| | | |-- addExp
|
||||
| | | | `-- mulExp
|
||||
| | | | `-- unaryExp
|
||||
| | | | `-- primaryExp
|
||||
| | | | `-- lVal
|
||||
| | | | `-- Ident: a
|
||||
| | | |-- ADD: +
|
||||
| | | `-- mulExp
|
||||
| | | `-- unaryExp
|
||||
| | | `-- primaryExp
|
||||
| | | `-- lVal
|
||||
| | | `-- Ident: b
|
||||
| | `-- SEMI: ;
|
||||
| `-- RBRACE: }
|
||||
`-- EOF: <EOF>
|
||||
`-- funcDef
|
||||
|-- funcType
|
||||
| `-- INT: int
|
||||
|-- Ident: main
|
||||
|-- LPAREN: (
|
||||
|-- RPAREN: )
|
||||
`-- block
|
||||
|-- LBRACE: {
|
||||
|-- blockItem
|
||||
| `-- decl
|
||||
| `-- varDecl
|
||||
| |-- bType
|
||||
| | `-- INT: int
|
||||
| |-- varDef
|
||||
| | |-- Ident: a
|
||||
| | |-- ASSIGN: =
|
||||
| | `-- initVal
|
||||
| | `-- exp
|
||||
| | `-- addExp
|
||||
| | `-- mulExp
|
||||
| | `-- unaryExp
|
||||
| | `-- primaryExp
|
||||
| | `-- number
|
||||
| | `-- IntConst: 1
|
||||
| `-- SEMI: ;
|
||||
|-- blockItem
|
||||
| `-- decl
|
||||
| `-- varDecl
|
||||
| |-- bType
|
||||
| | `-- INT: int
|
||||
| |-- varDef
|
||||
| | |-- Ident: b
|
||||
| | |-- ASSIGN: =
|
||||
| | `-- initVal
|
||||
| | `-- exp
|
||||
| | `-- addExp
|
||||
| | `-- mulExp
|
||||
| | `-- unaryExp
|
||||
| | `-- primaryExp
|
||||
| | `-- number
|
||||
| | `-- IntConst: 2
|
||||
| `-- SEMI: ;
|
||||
|-- blockItem
|
||||
| `-- stmt
|
||||
| |-- RETURN: return
|
||||
| |-- exp
|
||||
| | `-- addExp
|
||||
| | |-- addExp
|
||||
| | | `-- mulExp
|
||||
| | | `-- unaryExp
|
||||
| | | `-- primaryExp
|
||||
| | | `-- lVal
|
||||
| | | `-- Ident: a
|
||||
| | |-- ADD: +
|
||||
| | `-- mulExp
|
||||
| | `-- unaryExp
|
||||
| | `-- primaryExp
|
||||
| | `-- lVal
|
||||
| | `-- Ident: b
|
||||
| `-- SEMI: ;
|
||||
`-- RBRACE: }
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
Loading…
Reference in new issue