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.

68 lines
2.0 KiB

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>