forked from NUDT-compiler/nudt-compiler-cpp
parent
472f059af7
commit
e4fed12b92
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
@ -0,0 +1,651 @@
|
||||
compUnit
|
||||
|-- funcDef
|
||||
| |-- funcType
|
||||
| | `-- INT: int
|
||||
| |-- Ident: main
|
||||
| |-- LPAREN: (
|
||||
| |-- RPAREN: )
|
||||
| `-- block
|
||||
| |-- LBRACE: {
|
||||
| |-- blockItem
|
||||
| | `-- decl
|
||||
| | `-- constDecl
|
||||
| | |-- CONST: const
|
||||
| | |-- bType
|
||||
| | | `-- INT: int
|
||||
| | |-- constDef
|
||||
| | | |-- Ident: a
|
||||
| | | |-- LBRACK: [
|
||||
| | | |-- constExp
|
||||
| | | | `-- addExp
|
||||
| | | | `-- mulExp
|
||||
| | | | `-- unaryExp
|
||||
| | | | `-- primaryExp
|
||||
| | | | `-- number
|
||||
| | | | `-- IntConst: 4
|
||||
| | | |-- RBRACK: ]
|
||||
| | | |-- LBRACK: [
|
||||
| | | |-- constExp
|
||||
| | | | `-- addExp
|
||||
| | | | `-- mulExp
|
||||
| | | | `-- unaryExp
|
||||
| | | | `-- primaryExp
|
||||
| | | | `-- number
|
||||
| | | | `-- IntConst: 2
|
||||
| | | |-- RBRACK: ]
|
||||
| | | |-- ASSIGN: =
|
||||
| | | `-- constInitVal
|
||||
| | | |-- LBRACE: {
|
||||
| | | |-- constInitVal
|
||||
| | | | |-- LBRACE: {
|
||||
| | | | |-- constInitVal
|
||||
| | | | | `-- constExp
|
||||
| | | | | `-- addExp
|
||||
| | | | | `-- mulExp
|
||||
| | | | | `-- unaryExp
|
||||
| | | | | `-- primaryExp
|
||||
| | | | | `-- number
|
||||
| | | | | `-- IntConst: 1
|
||||
| | | | |-- COMMA: ,
|
||||
| | | | |-- constInitVal
|
||||
| | | | | `-- constExp
|
||||
| | | | | `-- addExp
|
||||
| | | | | `-- mulExp
|
||||
| | | | | `-- unaryExp
|
||||
| | | | | `-- primaryExp
|
||||
| | | | | `-- number
|
||||
| | | | | `-- IntConst: 2
|
||||
| | | | `-- RBRACE: }
|
||||
| | | |-- COMMA: ,
|
||||
| | | |-- constInitVal
|
||||
| | | | |-- LBRACE: {
|
||||
| | | | |-- constInitVal
|
||||
| | | | | `-- constExp
|
||||
| | | | | `-- addExp
|
||||
| | | | | `-- mulExp
|
||||
| | | | | `-- unaryExp
|
||||
| | | | | `-- primaryExp
|
||||
| | | | | `-- number
|
||||
| | | | | `-- IntConst: 3
|
||||
| | | | |-- COMMA: ,
|
||||
| | | | |-- constInitVal
|
||||
| | | | | `-- constExp
|
||||
| | | | | `-- addExp
|
||||
| | | | | `-- mulExp
|
||||
| | | | | `-- unaryExp
|
||||
| | | | | `-- primaryExp
|
||||
| | | | | `-- number
|
||||
| | | | | `-- IntConst: 4
|
||||
| | | | `-- RBRACE: }
|
||||
| | | |-- COMMA: ,
|
||||
| | | |-- constInitVal
|
||||
| | | | |-- LBRACE: {
|
||||
| | | | `-- RBRACE: }
|
||||
| | | |-- COMMA: ,
|
||||
| | | |-- constInitVal
|
||||
| | | | `-- constExp
|
||||
| | | | `-- addExp
|
||||
| | | | `-- mulExp
|
||||
| | | | `-- unaryExp
|
||||
| | | | `-- primaryExp
|
||||
| | | | `-- number
|
||||
| | | | `-- IntConst: 7
|
||||
| | | `-- RBRACE: }
|
||||
| | `-- SEMI: ;
|
||||
| |-- blockItem
|
||||
| | `-- decl
|
||||
| | `-- constDecl
|
||||
| | |-- CONST: const
|
||||
| | |-- bType
|
||||
| | | `-- INT: int
|
||||
| | |-- constDef
|
||||
| | | |-- Ident: N
|
||||
| | | |-- ASSIGN: =
|
||||
| | | `-- constInitVal
|
||||
| | | `-- constExp
|
||||
| | | `-- addExp
|
||||
| | | `-- mulExp
|
||||
| | | `-- unaryExp
|
||||
| | | `-- primaryExp
|
||||
| | | `-- number
|
||||
| | | `-- IntConst: 3
|
||||
| | `-- SEMI: ;
|
||||
| |-- blockItem
|
||||
| | `-- decl
|
||||
| | `-- varDecl
|
||||
| | |-- bType
|
||||
| | | `-- INT: int
|
||||
| | |-- varDef
|
||||
| | | |-- Ident: b
|
||||
| | | |-- LBRACK: [
|
||||
| | | |-- constExp
|
||||
| | | | `-- addExp
|
||||
| | | | `-- mulExp
|
||||
| | | | `-- unaryExp
|
||||
| | | | `-- primaryExp
|
||||
| | | | `-- number
|
||||
| | | | `-- IntConst: 4
|
||||
| | | |-- RBRACK: ]
|
||||
| | | |-- LBRACK: [
|
||||
| | | |-- constExp
|
||||
| | | | `-- addExp
|
||||
| | | | `-- mulExp
|
||||
| | | | `-- unaryExp
|
||||
| | | | `-- primaryExp
|
||||
| | | | `-- number
|
||||
| | | | `-- IntConst: 2
|
||||
| | | |-- RBRACK: ]
|
||||
| | | |-- ASSIGN: =
|
||||
| | | `-- initVal
|
||||
| | | |-- LBRACE: {
|
||||
| | | `-- RBRACE: }
|
||||
| | `-- SEMI: ;
|
||||
| |-- blockItem
|
||||
| | `-- decl
|
||||
| | `-- varDecl
|
||||
| | |-- bType
|
||||
| | | `-- INT: int
|
||||
| | |-- varDef
|
||||
| | | |-- Ident: c
|
||||
| | | |-- LBRACK: [
|
||||
| | | |-- constExp
|
||||
| | | | `-- addExp
|
||||
| | | | `-- mulExp
|
||||
| | | | `-- unaryExp
|
||||
| | | | `-- primaryExp
|
||||
| | | | `-- number
|
||||
| | | | `-- IntConst: 4
|
||||
| | | |-- RBRACK: ]
|
||||
| | | |-- LBRACK: [
|
||||
| | | |-- constExp
|
||||
| | | | `-- addExp
|
||||
| | | | `-- mulExp
|
||||
| | | | `-- unaryExp
|
||||
| | | | `-- primaryExp
|
||||
| | | | `-- number
|
||||
| | | | `-- IntConst: 2
|
||||
| | | |-- RBRACK: ]
|
||||
| | | |-- ASSIGN: =
|
||||
| | | `-- initVal
|
||||
| | | |-- LBRACE: {
|
||||
| | | |-- initVal
|
||||
| | | | `-- exp
|
||||
| | | | `-- addExp
|
||||
| | | | `-- mulExp
|
||||
| | | | `-- unaryExp
|
||||
| | | | `-- primaryExp
|
||||
| | | | `-- number
|
||||
| | | | `-- IntConst: 1
|
||||
| | | |-- COMMA: ,
|
||||
| | | |-- initVal
|
||||
| | | | `-- exp
|
||||
| | | | `-- addExp
|
||||
| | | | `-- mulExp
|
||||
| | | | `-- unaryExp
|
||||
| | | | `-- primaryExp
|
||||
| | | | `-- number
|
||||
| | | | `-- IntConst: 2
|
||||
| | | |-- COMMA: ,
|
||||
| | | |-- initVal
|
||||
| | | | `-- exp
|
||||
| | | | `-- addExp
|
||||
| | | | `-- mulExp
|
||||
| | | | `-- unaryExp
|
||||
| | | | `-- primaryExp
|
||||
| | | | `-- number
|
||||
| | | | `-- IntConst: 3
|
||||
| | | |-- COMMA: ,
|
||||
| | | |-- initVal
|
||||
| | | | `-- exp
|
||||
| | | | `-- addExp
|
||||
| | | | `-- mulExp
|
||||
| | | | `-- unaryExp
|
||||
| | | | `-- primaryExp
|
||||
| | | | `-- number
|
||||
| | | | `-- IntConst: 4
|
||||
| | | |-- COMMA: ,
|
||||
| | | |-- initVal
|
||||
| | | | `-- exp
|
||||
| | | | `-- addExp
|
||||
| | | | `-- mulExp
|
||||
| | | | `-- unaryExp
|
||||
| | | | `-- primaryExp
|
||||
| | | | `-- number
|
||||
| | | | `-- IntConst: 5
|
||||
| | | |-- COMMA: ,
|
||||
| | | |-- initVal
|
||||
| | | | `-- exp
|
||||
| | | | `-- addExp
|
||||
| | | | `-- mulExp
|
||||
| | | | `-- unaryExp
|
||||
| | | | `-- primaryExp
|
||||
| | | | `-- number
|
||||
| | | | `-- IntConst: 6
|
||||
| | | |-- COMMA: ,
|
||||
| | | |-- initVal
|
||||
| | | | `-- exp
|
||||
| | | | `-- addExp
|
||||
| | | | `-- mulExp
|
||||
| | | | `-- unaryExp
|
||||
| | | | `-- primaryExp
|
||||
| | | | `-- number
|
||||
| | | | `-- IntConst: 7
|
||||
| | | |-- COMMA: ,
|
||||
| | | |-- initVal
|
||||
| | | | `-- exp
|
||||
| | | | `-- addExp
|
||||
| | | | `-- mulExp
|
||||
| | | | `-- unaryExp
|
||||
| | | | `-- primaryExp
|
||||
| | | | `-- number
|
||||
| | | | `-- IntConst: 8
|
||||
| | | `-- RBRACE: }
|
||||
| | `-- SEMI: ;
|
||||
| |-- blockItem
|
||||
| | `-- decl
|
||||
| | `-- varDecl
|
||||
| | |-- bType
|
||||
| | | `-- INT: int
|
||||
| | |-- varDef
|
||||
| | | |-- Ident: d
|
||||
| | | |-- LBRACK: [
|
||||
| | | |-- constExp
|
||||
| | | | `-- addExp
|
||||
| | | | |-- addExp
|
||||
| | | | | `-- mulExp
|
||||
| | | | | `-- unaryExp
|
||||
| | | | | `-- primaryExp
|
||||
| | | | | `-- lVal
|
||||
| | | | | `-- Ident: N
|
||||
| | | | |-- ADD: +
|
||||
| | | | `-- mulExp
|
||||
| | | | `-- unaryExp
|
||||
| | | | `-- primaryExp
|
||||
| | | | `-- number
|
||||
| | | | `-- IntConst: 1
|
||||
| | | |-- RBRACK: ]
|
||||
| | | |-- LBRACK: [
|
||||
| | | |-- constExp
|
||||
| | | | `-- addExp
|
||||
| | | | `-- mulExp
|
||||
| | | | `-- unaryExp
|
||||
| | | | `-- primaryExp
|
||||
| | | | `-- number
|
||||
| | | | `-- IntConst: 2
|
||||
| | | |-- RBRACK: ]
|
||||
| | | |-- ASSIGN: =
|
||||
| | | `-- initVal
|
||||
| | | |-- LBRACE: {
|
||||
| | | |-- initVal
|
||||
| | | | `-- exp
|
||||
| | | | `-- addExp
|
||||
| | | | `-- mulExp
|
||||
| | | | `-- unaryExp
|
||||
| | | | `-- primaryExp
|
||||
| | | | `-- number
|
||||
| | | | `-- IntConst: 1
|
||||
| | | |-- COMMA: ,
|
||||
| | | |-- initVal
|
||||
| | | | `-- exp
|
||||
| | | | `-- addExp
|
||||
| | | | `-- mulExp
|
||||
| | | | `-- unaryExp
|
||||
| | | | `-- primaryExp
|
||||
| | | | `-- number
|
||||
| | | | `-- IntConst: 2
|
||||
| | | |-- COMMA: ,
|
||||
| | | |-- initVal
|
||||
| | | | |-- LBRACE: {
|
||||
| | | | |-- initVal
|
||||
| | | | | `-- exp
|
||||
| | | | | `-- addExp
|
||||
| | | | | `-- mulExp
|
||||
| | | | | `-- unaryExp
|
||||
| | | | | `-- primaryExp
|
||||
| | | | | `-- number
|
||||
| | | | | `-- IntConst: 3
|
||||
| | | | `-- RBRACE: }
|
||||
| | | |-- COMMA: ,
|
||||
| | | |-- initVal
|
||||
| | | | |-- LBRACE: {
|
||||
| | | | |-- initVal
|
||||
| | | | | `-- exp
|
||||
| | | | | `-- addExp
|
||||
| | | | | `-- mulExp
|
||||
| | | | | `-- unaryExp
|
||||
| | | | | `-- primaryExp
|
||||
| | | | | `-- number
|
||||
| | | | | `-- IntConst: 5
|
||||
| | | | `-- RBRACE: }
|
||||
| | | |-- COMMA: ,
|
||||
| | | |-- initVal
|
||||
| | | | `-- exp
|
||||
| | | | `-- addExp
|
||||
| | | | `-- mulExp
|
||||
| | | | `-- unaryExp
|
||||
| | | | `-- primaryExp
|
||||
| | | | `-- lVal
|
||||
| | | | |-- Ident: a
|
||||
| | | | |-- LBRACK: [
|
||||
| | | | |-- exp
|
||||
| | | | | `-- addExp
|
||||
| | | | | `-- mulExp
|
||||
| | | | | `-- unaryExp
|
||||
| | | | | `-- primaryExp
|
||||
| | | | | `-- number
|
||||
| | | | | `-- IntConst: 3
|
||||
| | | | |-- RBRACK: ]
|
||||
| | | | |-- LBRACK: [
|
||||
| | | | |-- exp
|
||||
| | | | | `-- addExp
|
||||
| | | | | `-- mulExp
|
||||
| | | | | `-- unaryExp
|
||||
| | | | | `-- primaryExp
|
||||
| | | | | `-- number
|
||||
| | | | | `-- IntConst: 0
|
||||
| | | | `-- RBRACK: ]
|
||||
| | | |-- COMMA: ,
|
||||
| | | |-- initVal
|
||||
| | | | `-- exp
|
||||
| | | | `-- addExp
|
||||
| | | | `-- mulExp
|
||||
| | | | `-- unaryExp
|
||||
| | | | `-- primaryExp
|
||||
| | | | `-- number
|
||||
| | | | `-- IntConst: 8
|
||||
| | | `-- RBRACE: }
|
||||
| | `-- SEMI: ;
|
||||
| |-- blockItem
|
||||
| | `-- decl
|
||||
| | `-- varDecl
|
||||
| | |-- bType
|
||||
| | | `-- INT: int
|
||||
| | |-- varDef
|
||||
| | | |-- Ident: e
|
||||
| | | |-- LBRACK: [
|
||||
| | | |-- constExp
|
||||
| | | | `-- addExp
|
||||
| | | | `-- mulExp
|
||||
| | | | `-- unaryExp
|
||||
| | | | `-- primaryExp
|
||||
| | | | `-- number
|
||||
| | | | `-- IntConst: 4
|
||||
| | | |-- RBRACK: ]
|
||||
| | | |-- LBRACK: [
|
||||
| | | |-- constExp
|
||||
| | | | `-- addExp
|
||||
| | | | `-- mulExp
|
||||
| | | | `-- unaryExp
|
||||
| | | | `-- primaryExp
|
||||
| | | | `-- number
|
||||
| | | | `-- IntConst: 2
|
||||
| | | |-- RBRACK: ]
|
||||
| | | |-- LBRACK: [
|
||||
| | | |-- constExp
|
||||
| | | | `-- addExp
|
||||
| | | | `-- mulExp
|
||||
| | | | `-- unaryExp
|
||||
| | | | `-- primaryExp
|
||||
| | | | `-- number
|
||||
| | | | `-- IntConst: 1
|
||||
| | | |-- RBRACK: ]
|
||||
| | | |-- ASSIGN: =
|
||||
| | | `-- initVal
|
||||
| | | |-- LBRACE: {
|
||||
| | | |-- initVal
|
||||
| | | | |-- LBRACE: {
|
||||
| | | | |-- initVal
|
||||
| | | | | `-- exp
|
||||
| | | | | `-- addExp
|
||||
| | | | | `-- mulExp
|
||||
| | | | | `-- unaryExp
|
||||
| | | | | `-- primaryExp
|
||||
| | | | | `-- lVal
|
||||
| | | | | |-- Ident: d
|
||||
| | | | | |-- LBRACK: [
|
||||
| | | | | |-- exp
|
||||
| | | | | | `-- addExp
|
||||
| | | | | | `-- mulExp
|
||||
| | | | | | `-- unaryExp
|
||||
| | | | | | `-- primaryExp
|
||||
| | | | | | `-- number
|
||||
| | | | | | `-- IntConst: 2
|
||||
| | | | | |-- RBRACK: ]
|
||||
| | | | | |-- LBRACK: [
|
||||
| | | | | |-- exp
|
||||
| | | | | | `-- addExp
|
||||
| | | | | | `-- mulExp
|
||||
| | | | | | `-- unaryExp
|
||||
| | | | | | `-- primaryExp
|
||||
| | | | | | `-- number
|
||||
| | | | | | `-- IntConst: 1
|
||||
| | | | | `-- RBRACK: ]
|
||||
| | | | |-- COMMA: ,
|
||||
| | | | |-- initVal
|
||||
| | | | | |-- LBRACE: {
|
||||
| | | | | |-- initVal
|
||||
| | | | | | `-- exp
|
||||
| | | | | | `-- addExp
|
||||
| | | | | | `-- mulExp
|
||||
| | | | | | `-- unaryExp
|
||||
| | | | | | `-- primaryExp
|
||||
| | | | | | `-- lVal
|
||||
| | | | | | |-- Ident: c
|
||||
| | | | | | |-- LBRACK: [
|
||||
| | | | | | |-- exp
|
||||
| | | | | | | `-- addExp
|
||||
| | | | | | | `-- mulExp
|
||||
| | | | | | | `-- unaryExp
|
||||
| | | | | | | `-- primaryExp
|
||||
| | | | | | | `-- number
|
||||
| | | | | | | `-- IntConst: 2
|
||||
| | | | | | |-- RBRACK: ]
|
||||
| | | | | | |-- LBRACK: [
|
||||
| | | | | | |-- exp
|
||||
| | | | | | | `-- addExp
|
||||
| | | | | | | `-- mulExp
|
||||
| | | | | | | `-- unaryExp
|
||||
| | | | | | | `-- primaryExp
|
||||
| | | | | | | `-- number
|
||||
| | | | | | | `-- IntConst: 1
|
||||
| | | | | | `-- RBRACK: ]
|
||||
| | | | | `-- RBRACE: }
|
||||
| | | | `-- RBRACE: }
|
||||
| | | |-- COMMA: ,
|
||||
| | | |-- initVal
|
||||
| | | | |-- LBRACE: {
|
||||
| | | | |-- initVal
|
||||
| | | | | `-- exp
|
||||
| | | | | `-- addExp
|
||||
| | | | | `-- mulExp
|
||||
| | | | | `-- unaryExp
|
||||
| | | | | `-- primaryExp
|
||||
| | | | | `-- number
|
||||
| | | | | `-- IntConst: 3
|
||||
| | | | |-- COMMA: ,
|
||||
| | | | |-- initVal
|
||||
| | | | | `-- exp
|
||||
| | | | | `-- addExp
|
||||
| | | | | `-- mulExp
|
||||
| | | | | `-- unaryExp
|
||||
| | | | | `-- primaryExp
|
||||
| | | | | `-- number
|
||||
| | | | | `-- IntConst: 4
|
||||
| | | | `-- RBRACE: }
|
||||
| | | |-- COMMA: ,
|
||||
| | | |-- initVal
|
||||
| | | | |-- LBRACE: {
|
||||
| | | | |-- initVal
|
||||
| | | | | `-- exp
|
||||
| | | | | `-- addExp
|
||||
| | | | | `-- mulExp
|
||||
| | | | | `-- unaryExp
|
||||
| | | | | `-- primaryExp
|
||||
| | | | | `-- number
|
||||
| | | | | `-- IntConst: 5
|
||||
| | | | |-- COMMA: ,
|
||||
| | | | |-- initVal
|
||||
| | | | | `-- exp
|
||||
| | | | | `-- addExp
|
||||
| | | | | `-- mulExp
|
||||
| | | | | `-- unaryExp
|
||||
| | | | | `-- primaryExp
|
||||
| | | | | `-- number
|
||||
| | | | | `-- IntConst: 6
|
||||
| | | | `-- RBRACE: }
|
||||
| | | |-- COMMA: ,
|
||||
| | | |-- initVal
|
||||
| | | | |-- LBRACE: {
|
||||
| | | | |-- initVal
|
||||
| | | | | `-- exp
|
||||
| | | | | `-- addExp
|
||||
| | | | | `-- mulExp
|
||||
| | | | | `-- unaryExp
|
||||
| | | | | `-- primaryExp
|
||||
| | | | | `-- number
|
||||
| | | | | `-- IntConst: 7
|
||||
| | | | |-- COMMA: ,
|
||||
| | | | |-- initVal
|
||||
| | | | | `-- exp
|
||||
| | | | | `-- addExp
|
||||
| | | | | `-- mulExp
|
||||
| | | | | `-- unaryExp
|
||||
| | | | | `-- primaryExp
|
||||
| | | | | `-- number
|
||||
| | | | | `-- IntConst: 8
|
||||
| | | | `-- RBRACE: }
|
||||
| | | `-- RBRACE: }
|
||||
| | `-- SEMI: ;
|
||||
| |-- blockItem
|
||||
| | `-- stmt
|
||||
| | |-- RETURN: return
|
||||
| | |-- exp
|
||||
| | | `-- addExp
|
||||
| | | |-- addExp
|
||||
| | | | |-- addExp
|
||||
| | | | | |-- addExp
|
||||
| | | | | | `-- mulExp
|
||||
| | | | | | `-- unaryExp
|
||||
| | | | | | `-- primaryExp
|
||||
| | | | | | `-- lVal
|
||||
| | | | | | |-- Ident: e
|
||||
| | | | | | |-- LBRACK: [
|
||||
| | | | | | |-- exp
|
||||
| | | | | | | `-- addExp
|
||||
| | | | | | | `-- mulExp
|
||||
| | | | | | | `-- unaryExp
|
||||
| | | | | | | `-- primaryExp
|
||||
| | | | | | | `-- number
|
||||
| | | | | | | `-- IntConst: 3
|
||||
| | | | | | |-- RBRACK: ]
|
||||
| | | | | | |-- LBRACK: [
|
||||
| | | | | | |-- exp
|
||||
| | | | | | | `-- addExp
|
||||
| | | | | | | `-- mulExp
|
||||
| | | | | | | `-- unaryExp
|
||||
| | | | | | | `-- primaryExp
|
||||
| | | | | | | `-- number
|
||||
| | | | | | | `-- IntConst: 1
|
||||
| | | | | | |-- RBRACK: ]
|
||||
| | | | | | |-- LBRACK: [
|
||||
| | | | | | |-- exp
|
||||
| | | | | | | `-- addExp
|
||||
| | | | | | | `-- mulExp
|
||||
| | | | | | | `-- unaryExp
|
||||
| | | | | | | `-- primaryExp
|
||||
| | | | | | | `-- number
|
||||
| | | | | | | `-- IntConst: 0
|
||||
| | | | | | `-- RBRACK: ]
|
||||
| | | | | |-- ADD: +
|
||||
| | | | | `-- mulExp
|
||||
| | | | | `-- unaryExp
|
||||
| | | | | `-- primaryExp
|
||||
| | | | | `-- lVal
|
||||
| | | | | |-- Ident: e
|
||||
| | | | | |-- LBRACK: [
|
||||
| | | | | |-- exp
|
||||
| | | | | | `-- addExp
|
||||
| | | | | | `-- mulExp
|
||||
| | | | | | `-- unaryExp
|
||||
| | | | | | `-- primaryExp
|
||||
| | | | | | `-- number
|
||||
| | | | | | `-- IntConst: 0
|
||||
| | | | | |-- RBRACK: ]
|
||||
| | | | | |-- LBRACK: [
|
||||
| | | | | |-- exp
|
||||
| | | | | | `-- addExp
|
||||
| | | | | | `-- mulExp
|
||||
| | | | | | `-- unaryExp
|
||||
| | | | | | `-- primaryExp
|
||||
| | | | | | `-- number
|
||||
| | | | | | `-- IntConst: 0
|
||||
| | | | | |-- RBRACK: ]
|
||||
| | | | | |-- LBRACK: [
|
||||
| | | | | |-- exp
|
||||
| | | | | | `-- addExp
|
||||
| | | | | | `-- mulExp
|
||||
| | | | | | `-- unaryExp
|
||||
| | | | | | `-- primaryExp
|
||||
| | | | | | `-- number
|
||||
| | | | | | `-- IntConst: 0
|
||||
| | | | | `-- RBRACK: ]
|
||||
| | | | |-- ADD: +
|
||||
| | | | `-- mulExp
|
||||
| | | | `-- unaryExp
|
||||
| | | | `-- primaryExp
|
||||
| | | | `-- lVal
|
||||
| | | | |-- Ident: e
|
||||
| | | | |-- LBRACK: [
|
||||
| | | | |-- exp
|
||||
| | | | | `-- addExp
|
||||
| | | | | `-- mulExp
|
||||
| | | | | `-- unaryExp
|
||||
| | | | | `-- primaryExp
|
||||
| | | | | `-- number
|
||||
| | | | | `-- IntConst: 0
|
||||
| | | | |-- RBRACK: ]
|
||||
| | | | |-- LBRACK: [
|
||||
| | | | |-- exp
|
||||
| | | | | `-- addExp
|
||||
| | | | | `-- mulExp
|
||||
| | | | | `-- unaryExp
|
||||
| | | | | `-- primaryExp
|
||||
| | | | | `-- number
|
||||
| | | | | `-- IntConst: 1
|
||||
| | | | |-- RBRACK: ]
|
||||
| | | | |-- LBRACK: [
|
||||
| | | | |-- exp
|
||||
| | | | | `-- addExp
|
||||
| | | | | `-- mulExp
|
||||
| | | | | `-- unaryExp
|
||||
| | | | | `-- primaryExp
|
||||
| | | | | `-- number
|
||||
| | | | | `-- IntConst: 0
|
||||
| | | | `-- RBRACK: ]
|
||||
| | | |-- ADD: +
|
||||
| | | `-- mulExp
|
||||
| | | `-- unaryExp
|
||||
| | | `-- primaryExp
|
||||
| | | `-- lVal
|
||||
| | | |-- Ident: d
|
||||
| | | |-- LBRACK: [
|
||||
| | | |-- exp
|
||||
| | | | `-- addExp
|
||||
| | | | `-- mulExp
|
||||
| | | | `-- unaryExp
|
||||
| | | | `-- primaryExp
|
||||
| | | | `-- number
|
||||
| | | | `-- IntConst: 3
|
||||
| | | |-- RBRACK: ]
|
||||
| | | |-- LBRACK: [
|
||||
| | | |-- exp
|
||||
| | | | `-- addExp
|
||||
| | | | `-- mulExp
|
||||
| | | | `-- unaryExp
|
||||
| | | | `-- primaryExp
|
||||
| | | | `-- number
|
||||
| | | | `-- IntConst: 0
|
||||
| | | `-- RBRACK: ]
|
||||
| | `-- SEMI: ;
|
||||
| `-- RBRACE: }
|
||||
`-- EOF: <EOF>
|
||||
@ -0,0 +1,116 @@
|
||||
compUnit
|
||||
|-- decl
|
||||
| `-- varDecl
|
||||
| |-- bType
|
||||
| | `-- INT: int
|
||||
| |-- varDef
|
||||
| | `-- Ident: a
|
||||
| `-- SEMI: ;
|
||||
|-- funcDef
|
||||
| |-- funcType
|
||||
| | `-- INT: int
|
||||
| |-- Ident: func
|
||||
| |-- LPAREN: (
|
||||
| |-- funcFParams
|
||||
| | `-- funcFParam
|
||||
| | |-- bType
|
||||
| | | `-- INT: int
|
||||
| | `-- Ident: p
|
||||
| |-- RPAREN: )
|
||||
| `-- block
|
||||
| |-- LBRACE: {
|
||||
| |-- blockItem
|
||||
| | `-- stmt
|
||||
| | |-- lVal
|
||||
| | | `-- Ident: p
|
||||
| | |-- ASSIGN: =
|
||||
| | |-- exp
|
||||
| | | `-- addExp
|
||||
| | | |-- addExp
|
||||
| | | | `-- mulExp
|
||||
| | | | `-- unaryExp
|
||||
| | | | `-- primaryExp
|
||||
| | | | `-- lVal
|
||||
| | | | `-- Ident: p
|
||||
| | | |-- SUB: -
|
||||
| | | `-- mulExp
|
||||
| | | `-- unaryExp
|
||||
| | | `-- primaryExp
|
||||
| | | `-- number
|
||||
| | | `-- IntConst: 1
|
||||
| | `-- SEMI: ;
|
||||
| |-- blockItem
|
||||
| | `-- stmt
|
||||
| | |-- RETURN: return
|
||||
| | |-- exp
|
||||
| | | `-- addExp
|
||||
| | | `-- mulExp
|
||||
| | | `-- unaryExp
|
||||
| | | `-- primaryExp
|
||||
| | | `-- lVal
|
||||
| | | `-- Ident: p
|
||||
| | `-- SEMI: ;
|
||||
| `-- RBRACE: }
|
||||
|-- funcDef
|
||||
| |-- funcType
|
||||
| | `-- INT: int
|
||||
| |-- Ident: main
|
||||
| |-- LPAREN: (
|
||||
| |-- RPAREN: )
|
||||
| `-- block
|
||||
| |-- LBRACE: {
|
||||
| |-- blockItem
|
||||
| | `-- decl
|
||||
| | `-- varDecl
|
||||
| | |-- bType
|
||||
| | | `-- INT: int
|
||||
| | |-- 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
|
||||
| | | |-- Ident: func
|
||||
| | | |-- LPAREN: (
|
||||
| | | |-- funcRParams
|
||||
| | | | `-- exp
|
||||
| | | | `-- addExp
|
||||
| | | | `-- mulExp
|
||||
| | | | `-- unaryExp
|
||||
| | | | `-- primaryExp
|
||||
| | | | `-- lVal
|
||||
| | | | `-- Ident: a
|
||||
| | | `-- RPAREN: )
|
||||
| | `-- SEMI: ;
|
||||
| |-- blockItem
|
||||
| | `-- stmt
|
||||
| | |-- RETURN: return
|
||||
| | |-- exp
|
||||
| | | `-- addExp
|
||||
| | | `-- mulExp
|
||||
| | | `-- unaryExp
|
||||
| | | `-- primaryExp
|
||||
| | | `-- lVal
|
||||
| | | `-- Ident: b
|
||||
| | `-- SEMI: ;
|
||||
| `-- RBRACE: }
|
||||
`-- EOF: <EOF>
|
||||
@ -0,0 +1,69 @@
|
||||
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>
|
||||
@ -0,0 +1,67 @@
|
||||
compUnit
|
||||
|-- decl
|
||||
| `-- constDecl
|
||||
| |-- CONST: const
|
||||
| |-- bType
|
||||
| | `-- INT: int
|
||||
| |-- constDef
|
||||
| | |-- Ident: a
|
||||
| | |-- ASSIGN: =
|
||||
| | `-- constInitVal
|
||||
| | `-- constExp
|
||||
| | `-- addExp
|
||||
| | `-- mulExp
|
||||
| | `-- unaryExp
|
||||
| | `-- primaryExp
|
||||
| | `-- number
|
||||
| | `-- IntConst: 10
|
||||
| `-- SEMI: ;
|
||||
|-- funcDef
|
||||
| |-- funcType
|
||||
| | `-- INT: int
|
||||
| |-- Ident: main
|
||||
| |-- LPAREN: (
|
||||
| |-- RPAREN: )
|
||||
| `-- block
|
||||
| |-- LBRACE: {
|
||||
| |-- blockItem
|
||||
| | `-- decl
|
||||
| | `-- varDecl
|
||||
| | |-- bType
|
||||
| | | `-- INT: int
|
||||
| | |-- varDef
|
||||
| | | `-- Ident: b
|
||||
| | `-- SEMI: ;
|
||||
| |-- blockItem
|
||||
| | `-- stmt
|
||||
| | |-- lVal
|
||||
| | | `-- Ident: b
|
||||
| | |-- ASSIGN: =
|
||||
| | |-- exp
|
||||
| | | `-- addExp
|
||||
| | | `-- mulExp
|
||||
| | | `-- unaryExp
|
||||
| | | `-- primaryExp
|
||||
| | | `-- number
|
||||
| | | `-- IntConst: 2
|
||||
| | `-- SEMI: ;
|
||||
| |-- blockItem
|
||||
| | `-- stmt
|
||||
| | |-- RETURN: return
|
||||
| | |-- exp
|
||||
| | | `-- addExp
|
||||
| | | |-- addExp
|
||||
| | | | `-- mulExp
|
||||
| | | | `-- unaryExp
|
||||
| | | | `-- primaryExp
|
||||
| | | | `-- lVal
|
||||
| | | | `-- Ident: b
|
||||
| | | |-- SUB: -
|
||||
| | | `-- mulExp
|
||||
| | | `-- unaryExp
|
||||
| | | `-- primaryExp
|
||||
| | | `-- lVal
|
||||
| | | `-- Ident: a
|
||||
| | `-- SEMI: ;
|
||||
| `-- RBRACE: }
|
||||
`-- EOF: <EOF>
|
||||
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
@ -0,0 +1,699 @@
|
||||
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: }
|
||||
`-- EOF: <EOF>
|
||||
@ -0,0 +1,165 @@
|
||||
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>
|
||||
@ -0,0 +1,125 @@
|
||||
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>
|
||||
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
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,779 @@
|
||||
compUnit
|
||||
|-- decl
|
||||
| `-- varDecl
|
||||
| |-- bType
|
||||
| | `-- INT: int
|
||||
| |-- varDef
|
||||
| | |-- Ident: COUNT
|
||||
| | |-- ASSIGN: =
|
||||
| | `-- initVal
|
||||
| | `-- exp
|
||||
| | `-- addExp
|
||||
| | `-- mulExp
|
||||
| | `-- unaryExp
|
||||
| | `-- primaryExp
|
||||
| | `-- number
|
||||
| | `-- IntConst: 500000
|
||||
| `-- SEMI: ;
|
||||
|-- funcDef
|
||||
| |-- funcType
|
||||
| | `-- FLOAT: float
|
||||
| |-- Ident: loop
|
||||
| |-- LPAREN: (
|
||||
| |-- funcFParams
|
||||
| | |-- funcFParam
|
||||
| | | |-- bType
|
||||
| | | | `-- FLOAT: float
|
||||
| | | |-- Ident: x
|
||||
| | | |-- LBRACK: [
|
||||
| | | `-- RBRACK: ]
|
||||
| | |-- COMMA: ,
|
||||
| | |-- funcFParam
|
||||
| | | |-- bType
|
||||
| | | | `-- FLOAT: float
|
||||
| | | |-- Ident: y
|
||||
| | | |-- LBRACK: [
|
||||
| | | `-- RBRACK: ]
|
||||
| | |-- COMMA: ,
|
||||
| | `-- funcFParam
|
||||
| | |-- bType
|
||||
| | | `-- INT: int
|
||||
| | `-- Ident: length
|
||||
| |-- RPAREN: )
|
||||
| `-- block
|
||||
| |-- LBRACE: {
|
||||
| |-- blockItem
|
||||
| | `-- decl
|
||||
| | `-- varDecl
|
||||
| | |-- bType
|
||||
| | | `-- INT: int
|
||||
| | |-- varDef
|
||||
| | | |-- Ident: i
|
||||
| | | |-- ASSIGN: =
|
||||
| | | `-- initVal
|
||||
| | | `-- exp
|
||||
| | | `-- addExp
|
||||
| | | `-- mulExp
|
||||
| | | `-- unaryExp
|
||||
| | | `-- primaryExp
|
||||
| | | `-- number
|
||||
| | | `-- IntConst: 0
|
||||
| | `-- SEMI: ;
|
||||
| |-- blockItem
|
||||
| | `-- decl
|
||||
| | `-- varDecl
|
||||
| | |-- bType
|
||||
| | | `-- FLOAT: float
|
||||
| | |-- varDef
|
||||
| | | |-- Ident: accumulator
|
||||
| | | |-- ASSIGN: =
|
||||
| | | `-- initVal
|
||||
| | | `-- exp
|
||||
| | | `-- addExp
|
||||
| | | `-- mulExp
|
||||
| | | `-- unaryExp
|
||||
| | | `-- primaryExp
|
||||
| | | `-- number
|
||||
| | | `-- FloatConst: 0.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
|
||||
| | | `-- lVal
|
||||
| | | `-- Ident: length
|
||||
| | |-- RPAREN: )
|
||||
| | `-- stmt
|
||||
| | `-- block
|
||||
| | |-- LBRACE: {
|
||||
| | |-- blockItem
|
||||
| | | `-- stmt
|
||||
| | | |-- lVal
|
||||
| | | | `-- Ident: accumulator
|
||||
| | | |-- ASSIGN: =
|
||||
| | | |-- exp
|
||||
| | | | `-- addExp
|
||||
| | | | |-- addExp
|
||||
| | | | | `-- mulExp
|
||||
| | | | | `-- unaryExp
|
||||
| | | | | `-- primaryExp
|
||||
| | | | | `-- lVal
|
||||
| | | | | `-- Ident: accumulator
|
||||
| | | | |-- ADD: +
|
||||
| | | | `-- mulExp
|
||||
| | | | |-- mulExp
|
||||
| | | | | `-- unaryExp
|
||||
| | | | | `-- primaryExp
|
||||
| | | | | `-- lVal
|
||||
| | | | | |-- Ident: x
|
||||
| | | | | |-- LBRACK: [
|
||||
| | | | | |-- exp
|
||||
| | | | | | `-- addExp
|
||||
| | | | | | `-- mulExp
|
||||
| | | | | | `-- unaryExp
|
||||
| | | | | | `-- primaryExp
|
||||
| | | | | | `-- lVal
|
||||
| | | | | | `-- Ident: i
|
||||
| | | | | `-- RBRACK: ]
|
||||
| | | | |-- MUL: *
|
||||
| | | | `-- unaryExp
|
||||
| | | | `-- primaryExp
|
||||
| | | | `-- lVal
|
||||
| | | | |-- Ident: y
|
||||
| | | | |-- LBRACK: [
|
||||
| | | | |-- exp
|
||||
| | | | | `-- addExp
|
||||
| | | | | `-- mulExp
|
||||
| | | | | `-- unaryExp
|
||||
| | | | | `-- primaryExp
|
||||
| | | | | `-- lVal
|
||||
| | | | | `-- Ident: i
|
||||
| | | | `-- RBRACK: ]
|
||||
| | | `-- 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: accumulator
|
||||
| | `-- SEMI: ;
|
||||
| `-- RBRACE: }
|
||||
|-- funcDef
|
||||
| |-- funcType
|
||||
| | `-- INT: int
|
||||
| |-- Ident: main
|
||||
| |-- LPAREN: (
|
||||
| |-- RPAREN: )
|
||||
| `-- block
|
||||
| |-- LBRACE: {
|
||||
| |-- blockItem
|
||||
| | `-- decl
|
||||
| | `-- varDecl
|
||||
| | |-- bType
|
||||
| | | `-- INT: int
|
||||
| | |-- varDef
|
||||
| | | |-- Ident: i
|
||||
| | | |-- ASSIGN: =
|
||||
| | | `-- initVal
|
||||
| | | `-- exp
|
||||
| | | `-- addExp
|
||||
| | | `-- mulExp
|
||||
| | | `-- unaryExp
|
||||
| | | `-- primaryExp
|
||||
| | | `-- number
|
||||
| | | `-- IntConst: 0
|
||||
| | |-- COMMA: ,
|
||||
| | |-- varDef
|
||||
| | | |-- Ident: j
|
||||
| | | |-- ASSIGN: =
|
||||
| | | `-- initVal
|
||||
| | | `-- exp
|
||||
| | | `-- addExp
|
||||
| | | `-- mulExp
|
||||
| | | `-- unaryExp
|
||||
| | | `-- primaryExp
|
||||
| | | `-- number
|
||||
| | | `-- IntConst: 0
|
||||
| | `-- SEMI: ;
|
||||
| |-- blockItem
|
||||
| | `-- decl
|
||||
| | `-- varDecl
|
||||
| | |-- bType
|
||||
| | | `-- INT: int
|
||||
| | |-- varDef
|
||||
| | | |-- Ident: len
|
||||
| | | |-- ASSIGN: =
|
||||
| | | `-- initVal
|
||||
| | | `-- exp
|
||||
| | | `-- addExp
|
||||
| | | `-- mulExp
|
||||
| | | `-- unaryExp
|
||||
| | | |-- Ident: getint
|
||||
| | | |-- LPAREN: (
|
||||
| | | `-- RPAREN: )
|
||||
| | `-- SEMI: ;
|
||||
| |-- blockItem
|
||||
| | `-- decl
|
||||
| | `-- varDecl
|
||||
| | |-- bType
|
||||
| | | `-- FLOAT: float
|
||||
| | |-- varDef
|
||||
| | | |-- Ident: x
|
||||
| | | |-- LBRACK: [
|
||||
| | | |-- constExp
|
||||
| | | | `-- addExp
|
||||
| | | | `-- mulExp
|
||||
| | | | `-- unaryExp
|
||||
| | | | `-- primaryExp
|
||||
| | | | `-- number
|
||||
| | | | `-- IntConst: 4096
|
||||
| | | `-- RBRACK: ]
|
||||
| | `-- SEMI: ;
|
||||
| |-- blockItem
|
||||
| | `-- decl
|
||||
| | `-- varDecl
|
||||
| | |-- bType
|
||||
| | | `-- FLOAT: float
|
||||
| | |-- varDef
|
||||
| | | |-- Ident: y
|
||||
| | | |-- LBRACK: [
|
||||
| | | |-- constExp
|
||||
| | | | `-- addExp
|
||||
| | | | `-- mulExp
|
||||
| | | | `-- unaryExp
|
||||
| | | | `-- primaryExp
|
||||
| | | | `-- number
|
||||
| | | | `-- IntConst: 4096
|
||||
| | | `-- RBRACK: ]
|
||||
| | `-- SEMI: ;
|
||||
| |-- blockItem
|
||||
| | `-- decl
|
||||
| | `-- varDecl
|
||||
| | |-- bType
|
||||
| | | `-- FLOAT: float
|
||||
| | |-- varDef
|
||||
| | | |-- Ident: total
|
||||
| | | |-- ASSIGN: =
|
||||
| | | `-- initVal
|
||||
| | | `-- exp
|
||||
| | | `-- addExp
|
||||
| | | `-- mulExp
|
||||
| | | `-- unaryExp
|
||||
| | | `-- primaryExp
|
||||
| | | `-- number
|
||||
| | | `-- FloatConst: 0.0
|
||||
| | `-- SEMI: ;
|
||||
| |-- blockItem
|
||||
| | `-- decl
|
||||
| | `-- varDecl
|
||||
| | |-- bType
|
||||
| | | `-- FLOAT: float
|
||||
| | |-- varDef
|
||||
| | | |-- Ident: a
|
||||
| | | |-- ASSIGN: =
|
||||
| | | `-- initVal
|
||||
| | | `-- exp
|
||||
| | | `-- addExp
|
||||
| | | `-- mulExp
|
||||
| | | `-- unaryExp
|
||||
| | | `-- primaryExp
|
||||
| | | `-- number
|
||||
| | | `-- FloatConst: 0.0
|
||||
| | `-- SEMI: ;
|
||||
| |-- blockItem
|
||||
| | `-- decl
|
||||
| | `-- varDecl
|
||||
| | |-- bType
|
||||
| | | `-- FLOAT: float
|
||||
| | |-- varDef
|
||||
| | | |-- Ident: b
|
||||
| | | |-- ASSIGN: =
|
||||
| | | `-- initVal
|
||||
| | | `-- exp
|
||||
| | | `-- addExp
|
||||
| | | `-- mulExp
|
||||
| | | `-- unaryExp
|
||||
| | | `-- primaryExp
|
||||
| | | `-- number
|
||||
| | | `-- FloatConst: 1.0
|
||||
| | `-- SEMI: ;
|
||||
| |-- blockItem
|
||||
| | `-- stmt
|
||||
| | |-- exp
|
||||
| | | `-- addExp
|
||||
| | | `-- mulExp
|
||||
| | | `-- unaryExp
|
||||
| | | |-- Ident: starttime
|
||||
| | | |-- LPAREN: (
|
||||
| | | `-- RPAREN: )
|
||||
| | `-- SEMI: ;
|
||||
| |-- blockItem
|
||||
| | `-- stmt
|
||||
| | |-- WHILE: while
|
||||
| | |-- LPAREN: (
|
||||
| | |-- cond
|
||||
| | | `-- lOrExp
|
||||
| | | `-- lAndExp
|
||||
| | | `-- eqExp
|
||||
| | | `-- relExp
|
||||
| | | |-- relExp
|
||||
| | | | `-- addExp
|
||||
| | | | `-- mulExp
|
||||
| | | | `-- unaryExp
|
||||
| | | | `-- primaryExp
|
||||
| | | | `-- lVal
|
||||
| | | | `-- Ident: i
|
||||
| | | |-- LT: <
|
||||
| | | `-- addExp
|
||||
| | | `-- mulExp
|
||||
| | | `-- unaryExp
|
||||
| | | `-- primaryExp
|
||||
| | | `-- lVal
|
||||
| | | `-- Ident: COUNT
|
||||
| | |-- RPAREN: )
|
||||
| | `-- stmt
|
||||
| | `-- block
|
||||
| | |-- LBRACE: {
|
||||
| | |-- blockItem
|
||||
| | | `-- stmt
|
||||
| | | |-- IF: if
|
||||
| | | |-- LPAREN: (
|
||||
| | | |-- cond
|
||||
| | | | `-- lOrExp
|
||||
| | | | `-- lAndExp
|
||||
| | | | `-- eqExp
|
||||
| | | | `-- relExp
|
||||
| | | | `-- addExp
|
||||
| | | | `-- mulExp
|
||||
| | | | |-- mulExp
|
||||
| | | | | `-- unaryExp
|
||||
| | | | | `-- primaryExp
|
||||
| | | | | `-- lVal
|
||||
| | | | | `-- Ident: i
|
||||
| | | | |-- MOD: %
|
||||
| | | | `-- unaryExp
|
||||
| | | | `-- primaryExp
|
||||
| | | | `-- number
|
||||
| | | | `-- IntConst: 10
|
||||
| | | |-- RPAREN: )
|
||||
| | | |-- stmt
|
||||
| | | | `-- block
|
||||
| | | | |-- LBRACE: {
|
||||
| | | | |-- blockItem
|
||||
| | | | | `-- stmt
|
||||
| | | | | |-- lVal
|
||||
| | | | | | `-- Ident: a
|
||||
| | | | | |-- ASSIGN: =
|
||||
| | | | | |-- exp
|
||||
| | | | | | `-- addExp
|
||||
| | | | | | `-- mulExp
|
||||
| | | | | | `-- unaryExp
|
||||
| | | | | | `-- primaryExp
|
||||
| | | | | | `-- number
|
||||
| | | | | | `-- FloatConst: 0.0
|
||||
| | | | | `-- SEMI: ;
|
||||
| | | | |-- blockItem
|
||||
| | | | | `-- stmt
|
||||
| | | | | |-- lVal
|
||||
| | | | | | `-- Ident: b
|
||||
| | | | | |-- ASSIGN: =
|
||||
| | | | | |-- exp
|
||||
| | | | | | `-- addExp
|
||||
| | | | | | `-- mulExp
|
||||
| | | | | | `-- unaryExp
|
||||
| | | | | | `-- primaryExp
|
||||
| | | | | | `-- number
|
||||
| | | | | | `-- FloatConst: 1.0
|
||||
| | | | | `-- SEMI: ;
|
||||
| | | | `-- RBRACE: }
|
||||
| | | |-- ELSE: else
|
||||
| | | `-- stmt
|
||||
| | | `-- block
|
||||
| | | |-- LBRACE: {
|
||||
| | | |-- blockItem
|
||||
| | | | `-- stmt
|
||||
| | | | |-- lVal
|
||||
| | | | | `-- Ident: a
|
||||
| | | | |-- ASSIGN: =
|
||||
| | | | |-- exp
|
||||
| | | | | `-- addExp
|
||||
| | | | | |-- addExp
|
||||
| | | | | | `-- mulExp
|
||||
| | | | | | `-- unaryExp
|
||||
| | | | | | `-- primaryExp
|
||||
| | | | | | `-- lVal
|
||||
| | | | | | `-- Ident: a
|
||||
| | | | | |-- ADD: +
|
||||
| | | | | `-- mulExp
|
||||
| | | | | `-- unaryExp
|
||||
| | | | | `-- primaryExp
|
||||
| | | | | `-- number
|
||||
| | | | | `-- FloatConst: 0.1
|
||||
| | | | `-- SEMI: ;
|
||||
| | | |-- blockItem
|
||||
| | | | `-- stmt
|
||||
| | | | |-- lVal
|
||||
| | | | | `-- Ident: b
|
||||
| | | | |-- ASSIGN: =
|
||||
| | | | |-- exp
|
||||
| | | | | `-- addExp
|
||||
| | | | | |-- addExp
|
||||
| | | | | | `-- mulExp
|
||||
| | | | | | `-- unaryExp
|
||||
| | | | | | `-- primaryExp
|
||||
| | | | | | `-- lVal
|
||||
| | | | | | `-- Ident: b
|
||||
| | | | | |-- ADD: +
|
||||
| | | | | `-- mulExp
|
||||
| | | | | `-- unaryExp
|
||||
| | | | | `-- primaryExp
|
||||
| | | | | `-- number
|
||||
| | | | | `-- FloatConst: 0.2
|
||||
| | | | `-- SEMI: ;
|
||||
| | | `-- RBRACE: }
|
||||
| | |-- blockItem
|
||||
| | | `-- stmt
|
||||
| | | |-- WHILE: while
|
||||
| | | |-- LPAREN: (
|
||||
| | | |-- cond
|
||||
| | | | `-- lOrExp
|
||||
| | | | `-- lAndExp
|
||||
| | | | `-- eqExp
|
||||
| | | | `-- relExp
|
||||
| | | | |-- relExp
|
||||
| | | | | `-- addExp
|
||||
| | | | | `-- mulExp
|
||||
| | | | | `-- unaryExp
|
||||
| | | | | `-- primaryExp
|
||||
| | | | | `-- lVal
|
||||
| | | | | `-- Ident: j
|
||||
| | | | |-- LT: <
|
||||
| | | | `-- addExp
|
||||
| | | | `-- mulExp
|
||||
| | | | `-- unaryExp
|
||||
| | | | `-- primaryExp
|
||||
| | | | `-- lVal
|
||||
| | | | `-- Ident: len
|
||||
| | | |-- RPAREN: )
|
||||
| | | `-- stmt
|
||||
| | | `-- block
|
||||
| | | |-- LBRACE: {
|
||||
| | | |-- blockItem
|
||||
| | | | `-- stmt
|
||||
| | | | |-- lVal
|
||||
| | | | | |-- Ident: x
|
||||
| | | | | |-- LBRACK: [
|
||||
| | | | | |-- exp
|
||||
| | | | | | `-- addExp
|
||||
| | | | | | `-- mulExp
|
||||
| | | | | | `-- unaryExp
|
||||
| | | | | | `-- primaryExp
|
||||
| | | | | | `-- lVal
|
||||
| | | | | | `-- Ident: j
|
||||
| | | | | `-- RBRACK: ]
|
||||
| | | | |-- ASSIGN: =
|
||||
| | | | |-- exp
|
||||
| | | | | `-- addExp
|
||||
| | | | | |-- addExp
|
||||
| | | | | | `-- mulExp
|
||||
| | | | | | `-- unaryExp
|
||||
| | | | | | `-- primaryExp
|
||||
| | | | | | `-- lVal
|
||||
| | | | | | `-- Ident: a
|
||||
| | | | | |-- ADD: +
|
||||
| | | | | `-- mulExp
|
||||
| | | | | `-- unaryExp
|
||||
| | | | | `-- primaryExp
|
||||
| | | | | `-- lVal
|
||||
| | | | | `-- Ident: j
|
||||
| | | | `-- SEMI: ;
|
||||
| | | |-- blockItem
|
||||
| | | | `-- stmt
|
||||
| | | | |-- lVal
|
||||
| | | | | |-- Ident: y
|
||||
| | | | | |-- LBRACK: [
|
||||
| | | | | |-- exp
|
||||
| | | | | | `-- addExp
|
||||
| | | | | | `-- mulExp
|
||||
| | | | | | `-- unaryExp
|
||||
| | | | | | `-- primaryExp
|
||||
| | | | | | `-- lVal
|
||||
| | | | | | `-- Ident: j
|
||||
| | | | | `-- RBRACK: ]
|
||||
| | | | |-- ASSIGN: =
|
||||
| | | | |-- exp
|
||||
| | | | | `-- addExp
|
||||
| | | | | |-- addExp
|
||||
| | | | | | `-- mulExp
|
||||
| | | | | | `-- unaryExp
|
||||
| | | | | | `-- primaryExp
|
||||
| | | | | | `-- lVal
|
||||
| | | | | | `-- Ident: b
|
||||
| | | | | |-- ADD: +
|
||||
| | | | | `-- mulExp
|
||||
| | | | | `-- unaryExp
|
||||
| | | | | `-- primaryExp
|
||||
| | | | | `-- lVal
|
||||
| | | | | `-- Ident: j
|
||||
| | | | `-- SEMI: ;
|
||||
| | | |-- blockItem
|
||||
| | | | `-- stmt
|
||||
| | | | |-- lVal
|
||||
| | | | | `-- Ident: j
|
||||
| | | | |-- ASSIGN: =
|
||||
| | | | |-- exp
|
||||
| | | | | `-- addExp
|
||||
| | | | | |-- addExp
|
||||
| | | | | | `-- mulExp
|
||||
| | | | | | `-- unaryExp
|
||||
| | | | | | `-- primaryExp
|
||||
| | | | | | `-- lVal
|
||||
| | | | | | `-- Ident: j
|
||||
| | | | | |-- ADD: +
|
||||
| | | | | `-- mulExp
|
||||
| | | | | `-- unaryExp
|
||||
| | | | | `-- primaryExp
|
||||
| | | | | `-- number
|
||||
| | | | | `-- IntConst: 1
|
||||
| | | | `-- SEMI: ;
|
||||
| | | `-- RBRACE: }
|
||||
| | |-- blockItem
|
||||
| | | `-- stmt
|
||||
| | | |-- lVal
|
||||
| | | | `-- Ident: total
|
||||
| | | |-- ASSIGN: =
|
||||
| | | |-- exp
|
||||
| | | | `-- addExp
|
||||
| | | | |-- addExp
|
||||
| | | | | `-- mulExp
|
||||
| | | | | `-- unaryExp
|
||||
| | | | | `-- primaryExp
|
||||
| | | | | `-- lVal
|
||||
| | | | | `-- Ident: total
|
||||
| | | | |-- ADD: +
|
||||
| | | | `-- mulExp
|
||||
| | | | `-- unaryExp
|
||||
| | | | |-- Ident: loop
|
||||
| | | | |-- LPAREN: (
|
||||
| | | | |-- funcRParams
|
||||
| | | | | |-- exp
|
||||
| | | | | | `-- addExp
|
||||
| | | | | | `-- mulExp
|
||||
| | | | | | `-- unaryExp
|
||||
| | | | | | `-- primaryExp
|
||||
| | | | | | `-- lVal
|
||||
| | | | | | `-- Ident: x
|
||||
| | | | | |-- COMMA: ,
|
||||
| | | | | |-- exp
|
||||
| | | | | | `-- addExp
|
||||
| | | | | | `-- mulExp
|
||||
| | | | | | `-- unaryExp
|
||||
| | | | | | `-- primaryExp
|
||||
| | | | | | `-- lVal
|
||||
| | | | | | `-- Ident: y
|
||||
| | | | | |-- COMMA: ,
|
||||
| | | | | `-- exp
|
||||
| | | | | `-- addExp
|
||||
| | | | | `-- mulExp
|
||||
| | | | | `-- unaryExp
|
||||
| | | | | `-- primaryExp
|
||||
| | | | | `-- lVal
|
||||
| | | | | `-- Ident: len
|
||||
| | | | `-- RPAREN: )
|
||||
| | | `-- 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
|
||||
| | |-- exp
|
||||
| | | `-- addExp
|
||||
| | | `-- mulExp
|
||||
| | | `-- unaryExp
|
||||
| | | |-- Ident: stoptime
|
||||
| | | |-- LPAREN: (
|
||||
| | | `-- RPAREN: )
|
||||
| | `-- SEMI: ;
|
||||
| |-- blockItem
|
||||
| | `-- stmt
|
||||
| | |-- IF: if
|
||||
| | |-- LPAREN: (
|
||||
| | |-- cond
|
||||
| | | `-- lOrExp
|
||||
| | | |-- lOrExp
|
||||
| | | | `-- lAndExp
|
||||
| | | | `-- eqExp
|
||||
| | | | `-- relExp
|
||||
| | | | |-- relExp
|
||||
| | | | | `-- addExp
|
||||
| | | | | `-- mulExp
|
||||
| | | | | `-- unaryExp
|
||||
| | | | | `-- primaryExp
|
||||
| | | | | |-- LPAREN: (
|
||||
| | | | | |-- exp
|
||||
| | | | | | `-- addExp
|
||||
| | | | | | |-- addExp
|
||||
| | | | | | | `-- mulExp
|
||||
| | | | | | | `-- unaryExp
|
||||
| | | | | | | `-- primaryExp
|
||||
| | | | | | | `-- lVal
|
||||
| | | | | | | `-- Ident: total
|
||||
| | | | | | |-- SUB: -
|
||||
| | | | | | `-- mulExp
|
||||
| | | | | | `-- unaryExp
|
||||
| | | | | | `-- primaryExp
|
||||
| | | | | | `-- number
|
||||
| | | | | | `-- FloatConst: 11442437121638400.000000
|
||||
| | | | | `-- RPAREN: )
|
||||
| | | | |-- LE: <=
|
||||
| | | | `-- addExp
|
||||
| | | | `-- mulExp
|
||||
| | | | `-- unaryExp
|
||||
| | | | `-- primaryExp
|
||||
| | | | `-- number
|
||||
| | | | `-- FloatConst: 0.000001
|
||||
| | | |-- OR: ||
|
||||
| | | `-- lAndExp
|
||||
| | | `-- eqExp
|
||||
| | | `-- relExp
|
||||
| | | |-- relExp
|
||||
| | | | `-- addExp
|
||||
| | | | `-- mulExp
|
||||
| | | | `-- unaryExp
|
||||
| | | | `-- primaryExp
|
||||
| | | | |-- LPAREN: (
|
||||
| | | | |-- exp
|
||||
| | | | | `-- addExp
|
||||
| | | | | |-- addExp
|
||||
| | | | | | `-- mulExp
|
||||
| | | | | | `-- unaryExp
|
||||
| | | | | | `-- primaryExp
|
||||
| | | | | | `-- lVal
|
||||
| | | | | | `-- Ident: total
|
||||
| | | | | |-- SUB: -
|
||||
| | | | | `-- mulExp
|
||||
| | | | | `-- unaryExp
|
||||
| | | | | `-- primaryExp
|
||||
| | | | | `-- number
|
||||
| | | | | `-- FloatConst: 11442437121638400.000000
|
||||
| | | | `-- RPAREN: )
|
||||
| | | |-- GE: >=
|
||||
| | | `-- addExp
|
||||
| | | `-- mulExp
|
||||
| | | `-- unaryExp
|
||||
| | | |-- unaryOp
|
||||
| | | | `-- SUB: -
|
||||
| | | `-- unaryExp
|
||||
| | | `-- primaryExp
|
||||
| | | `-- number
|
||||
| | | `-- FloatConst: 0.000001
|
||||
| | |-- RPAREN: )
|
||||
| | |-- stmt
|
||||
| | | `-- block
|
||||
| | | |-- LBRACE: {
|
||||
| | | |-- blockItem
|
||||
| | | | `-- stmt
|
||||
| | | | |-- exp
|
||||
| | | | | `-- addExp
|
||||
| | | | | `-- mulExp
|
||||
| | | | | `-- unaryExp
|
||||
| | | | | |-- Ident: putint
|
||||
| | | | | |-- LPAREN: (
|
||||
| | | | | |-- funcRParams
|
||||
| | | | | | `-- exp
|
||||
| | | | | | `-- addExp
|
||||
| | | | | | `-- mulExp
|
||||
| | | | | | `-- unaryExp
|
||||
| | | | | | `-- primaryExp
|
||||
| | | | | | `-- number
|
||||
| | | | | | `-- IntConst: 0
|
||||
| | | | | `-- RPAREN: )
|
||||
| | | | `-- SEMI: ;
|
||||
| | | |-- blockItem
|
||||
| | | | `-- stmt
|
||||
| | | | |-- RETURN: return
|
||||
| | | | |-- exp
|
||||
| | | | | `-- addExp
|
||||
| | | | | `-- mulExp
|
||||
| | | | | `-- unaryExp
|
||||
| | | | | `-- primaryExp
|
||||
| | | | | `-- number
|
||||
| | | | | `-- IntConst: 0
|
||||
| | | | `-- SEMI: ;
|
||||
| | | `-- RBRACE: }
|
||||
| | |-- ELSE: else
|
||||
| | `-- stmt
|
||||
| | `-- block
|
||||
| | |-- LBRACE: {
|
||||
| | |-- blockItem
|
||||
| | | `-- stmt
|
||||
| | | |-- exp
|
||||
| | | | `-- addExp
|
||||
| | | | `-- mulExp
|
||||
| | | | `-- unaryExp
|
||||
| | | | |-- Ident: putint
|
||||
| | | | |-- LPAREN: (
|
||||
| | | | |-- funcRParams
|
||||
| | | | | `-- exp
|
||||
| | | | | `-- addExp
|
||||
| | | | | `-- mulExp
|
||||
| | | | | `-- unaryExp
|
||||
| | | | | `-- primaryExp
|
||||
| | | | | `-- number
|
||||
| | | | | `-- IntConst: 1
|
||||
| | | | `-- RPAREN: )
|
||||
| | | `-- SEMI: ;
|
||||
| | |-- blockItem
|
||||
| | | `-- stmt
|
||||
| | | |-- RETURN: return
|
||||
| | | |-- exp
|
||||
| | | | `-- addExp
|
||||
| | | | `-- mulExp
|
||||
| | | | `-- unaryExp
|
||||
| | | | `-- primaryExp
|
||||
| | | | `-- number
|
||||
| | | | `-- IntConst: 1
|
||||
| | | `-- SEMI: ;
|
||||
| | `-- RBRACE: }
|
||||
| `-- RBRACE: }
|
||||
`-- EOF: <EOF>
|
||||
@ -0,0 +1,63 @@
|
||||
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>
|
||||
@ -0,0 +1,890 @@
|
||||
compUnit
|
||||
|-- decl
|
||||
| `-- varDecl
|
||||
| |-- bType
|
||||
| | `-- INT: int
|
||||
| |-- varDef
|
||||
| | |-- Ident: matrix
|
||||
| | |-- LBRACK: [
|
||||
| | |-- constExp
|
||||
| | | `-- addExp
|
||||
| | | `-- mulExp
|
||||
| | | `-- unaryExp
|
||||
| | | `-- primaryExp
|
||||
| | | `-- number
|
||||
| | | `-- IntConst: 20000000
|
||||
| | `-- RBRACK: ]
|
||||
| `-- SEMI: ;
|
||||
|-- decl
|
||||
| `-- varDecl
|
||||
| |-- bType
|
||||
| | `-- INT: int
|
||||
| |-- varDef
|
||||
| | |-- Ident: a
|
||||
| | |-- LBRACK: [
|
||||
| | |-- constExp
|
||||
| | | `-- addExp
|
||||
| | | `-- mulExp
|
||||
| | | `-- unaryExp
|
||||
| | | `-- primaryExp
|
||||
| | | `-- number
|
||||
| | | `-- IntConst: 100000
|
||||
| | `-- RBRACK: ]
|
||||
| `-- SEMI: ;
|
||||
|-- funcDef
|
||||
| |-- funcType
|
||||
| | `-- INT: int
|
||||
| |-- Ident: transpose
|
||||
| |-- LPAREN: (
|
||||
| |-- funcFParams
|
||||
| | |-- funcFParam
|
||||
| | | |-- bType
|
||||
| | | | `-- INT: int
|
||||
| | | `-- Ident: n
|
||||
| | |-- COMMA: ,
|
||||
| | |-- funcFParam
|
||||
| | | |-- bType
|
||||
| | | | `-- INT: int
|
||||
| | | |-- Ident: matrix
|
||||
| | | |-- LBRACK: [
|
||||
| | | `-- RBRACK: ]
|
||||
| | |-- COMMA: ,
|
||||
| | `-- funcFParam
|
||||
| | |-- bType
|
||||
| | | `-- INT: int
|
||||
| | `-- Ident: rowsize
|
||||
| |-- RPAREN: )
|
||||
| `-- block
|
||||
| |-- LBRACE: {
|
||||
| |-- blockItem
|
||||
| | `-- decl
|
||||
| | `-- varDecl
|
||||
| | |-- bType
|
||||
| | | `-- INT: int
|
||||
| | |-- varDef
|
||||
| | | |-- Ident: colsize
|
||||
| | | |-- ASSIGN: =
|
||||
| | | `-- initVal
|
||||
| | | `-- exp
|
||||
| | | `-- addExp
|
||||
| | | `-- mulExp
|
||||
| | | |-- mulExp
|
||||
| | | | `-- unaryExp
|
||||
| | | | `-- primaryExp
|
||||
| | | | `-- lVal
|
||||
| | | | `-- Ident: n
|
||||
| | | |-- DIV: /
|
||||
| | | `-- unaryExp
|
||||
| | | `-- primaryExp
|
||||
| | | `-- lVal
|
||||
| | | `-- Ident: rowsize
|
||||
| | `-- SEMI: ;
|
||||
| |-- blockItem
|
||||
| | `-- decl
|
||||
| | `-- varDecl
|
||||
| | |-- bType
|
||||
| | | `-- INT: int
|
||||
| | |-- varDef
|
||||
| | | |-- Ident: i
|
||||
| | | |-- ASSIGN: =
|
||||
| | | `-- initVal
|
||||
| | | `-- exp
|
||||
| | | `-- addExp
|
||||
| | | `-- mulExp
|
||||
| | | `-- unaryExp
|
||||
| | | `-- primaryExp
|
||||
| | | `-- number
|
||||
| | | `-- IntConst: 0
|
||||
| | `-- SEMI: ;
|
||||
| |-- blockItem
|
||||
| | `-- decl
|
||||
| | `-- varDecl
|
||||
| | |-- bType
|
||||
| | | `-- INT: int
|
||||
| | |-- varDef
|
||||
| | | |-- Ident: j
|
||||
| | | |-- ASSIGN: =
|
||||
| | | `-- initVal
|
||||
| | | `-- 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
|
||||
| | | `-- lVal
|
||||
| | | `-- Ident: colsize
|
||||
| | |-- RPAREN: )
|
||||
| | `-- stmt
|
||||
| | `-- block
|
||||
| | |-- LBRACE: {
|
||||
| | |-- blockItem
|
||||
| | | `-- stmt
|
||||
| | | |-- lVal
|
||||
| | | | `-- Ident: j
|
||||
| | | |-- 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: j
|
||||
| | | | |-- LT: <
|
||||
| | | | `-- addExp
|
||||
| | | | `-- mulExp
|
||||
| | | | `-- unaryExp
|
||||
| | | | `-- primaryExp
|
||||
| | | | `-- lVal
|
||||
| | | | `-- Ident: rowsize
|
||||
| | | |-- RPAREN: )
|
||||
| | | `-- stmt
|
||||
| | | `-- block
|
||||
| | | |-- LBRACE: {
|
||||
| | | |-- blockItem
|
||||
| | | | `-- stmt
|
||||
| | | | |-- IF: if
|
||||
| | | | |-- LPAREN: (
|
||||
| | | | |-- cond
|
||||
| | | | | `-- lOrExp
|
||||
| | | | | `-- lAndExp
|
||||
| | | | | `-- eqExp
|
||||
| | | | | `-- relExp
|
||||
| | | | | |-- relExp
|
||||
| | | | | | `-- addExp
|
||||
| | | | | | `-- mulExp
|
||||
| | | | | | `-- unaryExp
|
||||
| | | | | | `-- primaryExp
|
||||
| | | | | | `-- lVal
|
||||
| | | | | | `-- Ident: i
|
||||
| | | | | |-- LT: <
|
||||
| | | | | `-- addExp
|
||||
| | | | | `-- mulExp
|
||||
| | | | | `-- unaryExp
|
||||
| | | | | `-- primaryExp
|
||||
| | | | | `-- lVal
|
||||
| | | | | `-- Ident: j
|
||||
| | | | |-- RPAREN: )
|
||||
| | | | `-- stmt
|
||||
| | | | `-- block
|
||||
| | | | |-- LBRACE: {
|
||||
| | | | |-- blockItem
|
||||
| | | | | `-- stmt
|
||||
| | | | | |-- lVal
|
||||
| | | | | | `-- Ident: j
|
||||
| | | | | |-- ASSIGN: =
|
||||
| | | | | |-- exp
|
||||
| | | | | | `-- addExp
|
||||
| | | | | | |-- addExp
|
||||
| | | | | | | `-- mulExp
|
||||
| | | | | | | `-- unaryExp
|
||||
| | | | | | | `-- primaryExp
|
||||
| | | | | | | `-- lVal
|
||||
| | | | | | | `-- Ident: j
|
||||
| | | | | | |-- ADD: +
|
||||
| | | | | | `-- mulExp
|
||||
| | | | | | `-- unaryExp
|
||||
| | | | | | `-- primaryExp
|
||||
| | | | | | `-- number
|
||||
| | | | | | `-- IntConst: 1
|
||||
| | | | | `-- SEMI: ;
|
||||
| | | | |-- blockItem
|
||||
| | | | | `-- stmt
|
||||
| | | | | |-- CONTINUE: continue
|
||||
| | | | | `-- SEMI: ;
|
||||
| | | | `-- RBRACE: }
|
||||
| | | |-- blockItem
|
||||
| | | | `-- decl
|
||||
| | | | `-- varDecl
|
||||
| | | | |-- bType
|
||||
| | | | | `-- INT: int
|
||||
| | | | |-- varDef
|
||||
| | | | | |-- Ident: curr
|
||||
| | | | | |-- ASSIGN: =
|
||||
| | | | | `-- initVal
|
||||
| | | | | `-- exp
|
||||
| | | | | `-- addExp
|
||||
| | | | | `-- mulExp
|
||||
| | | | | `-- unaryExp
|
||||
| | | | | `-- primaryExp
|
||||
| | | | | `-- lVal
|
||||
| | | | | |-- Ident: matrix
|
||||
| | | | | |-- LBRACK: [
|
||||
| | | | | |-- exp
|
||||
| | | | | | `-- addExp
|
||||
| | | | | | |-- addExp
|
||||
| | | | | | | `-- mulExp
|
||||
| | | | | | | |-- mulExp
|
||||
| | | | | | | | `-- unaryExp
|
||||
| | | | | | | | `-- primaryExp
|
||||
| | | | | | | | `-- lVal
|
||||
| | | | | | | | `-- Ident: i
|
||||
| | | | | | | |-- MUL: *
|
||||
| | | | | | | `-- unaryExp
|
||||
| | | | | | | `-- primaryExp
|
||||
| | | | | | | `-- lVal
|
||||
| | | | | | | `-- Ident: rowsize
|
||||
| | | | | | |-- ADD: +
|
||||
| | | | | | `-- mulExp
|
||||
| | | | | | `-- unaryExp
|
||||
| | | | | | `-- primaryExp
|
||||
| | | | | | `-- lVal
|
||||
| | | | | | `-- Ident: j
|
||||
| | | | | `-- RBRACK: ]
|
||||
| | | | `-- SEMI: ;
|
||||
| | | |-- blockItem
|
||||
| | | | `-- stmt
|
||||
| | | | |-- lVal
|
||||
| | | | | |-- Ident: matrix
|
||||
| | | | | |-- LBRACK: [
|
||||
| | | | | |-- exp
|
||||
| | | | | | `-- addExp
|
||||
| | | | | | |-- addExp
|
||||
| | | | | | | `-- mulExp
|
||||
| | | | | | | |-- mulExp
|
||||
| | | | | | | | `-- unaryExp
|
||||
| | | | | | | | `-- primaryExp
|
||||
| | | | | | | | `-- lVal
|
||||
| | | | | | | | `-- Ident: j
|
||||
| | | | | | | |-- MUL: *
|
||||
| | | | | | | `-- unaryExp
|
||||
| | | | | | | `-- primaryExp
|
||||
| | | | | | | `-- lVal
|
||||
| | | | | | | `-- Ident: colsize
|
||||
| | | | | | |-- ADD: +
|
||||
| | | | | | `-- mulExp
|
||||
| | | | | | `-- unaryExp
|
||||
| | | | | | `-- primaryExp
|
||||
| | | | | | `-- lVal
|
||||
| | | | | | `-- Ident: i
|
||||
| | | | | `-- RBRACK: ]
|
||||
| | | | |-- ASSIGN: =
|
||||
| | | | |-- exp
|
||||
| | | | | `-- addExp
|
||||
| | | | | `-- mulExp
|
||||
| | | | | `-- unaryExp
|
||||
| | | | | `-- primaryExp
|
||||
| | | | | `-- lVal
|
||||
| | | | | |-- Ident: matrix
|
||||
| | | | | |-- LBRACK: [
|
||||
| | | | | |-- exp
|
||||
| | | | | | `-- addExp
|
||||
| | | | | | |-- addExp
|
||||
| | | | | | | `-- mulExp
|
||||
| | | | | | | |-- mulExp
|
||||
| | | | | | | | `-- unaryExp
|
||||
| | | | | | | | `-- primaryExp
|
||||
| | | | | | | | `-- lVal
|
||||
| | | | | | | | `-- Ident: i
|
||||
| | | | | | | |-- MUL: *
|
||||
| | | | | | | `-- unaryExp
|
||||
| | | | | | | `-- primaryExp
|
||||
| | | | | | | `-- lVal
|
||||
| | | | | | | `-- Ident: rowsize
|
||||
| | | | | | |-- ADD: +
|
||||
| | | | | | `-- mulExp
|
||||
| | | | | | `-- unaryExp
|
||||
| | | | | | `-- primaryExp
|
||||
| | | | | | `-- lVal
|
||||
| | | | | | `-- Ident: j
|
||||
| | | | | `-- RBRACK: ]
|
||||
| | | | `-- SEMI: ;
|
||||
| | | |-- blockItem
|
||||
| | | | `-- stmt
|
||||
| | | | |-- lVal
|
||||
| | | | | |-- Ident: matrix
|
||||
| | | | | |-- LBRACK: [
|
||||
| | | | | |-- exp
|
||||
| | | | | | `-- addExp
|
||||
| | | | | | |-- addExp
|
||||
| | | | | | | `-- mulExp
|
||||
| | | | | | | |-- mulExp
|
||||
| | | | | | | | `-- unaryExp
|
||||
| | | | | | | | `-- primaryExp
|
||||
| | | | | | | | `-- lVal
|
||||
| | | | | | | | `-- Ident: i
|
||||
| | | | | | | |-- MUL: *
|
||||
| | | | | | | `-- unaryExp
|
||||
| | | | | | | `-- primaryExp
|
||||
| | | | | | | `-- lVal
|
||||
| | | | | | | `-- Ident: rowsize
|
||||
| | | | | | |-- ADD: +
|
||||
| | | | | | `-- mulExp
|
||||
| | | | | | `-- unaryExp
|
||||
| | | | | | `-- primaryExp
|
||||
| | | | | | `-- lVal
|
||||
| | | | | | `-- Ident: j
|
||||
| | | | | `-- RBRACK: ]
|
||||
| | | | |-- ASSIGN: =
|
||||
| | | | |-- exp
|
||||
| | | | | `-- addExp
|
||||
| | | | | `-- mulExp
|
||||
| | | | | `-- unaryExp
|
||||
| | | | | `-- primaryExp
|
||||
| | | | | `-- lVal
|
||||
| | | | | `-- Ident: curr
|
||||
| | | | `-- SEMI: ;
|
||||
| | | |-- blockItem
|
||||
| | | | `-- stmt
|
||||
| | | | |-- lVal
|
||||
| | | | | `-- Ident: j
|
||||
| | | | |-- ASSIGN: =
|
||||
| | | | |-- exp
|
||||
| | | | | `-- addExp
|
||||
| | | | | |-- addExp
|
||||
| | | | | | `-- mulExp
|
||||
| | | | | | `-- unaryExp
|
||||
| | | | | | `-- primaryExp
|
||||
| | | | | | `-- lVal
|
||||
| | | | | | `-- Ident: j
|
||||
| | | | | |-- ADD: +
|
||||
| | | | | `-- mulExp
|
||||
| | | | | `-- unaryExp
|
||||
| | | | | `-- primaryExp
|
||||
| | | | | `-- number
|
||||
| | | | | `-- IntConst: 1
|
||||
| | | | `-- SEMI: ;
|
||||
| | | `-- RBRACE: }
|
||||
| | |-- 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
|
||||
| | | |-- unaryOp
|
||||
| | | | `-- SUB: -
|
||||
| | | `-- unaryExp
|
||||
| | | `-- primaryExp
|
||||
| | | `-- number
|
||||
| | | `-- IntConst: 1
|
||||
| | `-- SEMI: ;
|
||||
| `-- RBRACE: }
|
||||
|-- funcDef
|
||||
| |-- funcType
|
||||
| | `-- INT: int
|
||||
| |-- Ident: main
|
||||
| |-- LPAREN: (
|
||||
| |-- RPAREN: )
|
||||
| `-- block
|
||||
| |-- LBRACE: {
|
||||
| |-- blockItem
|
||||
| | `-- decl
|
||||
| | `-- varDecl
|
||||
| | |-- bType
|
||||
| | | `-- INT: int
|
||||
| | |-- varDef
|
||||
| | | |-- Ident: n
|
||||
| | | |-- ASSIGN: =
|
||||
| | | `-- initVal
|
||||
| | | `-- exp
|
||||
| | | `-- addExp
|
||||
| | | `-- mulExp
|
||||
| | | `-- unaryExp
|
||||
| | | |-- Ident: getint
|
||||
| | | |-- LPAREN: (
|
||||
| | | `-- RPAREN: )
|
||||
| | `-- SEMI: ;
|
||||
| |-- blockItem
|
||||
| | `-- decl
|
||||
| | `-- varDecl
|
||||
| | |-- bType
|
||||
| | | `-- INT: int
|
||||
| | |-- varDef
|
||||
| | | |-- Ident: len
|
||||
| | | |-- ASSIGN: =
|
||||
| | | `-- initVal
|
||||
| | | `-- exp
|
||||
| | | `-- addExp
|
||||
| | | `-- mulExp
|
||||
| | | `-- unaryExp
|
||||
| | | |-- Ident: getarray
|
||||
| | | |-- LPAREN: (
|
||||
| | | |-- funcRParams
|
||||
| | | | `-- exp
|
||||
| | | | `-- addExp
|
||||
| | | | `-- mulExp
|
||||
| | | | `-- unaryExp
|
||||
| | | | `-- primaryExp
|
||||
| | | | `-- lVal
|
||||
| | | | `-- Ident: a
|
||||
| | | `-- RPAREN: )
|
||||
| | `-- SEMI: ;
|
||||
| |-- blockItem
|
||||
| | `-- stmt
|
||||
| | |-- exp
|
||||
| | | `-- addExp
|
||||
| | | `-- mulExp
|
||||
| | | `-- unaryExp
|
||||
| | | |-- Ident: starttime
|
||||
| | | |-- LPAREN: (
|
||||
| | | `-- RPAREN: )
|
||||
| | `-- SEMI: ;
|
||||
| |-- blockItem
|
||||
| | `-- decl
|
||||
| | `-- varDecl
|
||||
| | |-- bType
|
||||
| | | `-- INT: int
|
||||
| | |-- varDef
|
||||
| | | |-- Ident: i
|
||||
| | | |-- ASSIGN: =
|
||||
| | | `-- initVal
|
||||
| | | `-- 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
|
||||
| | | `-- lVal
|
||||
| | | `-- Ident: n
|
||||
| | |-- RPAREN: )
|
||||
| | `-- stmt
|
||||
| | `-- block
|
||||
| | |-- LBRACE: {
|
||||
| | |-- blockItem
|
||||
| | | `-- stmt
|
||||
| | | |-- lVal
|
||||
| | | | |-- Ident: matrix
|
||||
| | | | |-- LBRACK: [
|
||||
| | | | |-- exp
|
||||
| | | | | `-- addExp
|
||||
| | | | | `-- mulExp
|
||||
| | | | | `-- unaryExp
|
||||
| | | | | `-- primaryExp
|
||||
| | | | | `-- lVal
|
||||
| | | | | `-- Ident: i
|
||||
| | | | `-- RBRACK: ]
|
||||
| | | |-- ASSIGN: =
|
||||
| | | |-- exp
|
||||
| | | | `-- addExp
|
||||
| | | | `-- 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
|
||||
| | |-- lVal
|
||||
| | | `-- Ident: i
|
||||
| | |-- 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
|
||||
| | | `-- lVal
|
||||
| | | `-- Ident: len
|
||||
| | |-- RPAREN: )
|
||||
| | `-- stmt
|
||||
| | `-- block
|
||||
| | |-- LBRACE: {
|
||||
| | |-- blockItem
|
||||
| | | `-- stmt
|
||||
| | | |-- exp
|
||||
| | | | `-- addExp
|
||||
| | | | `-- mulExp
|
||||
| | | | `-- unaryExp
|
||||
| | | | |-- Ident: transpose
|
||||
| | | | |-- LPAREN: (
|
||||
| | | | |-- funcRParams
|
||||
| | | | | |-- exp
|
||||
| | | | | | `-- addExp
|
||||
| | | | | | `-- mulExp
|
||||
| | | | | | `-- unaryExp
|
||||
| | | | | | `-- primaryExp
|
||||
| | | | | | `-- lVal
|
||||
| | | | | | `-- Ident: n
|
||||
| | | | | |-- COMMA: ,
|
||||
| | | | | |-- exp
|
||||
| | | | | | `-- addExp
|
||||
| | | | | | `-- mulExp
|
||||
| | | | | | `-- unaryExp
|
||||
| | | | | | `-- primaryExp
|
||||
| | | | | | `-- lVal
|
||||
| | | | | | `-- Ident: matrix
|
||||
| | | | | |-- COMMA: ,
|
||||
| | | | | `-- exp
|
||||
| | | | | `-- addExp
|
||||
| | | | | `-- mulExp
|
||||
| | | | | `-- unaryExp
|
||||
| | | | | `-- primaryExp
|
||||
| | | | | `-- lVal
|
||||
| | | | | |-- Ident: a
|
||||
| | | | | |-- LBRACK: [
|
||||
| | | | | |-- exp
|
||||
| | | | | | `-- addExp
|
||||
| | | | | | `-- mulExp
|
||||
| | | | | | `-- unaryExp
|
||||
| | | | | | `-- primaryExp
|
||||
| | | | | | `-- lVal
|
||||
| | | | | | `-- Ident: i
|
||||
| | | | | `-- RBRACK: ]
|
||||
| | | | `-- RPAREN: )
|
||||
| | | `-- 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
|
||||
| | `-- decl
|
||||
| | `-- varDecl
|
||||
| | |-- bType
|
||||
| | | `-- INT: int
|
||||
| | |-- varDef
|
||||
| | | |-- Ident: ans
|
||||
| | | |-- ASSIGN: =
|
||||
| | | `-- initVal
|
||||
| | | `-- exp
|
||||
| | | `-- addExp
|
||||
| | | `-- mulExp
|
||||
| | | `-- unaryExp
|
||||
| | | `-- primaryExp
|
||||
| | | `-- number
|
||||
| | | `-- IntConst: 0
|
||||
| | `-- SEMI: ;
|
||||
| |-- blockItem
|
||||
| | `-- stmt
|
||||
| | |-- lVal
|
||||
| | | `-- Ident: i
|
||||
| | |-- 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
|
||||
| | | `-- lVal
|
||||
| | | `-- Ident: len
|
||||
| | |-- RPAREN: )
|
||||
| | `-- stmt
|
||||
| | `-- block
|
||||
| | |-- LBRACE: {
|
||||
| | |-- blockItem
|
||||
| | | `-- stmt
|
||||
| | | |-- lVal
|
||||
| | | | `-- Ident: ans
|
||||
| | | |-- ASSIGN: =
|
||||
| | | |-- exp
|
||||
| | | | `-- addExp
|
||||
| | | | |-- addExp
|
||||
| | | | | `-- mulExp
|
||||
| | | | | `-- unaryExp
|
||||
| | | | | `-- primaryExp
|
||||
| | | | | `-- lVal
|
||||
| | | | | `-- Ident: ans
|
||||
| | | | |-- ADD: +
|
||||
| | | | `-- mulExp
|
||||
| | | | |-- mulExp
|
||||
| | | | | |-- mulExp
|
||||
| | | | | | `-- unaryExp
|
||||
| | | | | | `-- primaryExp
|
||||
| | | | | | `-- lVal
|
||||
| | | | | | `-- Ident: i
|
||||
| | | | | |-- MUL: *
|
||||
| | | | | `-- unaryExp
|
||||
| | | | | `-- primaryExp
|
||||
| | | | | `-- lVal
|
||||
| | | | | `-- Ident: i
|
||||
| | | | |-- MUL: *
|
||||
| | | | `-- unaryExp
|
||||
| | | | `-- primaryExp
|
||||
| | | | `-- lVal
|
||||
| | | | |-- Ident: matrix
|
||||
| | | | |-- LBRACK: [
|
||||
| | | | |-- exp
|
||||
| | | | | `-- addExp
|
||||
| | | | | `-- mulExp
|
||||
| | | | | `-- unaryExp
|
||||
| | | | | `-- primaryExp
|
||||
| | | | | `-- lVal
|
||||
| | | | | `-- Ident: i
|
||||
| | | | `-- RBRACK: ]
|
||||
| | | `-- 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
|
||||
| | |-- IF: if
|
||||
| | |-- LPAREN: (
|
||||
| | |-- cond
|
||||
| | | `-- lOrExp
|
||||
| | | `-- lAndExp
|
||||
| | | `-- eqExp
|
||||
| | | `-- relExp
|
||||
| | | |-- relExp
|
||||
| | | | `-- addExp
|
||||
| | | | `-- mulExp
|
||||
| | | | `-- unaryExp
|
||||
| | | | `-- primaryExp
|
||||
| | | | `-- lVal
|
||||
| | | | `-- Ident: ans
|
||||
| | | |-- LT: <
|
||||
| | | `-- addExp
|
||||
| | | `-- mulExp
|
||||
| | | `-- unaryExp
|
||||
| | | `-- primaryExp
|
||||
| | | `-- number
|
||||
| | | `-- IntConst: 0
|
||||
| | |-- RPAREN: )
|
||||
| | `-- stmt
|
||||
| | |-- lVal
|
||||
| | | `-- Ident: ans
|
||||
| | |-- ASSIGN: =
|
||||
| | |-- exp
|
||||
| | | `-- addExp
|
||||
| | | `-- mulExp
|
||||
| | | `-- unaryExp
|
||||
| | | |-- unaryOp
|
||||
| | | | `-- SUB: -
|
||||
| | | `-- unaryExp
|
||||
| | | `-- primaryExp
|
||||
| | | `-- lVal
|
||||
| | | `-- Ident: ans
|
||||
| | `-- SEMI: ;
|
||||
| |-- blockItem
|
||||
| | `-- stmt
|
||||
| | |-- exp
|
||||
| | | `-- addExp
|
||||
| | | `-- mulExp
|
||||
| | | `-- unaryExp
|
||||
| | | |-- Ident: stoptime
|
||||
| | | |-- LPAREN: (
|
||||
| | | `-- RPAREN: )
|
||||
| | `-- SEMI: ;
|
||||
| |-- blockItem
|
||||
| | `-- stmt
|
||||
| | |-- exp
|
||||
| | | `-- addExp
|
||||
| | | `-- mulExp
|
||||
| | | `-- unaryExp
|
||||
| | | |-- Ident: putint
|
||||
| | | |-- LPAREN: (
|
||||
| | | |-- funcRParams
|
||||
| | | | `-- exp
|
||||
| | | | `-- addExp
|
||||
| | | | `-- mulExp
|
||||
| | | | `-- unaryExp
|
||||
| | | | `-- primaryExp
|
||||
| | | | `-- lVal
|
||||
| | | | `-- Ident: ans
|
||||
| | | `-- RPAREN: )
|
||||
| | `-- SEMI: ;
|
||||
| |-- blockItem
|
||||
| | `-- stmt
|
||||
| | |-- exp
|
||||
| | | `-- addExp
|
||||
| | | `-- mulExp
|
||||
| | | `-- unaryExp
|
||||
| | | |-- Ident: putch
|
||||
| | | |-- LPAREN: (
|
||||
| | | |-- funcRParams
|
||||
| | | | `-- exp
|
||||
| | | | `-- addExp
|
||||
| | | | `-- mulExp
|
||||
| | | | `-- unaryExp
|
||||
| | | | `-- primaryExp
|
||||
| | | | `-- number
|
||||
| | | | `-- IntConst: 10
|
||||
| | | `-- RPAREN: )
|
||||
| | `-- SEMI: ;
|
||||
| |-- blockItem
|
||||
| | `-- stmt
|
||||
| | |-- RETURN: return
|
||||
| | |-- exp
|
||||
| | | `-- addExp
|
||||
| | | `-- mulExp
|
||||
| | | `-- unaryExp
|
||||
| | | `-- primaryExp
|
||||
| | | `-- number
|
||||
| | | `-- IntConst: 0
|
||||
| | `-- SEMI: ;
|
||||
| `-- RBRACE: }
|
||||
`-- EOF: <EOF>
|
||||
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