You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

598 lines
31 KiB

compUnit
|-- funcDef
| |-- funcType
| | `-- Int: int
| |-- Ident: main
| |-- L_PAREN: (
| |-- R_PAREN: )
| `-- block
| |-- L_BRACE: {
| |-- blockItem
| | `-- decl
| | `-- varDecl
| | |-- bType
| | | `-- Int: int
| | |-- varDef
| | | |-- Ident: a
| | | |-- L_BRACKET: [
| | | |-- constExp
| | | | `-- addExp
| | | | `-- mulExp
| | | | `-- unaryExp
| | | | `-- primaryExp
| | | | `-- number
| | | | `-- IntConst: 4
| | | |-- R_BRACKET: ]
| | | |-- L_BRACKET: [
| | | |-- constExp
| | | | `-- addExp
| | | | `-- mulExp
| | | | `-- unaryExp
| | | | `-- primaryExp
| | | | `-- number
| | | | `-- IntConst: 2
| | | |-- R_BRACKET: ]
| | | |-- Assign: =
| | | `-- initVal
| | | |-- L_BRACE: {
| | | `-- R_BRACE: }
| | `-- Semi: ;
| |-- blockItem
| | `-- decl
| | `-- varDecl
| | |-- bType
| | | `-- Int: int
| | |-- varDef
| | | |-- Ident: b
| | | |-- L_BRACKET: [
| | | |-- constExp
| | | | `-- addExp
| | | | `-- mulExp
| | | | `-- unaryExp
| | | | `-- primaryExp
| | | | `-- number
| | | | `-- IntConst: 4
| | | |-- R_BRACKET: ]
| | | |-- L_BRACKET: [
| | | |-- constExp
| | | | `-- addExp
| | | | `-- mulExp
| | | | `-- unaryExp
| | | | `-- primaryExp
| | | | `-- number
| | | | `-- IntConst: 2
| | | |-- R_BRACKET: ]
| | | |-- Assign: =
| | | `-- initVal
| | | |-- L_BRACE: {
| | | |-- 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
| | | `-- R_BRACE: }
| | `-- Semi: ;
| |-- blockItem
| | `-- decl
| | `-- varDecl
| | |-- bType
| | | `-- Int: int
| | |-- varDef
| | | |-- Ident: c
| | | |-- L_BRACKET: [
| | | |-- constExp
| | | | `-- addExp
| | | | `-- mulExp
| | | | `-- unaryExp
| | | | `-- primaryExp
| | | | `-- number
| | | | `-- IntConst: 4
| | | |-- R_BRACKET: ]
| | | |-- L_BRACKET: [
| | | |-- constExp
| | | | `-- addExp
| | | | `-- mulExp
| | | | `-- unaryExp
| | | | `-- primaryExp
| | | | `-- number
| | | | `-- IntConst: 2
| | | |-- R_BRACKET: ]
| | | |-- Assign: =
| | | `-- initVal
| | | |-- L_BRACE: {
| | | |-- initVal
| | | | |-- L_BRACE: {
| | | | |-- initVal
| | | | | `-- exp
| | | | | `-- addExp
| | | | | `-- mulExp
| | | | | `-- unaryExp
| | | | | `-- primaryExp
| | | | | `-- number
| | | | | `-- IntConst: 1
| | | | |-- Comma: ,
| | | | |-- initVal
| | | | | `-- exp
| | | | | `-- addExp
| | | | | `-- mulExp
| | | | | `-- unaryExp
| | | | | `-- primaryExp
| | | | | `-- number
| | | | | `-- IntConst: 2
| | | | `-- R_BRACE: }
| | | |-- Comma: ,
| | | |-- initVal
| | | | |-- L_BRACE: {
| | | | |-- initVal
| | | | | `-- exp
| | | | | `-- addExp
| | | | | `-- mulExp
| | | | | `-- unaryExp
| | | | | `-- primaryExp
| | | | | `-- number
| | | | | `-- IntConst: 3
| | | | |-- Comma: ,
| | | | |-- initVal
| | | | | `-- exp
| | | | | `-- addExp
| | | | | `-- mulExp
| | | | | `-- unaryExp
| | | | | `-- primaryExp
| | | | | `-- number
| | | | | `-- IntConst: 4
| | | | `-- R_BRACE: }
| | | |-- Comma: ,
| | | |-- initVal
| | | | |-- L_BRACE: {
| | | | |-- initVal
| | | | | `-- exp
| | | | | `-- addExp
| | | | | `-- mulExp
| | | | | `-- unaryExp
| | | | | `-- primaryExp
| | | | | `-- number
| | | | | `-- IntConst: 5
| | | | |-- Comma: ,
| | | | |-- initVal
| | | | | `-- exp
| | | | | `-- addExp
| | | | | `-- mulExp
| | | | | `-- unaryExp
| | | | | `-- primaryExp
| | | | | `-- number
| | | | | `-- IntConst: 6
| | | | `-- R_BRACE: }
| | | |-- Comma: ,
| | | |-- initVal
| | | | |-- L_BRACE: {
| | | | |-- initVal
| | | | | `-- exp
| | | | | `-- addExp
| | | | | `-- mulExp
| | | | | `-- unaryExp
| | | | | `-- primaryExp
| | | | | `-- number
| | | | | `-- IntConst: 7
| | | | |-- Comma: ,
| | | | |-- initVal
| | | | | `-- exp
| | | | | `-- addExp
| | | | | `-- mulExp
| | | | | `-- unaryExp
| | | | | `-- primaryExp
| | | | | `-- number
| | | | | `-- IntConst: 8
| | | | `-- R_BRACE: }
| | | `-- R_BRACE: }
| | `-- Semi: ;
| |-- blockItem
| | `-- decl
| | `-- varDecl
| | |-- bType
| | | `-- Int: int
| | |-- varDef
| | | |-- Ident: d
| | | |-- L_BRACKET: [
| | | |-- constExp
| | | | `-- addExp
| | | | `-- mulExp
| | | | `-- unaryExp
| | | | `-- primaryExp
| | | | `-- number
| | | | `-- IntConst: 4
| | | |-- R_BRACKET: ]
| | | |-- L_BRACKET: [
| | | |-- constExp
| | | | `-- addExp
| | | | `-- mulExp
| | | | `-- unaryExp
| | | | `-- primaryExp
| | | | `-- number
| | | | `-- IntConst: 2
| | | |-- R_BRACKET: ]
| | | |-- Assign: =
| | | `-- initVal
| | | |-- L_BRACE: {
| | | |-- initVal
| | | | `-- exp
| | | | `-- addExp
| | | | `-- mulExp
| | | | `-- unaryExp
| | | | `-- primaryExp
| | | | `-- number
| | | | `-- IntConst: 1
| | | |-- Comma: ,
| | | |-- initVal
| | | | `-- exp
| | | | `-- addExp
| | | | `-- mulExp
| | | | `-- unaryExp
| | | | `-- primaryExp
| | | | `-- number
| | | | `-- IntConst: 2
| | | |-- Comma: ,
| | | |-- initVal
| | | | |-- L_BRACE: {
| | | | |-- initVal
| | | | | `-- exp
| | | | | `-- addExp
| | | | | `-- mulExp
| | | | | `-- unaryExp
| | | | | `-- primaryExp
| | | | | `-- number
| | | | | `-- IntConst: 3
| | | | `-- R_BRACE: }
| | | |-- Comma: ,
| | | |-- initVal
| | | | |-- L_BRACE: {
| | | | |-- initVal
| | | | | `-- exp
| | | | | `-- addExp
| | | | | `-- mulExp
| | | | | `-- unaryExp
| | | | | `-- primaryExp
| | | | | `-- number
| | | | | `-- IntConst: 5
| | | | `-- R_BRACE: }
| | | |-- Comma: ,
| | | |-- initVal
| | | | `-- exp
| | | | `-- addExp
| | | | `-- mulExp
| | | | `-- unaryExp
| | | | `-- primaryExp
| | | | `-- number
| | | | `-- IntConst: 7
| | | |-- Comma: ,
| | | |-- initVal
| | | | `-- exp
| | | | `-- addExp
| | | | `-- mulExp
| | | | `-- unaryExp
| | | | `-- primaryExp
| | | | `-- number
| | | | `-- IntConst: 8
| | | `-- R_BRACE: }
| | `-- Semi: ;
| |-- blockItem
| | `-- decl
| | `-- varDecl
| | |-- bType
| | | `-- Int: int
| | |-- varDef
| | | |-- Ident: e
| | | |-- L_BRACKET: [
| | | |-- constExp
| | | | `-- addExp
| | | | `-- mulExp
| | | | `-- unaryExp
| | | | `-- primaryExp
| | | | `-- number
| | | | `-- IntConst: 4
| | | |-- R_BRACKET: ]
| | | |-- L_BRACKET: [
| | | |-- constExp
| | | | `-- addExp
| | | | `-- mulExp
| | | | `-- unaryExp
| | | | `-- primaryExp
| | | | `-- number
| | | | `-- IntConst: 2
| | | |-- R_BRACKET: ]
| | | |-- Assign: =
| | | `-- initVal
| | | |-- L_BRACE: {
| | | |-- initVal
| | | | |-- L_BRACE: {
| | | | |-- initVal
| | | | | `-- exp
| | | | | `-- addExp
| | | | | `-- mulExp
| | | | | `-- unaryExp
| | | | | `-- primaryExp
| | | | | `-- lVal
| | | | | |-- Ident: d
| | | | | |-- L_BRACKET: [
| | | | | |-- exp
| | | | | | `-- addExp
| | | | | | `-- mulExp
| | | | | | `-- unaryExp
| | | | | | `-- primaryExp
| | | | | | `-- number
| | | | | | `-- IntConst: 2
| | | | | |-- R_BRACKET: ]
| | | | | |-- L_BRACKET: [
| | | | | |-- exp
| | | | | | `-- addExp
| | | | | | `-- mulExp
| | | | | | `-- unaryExp
| | | | | | `-- primaryExp
| | | | | | `-- number
| | | | | | `-- IntConst: 1
| | | | | `-- R_BRACKET: ]
| | | | |-- Comma: ,
| | | | |-- initVal
| | | | | `-- exp
| | | | | `-- addExp
| | | | | `-- mulExp
| | | | | `-- unaryExp
| | | | | `-- primaryExp
| | | | | `-- lVal
| | | | | |-- Ident: c
| | | | | |-- L_BRACKET: [
| | | | | |-- exp
| | | | | | `-- addExp
| | | | | | `-- mulExp
| | | | | | `-- unaryExp
| | | | | | `-- primaryExp
| | | | | | `-- number
| | | | | | `-- IntConst: 2
| | | | | |-- R_BRACKET: ]
| | | | | |-- L_BRACKET: [
| | | | | |-- exp
| | | | | | `-- addExp
| | | | | | `-- mulExp
| | | | | | `-- unaryExp
| | | | | | `-- primaryExp
| | | | | | `-- number
| | | | | | `-- IntConst: 1
| | | | | `-- R_BRACKET: ]
| | | | `-- R_BRACE: }
| | | |-- Comma: ,
| | | |-- initVal
| | | | |-- L_BRACE: {
| | | | |-- initVal
| | | | | `-- exp
| | | | | `-- addExp
| | | | | `-- mulExp
| | | | | `-- unaryExp
| | | | | `-- primaryExp
| | | | | `-- number
| | | | | `-- IntConst: 3
| | | | |-- Comma: ,
| | | | |-- initVal
| | | | | `-- exp
| | | | | `-- addExp
| | | | | `-- mulExp
| | | | | `-- unaryExp
| | | | | `-- primaryExp
| | | | | `-- number
| | | | | `-- IntConst: 4
| | | | `-- R_BRACE: }
| | | |-- Comma: ,
| | | |-- initVal
| | | | |-- L_BRACE: {
| | | | |-- initVal
| | | | | `-- exp
| | | | | `-- addExp
| | | | | `-- mulExp
| | | | | `-- unaryExp
| | | | | `-- primaryExp
| | | | | `-- number
| | | | | `-- IntConst: 5
| | | | |-- Comma: ,
| | | | |-- initVal
| | | | | `-- exp
| | | | | `-- addExp
| | | | | `-- mulExp
| | | | | `-- unaryExp
| | | | | `-- primaryExp
| | | | | `-- number
| | | | | `-- IntConst: 6
| | | | `-- R_BRACE: }
| | | |-- Comma: ,
| | | |-- initVal
| | | | |-- L_BRACE: {
| | | | |-- initVal
| | | | | `-- exp
| | | | | `-- addExp
| | | | | `-- mulExp
| | | | | `-- unaryExp
| | | | | `-- primaryExp
| | | | | `-- number
| | | | | `-- IntConst: 7
| | | | |-- Comma: ,
| | | | |-- initVal
| | | | | `-- exp
| | | | | `-- addExp
| | | | | `-- mulExp
| | | | | `-- unaryExp
| | | | | `-- primaryExp
| | | | | `-- number
| | | | | `-- IntConst: 8
| | | | `-- R_BRACE: }
| | | `-- R_BRACE: }
| | `-- Semi: ;
| |-- blockItem
| | `-- stmt
| | |-- Return: return
| | |-- exp
| | | `-- addExp
| | | |-- addExp
| | | | |-- addExp
| | | | | |-- addExp
| | | | | | `-- mulExp
| | | | | | `-- unaryExp
| | | | | | `-- primaryExp
| | | | | | `-- lVal
| | | | | | |-- Ident: e
| | | | | | |-- L_BRACKET: [
| | | | | | |-- exp
| | | | | | | `-- addExp
| | | | | | | `-- mulExp
| | | | | | | `-- unaryExp
| | | | | | | `-- primaryExp
| | | | | | | `-- number
| | | | | | | `-- IntConst: 3
| | | | | | |-- R_BRACKET: ]
| | | | | | |-- L_BRACKET: [
| | | | | | |-- exp
| | | | | | | `-- addExp
| | | | | | | `-- mulExp
| | | | | | | `-- unaryExp
| | | | | | | `-- primaryExp
| | | | | | | `-- number
| | | | | | | `-- IntConst: 1
| | | | | | `-- R_BRACKET: ]
| | | | | |-- AddOp: +
| | | | | `-- mulExp
| | | | | `-- unaryExp
| | | | | `-- primaryExp
| | | | | `-- lVal
| | | | | |-- Ident: e
| | | | | |-- L_BRACKET: [
| | | | | |-- exp
| | | | | | `-- addExp
| | | | | | `-- mulExp
| | | | | | `-- unaryExp
| | | | | | `-- primaryExp
| | | | | | `-- number
| | | | | | `-- IntConst: 0
| | | | | |-- R_BRACKET: ]
| | | | | |-- L_BRACKET: [
| | | | | |-- exp
| | | | | | `-- addExp
| | | | | | `-- mulExp
| | | | | | `-- unaryExp
| | | | | | `-- primaryExp
| | | | | | `-- number
| | | | | | `-- IntConst: 0
| | | | | `-- R_BRACKET: ]
| | | | |-- AddOp: +
| | | | `-- mulExp
| | | | `-- unaryExp
| | | | `-- primaryExp
| | | | `-- lVal
| | | | |-- Ident: e
| | | | |-- L_BRACKET: [
| | | | |-- exp
| | | | | `-- addExp
| | | | | `-- mulExp
| | | | | `-- unaryExp
| | | | | `-- primaryExp
| | | | | `-- number
| | | | | `-- IntConst: 0
| | | | |-- R_BRACKET: ]
| | | | |-- L_BRACKET: [
| | | | |-- exp
| | | | | `-- addExp
| | | | | `-- mulExp
| | | | | `-- unaryExp
| | | | | `-- primaryExp
| | | | | `-- number
| | | | | `-- IntConst: 1
| | | | `-- R_BRACKET: ]
| | | |-- AddOp: +
| | | `-- mulExp
| | | `-- unaryExp
| | | `-- primaryExp
| | | `-- lVal
| | | |-- Ident: a
| | | |-- L_BRACKET: [
| | | |-- exp
| | | | `-- addExp
| | | | `-- mulExp
| | | | `-- unaryExp
| | | | `-- primaryExp
| | | | `-- number
| | | | `-- IntConst: 2
| | | |-- R_BRACKET: ]
| | | |-- L_BRACKET: [
| | | |-- exp
| | | | `-- addExp
| | | | `-- mulExp
| | | | `-- unaryExp
| | | | `-- primaryExp
| | | | `-- number
| | | | `-- IntConst: 0
| | | `-- R_BRACKET: ]
| | `-- Semi: ;
| `-- R_BRACE: }
`-- EOF: <EOF>