forked from NUDT-compiler/nudt-compiler-cpp
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.
23097 lines
3.2 MiB
23097 lines
3.2 MiB
compUnit
|
|
|-- decl
|
|
| `-- constDecl
|
|
| |-- Const: const
|
|
| |-- bType
|
|
| | `-- Int: int
|
|
| |-- constDef
|
|
| | |-- Ident: SHIFT_TABLE
|
|
| | |-- L_BRACKET: [
|
|
| | |-- constExp
|
|
| | | `-- addExp
|
|
| | | `-- mulExp
|
|
| | | `-- unaryExp
|
|
| | | `-- primaryExp
|
|
| | | `-- number
|
|
| | | `-- IntConst: 16
|
|
| | |-- R_BRACKET: ]
|
|
| | |-- Assign: =
|
|
| | `-- constInitVal
|
|
| | |-- L_BRACE: {
|
|
| | |-- constInitVal
|
|
| | | `-- constExp
|
|
| | | `-- addExp
|
|
| | | `-- mulExp
|
|
| | | `-- unaryExp
|
|
| | | `-- primaryExp
|
|
| | | `-- number
|
|
| | | `-- IntConst: 1
|
|
| | |-- Comma: ,
|
|
| | |-- constInitVal
|
|
| | | `-- constExp
|
|
| | | `-- addExp
|
|
| | | `-- mulExp
|
|
| | | `-- unaryExp
|
|
| | | `-- primaryExp
|
|
| | | `-- number
|
|
| | | `-- IntConst: 2
|
|
| | |-- Comma: ,
|
|
| | |-- constInitVal
|
|
| | | `-- constExp
|
|
| | | `-- addExp
|
|
| | | `-- mulExp
|
|
| | | `-- unaryExp
|
|
| | | `-- primaryExp
|
|
| | | `-- number
|
|
| | | `-- IntConst: 4
|
|
| | |-- Comma: ,
|
|
| | |-- constInitVal
|
|
| | | `-- constExp
|
|
| | | `-- addExp
|
|
| | | `-- mulExp
|
|
| | | `-- unaryExp
|
|
| | | `-- primaryExp
|
|
| | | `-- number
|
|
| | | `-- IntConst: 8
|
|
| | |-- Comma: ,
|
|
| | |-- constInitVal
|
|
| | | `-- constExp
|
|
| | | `-- addExp
|
|
| | | `-- mulExp
|
|
| | | `-- unaryExp
|
|
| | | `-- primaryExp
|
|
| | | `-- number
|
|
| | | `-- IntConst: 16
|
|
| | |-- Comma: ,
|
|
| | |-- constInitVal
|
|
| | | `-- constExp
|
|
| | | `-- addExp
|
|
| | | `-- mulExp
|
|
| | | `-- unaryExp
|
|
| | | `-- primaryExp
|
|
| | | `-- number
|
|
| | | `-- IntConst: 32
|
|
| | |-- Comma: ,
|
|
| | |-- constInitVal
|
|
| | | `-- constExp
|
|
| | | `-- addExp
|
|
| | | `-- mulExp
|
|
| | | `-- unaryExp
|
|
| | | `-- primaryExp
|
|
| | | `-- number
|
|
| | | `-- IntConst: 64
|
|
| | |-- Comma: ,
|
|
| | |-- constInitVal
|
|
| | | `-- constExp
|
|
| | | `-- addExp
|
|
| | | `-- mulExp
|
|
| | | `-- unaryExp
|
|
| | | `-- primaryExp
|
|
| | | `-- number
|
|
| | | `-- IntConst: 128
|
|
| | |-- Comma: ,
|
|
| | |-- constInitVal
|
|
| | | `-- constExp
|
|
| | | `-- addExp
|
|
| | | `-- mulExp
|
|
| | | `-- unaryExp
|
|
| | | `-- primaryExp
|
|
| | | `-- number
|
|
| | | `-- IntConst: 256
|
|
| | |-- Comma: ,
|
|
| | |-- constInitVal
|
|
| | | `-- constExp
|
|
| | | `-- addExp
|
|
| | | `-- mulExp
|
|
| | | `-- unaryExp
|
|
| | | `-- primaryExp
|
|
| | | `-- number
|
|
| | | `-- IntConst: 512
|
|
| | |-- Comma: ,
|
|
| | |-- constInitVal
|
|
| | | `-- constExp
|
|
| | | `-- addExp
|
|
| | | `-- mulExp
|
|
| | | `-- unaryExp
|
|
| | | `-- primaryExp
|
|
| | | `-- number
|
|
| | | `-- IntConst: 1024
|
|
| | |-- Comma: ,
|
|
| | |-- constInitVal
|
|
| | | `-- constExp
|
|
| | | `-- addExp
|
|
| | | `-- mulExp
|
|
| | | `-- unaryExp
|
|
| | | `-- primaryExp
|
|
| | | `-- number
|
|
| | | `-- IntConst: 2048
|
|
| | |-- Comma: ,
|
|
| | |-- constInitVal
|
|
| | | `-- constExp
|
|
| | | `-- addExp
|
|
| | | `-- mulExp
|
|
| | | `-- unaryExp
|
|
| | | `-- primaryExp
|
|
| | | `-- number
|
|
| | | `-- IntConst: 4096
|
|
| | |-- Comma: ,
|
|
| | |-- constInitVal
|
|
| | | `-- constExp
|
|
| | | `-- addExp
|
|
| | | `-- mulExp
|
|
| | | `-- unaryExp
|
|
| | | `-- primaryExp
|
|
| | | `-- number
|
|
| | | `-- IntConst: 8192
|
|
| | |-- Comma: ,
|
|
| | |-- constInitVal
|
|
| | | `-- constExp
|
|
| | | `-- addExp
|
|
| | | `-- mulExp
|
|
| | | `-- unaryExp
|
|
| | | `-- primaryExp
|
|
| | | `-- number
|
|
| | | `-- IntConst: 16384
|
|
| | |-- Comma: ,
|
|
| | |-- constInitVal
|
|
| | | `-- constExp
|
|
| | | `-- addExp
|
|
| | | `-- mulExp
|
|
| | | `-- unaryExp
|
|
| | | `-- primaryExp
|
|
| | | `-- number
|
|
| | | `-- IntConst: 32768
|
|
| | `-- R_BRACE: }
|
|
| `-- Semi: ;
|
|
|-- funcDef
|
|
| |-- funcType
|
|
| | `-- Int: int
|
|
| |-- Ident: long_func
|
|
| |-- L_PAREN: (
|
|
| |-- R_PAREN: )
|
|
| `-- block
|
|
| |-- L_BRACE: {
|
|
| |-- blockItem
|
|
| | `-- decl
|
|
| | `-- varDecl
|
|
| | |-- bType
|
|
| | | `-- Int: int
|
|
| | |-- varDef
|
|
| | | `-- Ident: ans
|
|
| | |-- Comma: ,
|
|
| | |-- varDef
|
|
| | | `-- Ident: i
|
|
| | |-- Comma: ,
|
|
| | |-- varDef
|
|
| | | `-- Ident: x
|
|
| | |-- Comma: ,
|
|
| | |-- varDef
|
|
| | | `-- Ident: y
|
|
| | |-- Comma: ,
|
|
| | |-- varDef
|
|
| | | `-- Ident: cur
|
|
| | `-- Semi: ;
|
|
| |-- blockItem
|
|
| | `-- stmt
|
|
| | `-- block
|
|
| | |-- L_BRACE: {
|
|
| | |-- blockItem
|
|
| | | `-- decl
|
|
| | | `-- varDecl
|
|
| | | |-- bType
|
|
| | | | `-- Int: int
|
|
| | | |-- varDef
|
|
| | | | |-- Ident: pl
|
|
| | | | |-- Assign: =
|
|
| | | | `-- initVal
|
|
| | | | `-- exp
|
|
| | | | `-- addExp
|
|
| | | | `-- mulExp
|
|
| | | | `-- unaryExp
|
|
| | | | `-- primaryExp
|
|
| | | | `-- number
|
|
| | | | `-- IntConst: 2
|
|
| | | |-- Comma: ,
|
|
| | | |-- varDef
|
|
| | | | |-- Ident: pr
|
|
| | | | |-- Assign: =
|
|
| | | | `-- initVal
|
|
| | | | `-- exp
|
|
| | | | `-- addExp
|
|
| | | | `-- mulExp
|
|
| | | | `-- unaryExp
|
|
| | | | `-- primaryExp
|
|
| | | | `-- number
|
|
| | | | `-- IntConst: 0
|
|
| | | |-- Comma: ,
|
|
| | | |-- varDef
|
|
| | | | |-- Ident: pres
|
|
| | | | |-- Assign: =
|
|
| | | | `-- initVal
|
|
| | | | `-- exp
|
|
| | | | `-- addExp
|
|
| | | | `-- mulExp
|
|
| | | | `-- unaryExp
|
|
| | | | `-- primaryExp
|
|
| | | | `-- number
|
|
| | | | `-- IntConst: 1
|
|
| | | `-- Semi: ;
|
|
| | |-- blockItem
|
|
| | | `-- stmt
|
|
| | | |-- While: while
|
|
| | | |-- L_PAREN: (
|
|
| | | |-- cond
|
|
| | | | `-- lOrExp
|
|
| | | | `-- lAndExp
|
|
| | | | `-- eqExp
|
|
| | | | `-- relExp
|
|
| | | | |-- relExp
|
|
| | | | | `-- addExp
|
|
| | | | | `-- mulExp
|
|
| | | | | `-- unaryExp
|
|
| | | | | `-- primaryExp
|
|
| | | | | `-- lVal
|
|
| | | | | `-- Ident: pr
|
|
| | | | |-- GtOp: >
|
|
| | | | `-- addExp
|
|
| | | | `-- mulExp
|
|
| | | | `-- unaryExp
|
|
| | | | `-- primaryExp
|
|
| | | | `-- number
|
|
| | | | `-- IntConst: 0
|
|
| | | |-- R_PAREN: )
|
|
| | | `-- stmt
|
|
| | | `-- block
|
|
| | | |-- L_BRACE: {
|
|
| | | |-- blockItem
|
|
| | | | `-- stmt
|
|
| | | | |-- lVal
|
|
| | | | | `-- Ident: ans
|
|
| | | | |-- Assign: =
|
|
| | | | |-- 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
|
|
| | | | |-- lVal
|
|
| | | | | `-- Ident: x
|
|
| | | | |-- Assign: =
|
|
| | | | |-- exp
|
|
| | | | | `-- addExp
|
|
| | | | | `-- mulExp
|
|
| | | | | `-- unaryExp
|
|
| | | | | `-- primaryExp
|
|
| | | | | `-- lVal
|
|
| | | | | `-- Ident: pr
|
|
| | | | `-- Semi: ;
|
|
| | | |-- blockItem
|
|
| | | | `-- stmt
|
|
| | | | |-- lVal
|
|
| | | | | `-- Ident: y
|
|
| | | | |-- Assign: =
|
|
| | | | |-- exp
|
|
| | | | | `-- addExp
|
|
| | | | | `-- mulExp
|
|
| | | | | `-- unaryExp
|
|
| | | | | `-- primaryExp
|
|
| | | | | `-- number
|
|
| | | | | `-- IntConst: 1
|
|
| | | | `-- Semi: ;
|
|
| | | |-- blockItem
|
|
| | | | `-- stmt
|
|
| | | | |-- While: while
|
|
| | | | |-- L_PAREN: (
|
|
| | | | |-- cond
|
|
| | | | | `-- lOrExp
|
|
| | | | | `-- lAndExp
|
|
| | | | | `-- eqExp
|
|
| | | | | `-- relExp
|
|
| | | | | |-- relExp
|
|
| | | | | | `-- addExp
|
|
| | | | | | `-- mulExp
|
|
| | | | | | `-- unaryExp
|
|
| | | | | | `-- primaryExp
|
|
| | | | | | `-- lVal
|
|
| | | | | | `-- Ident: i
|
|
| | | | | |-- LtOp: <
|
|
| | | | | `-- addExp
|
|
| | | | | `-- mulExp
|
|
| | | | | `-- unaryExp
|
|
| | | | | `-- primaryExp
|
|
| | | | | `-- number
|
|
| | | | | `-- IntConst: 16
|
|
| | | | |-- R_PAREN: )
|
|
| | | | `-- stmt
|
|
| | | | `-- block
|
|
| | | | |-- L_BRACE: {
|
|
| | | | |-- blockItem
|
|
| | | | | `-- stmt
|
|
| | | | | |-- If: if
|
|
| | | | | |-- L_PAREN: (
|
|
| | | | | |-- cond
|
|
| | | | | | `-- lOrExp
|
|
| | | | | | `-- lAndExp
|
|
| | | | | | |-- lAndExp
|
|
| | | | | | | `-- eqExp
|
|
| | | | | | | `-- relExp
|
|
| | | | | | | `-- addExp
|
|
| | | | | | | `-- mulExp
|
|
| | | | | | | |-- mulExp
|
|
| | | | | | | | `-- unaryExp
|
|
| | | | | | | | `-- primaryExp
|
|
| | | | | | | | `-- lVal
|
|
| | | | | | | | `-- Ident: x
|
|
| | | | | | | |-- ModOp: %
|
|
| | | | | | | `-- unaryExp
|
|
| | | | | | | `-- primaryExp
|
|
| | | | | | | `-- number
|
|
| | | | | | | `-- IntConst: 2
|
|
| | | | | | |-- AndOp: &&
|
|
| | | | | | `-- eqExp
|
|
| | | | | | `-- relExp
|
|
| | | | | | `-- addExp
|
|
| | | | | | `-- mulExp
|
|
| | | | | | |-- mulExp
|
|
| | | | | | | `-- unaryExp
|
|
| | | | | | | `-- primaryExp
|
|
| | | | | | | `-- lVal
|
|
| | | | | | | `-- Ident: y
|
|
| | | | | | |-- ModOp: %
|
|
| | | | | | `-- unaryExp
|
|
| | | | | | `-- primaryExp
|
|
| | | | | | `-- number
|
|
| | | | | | `-- IntConst: 2
|
|
| | | | | |-- R_PAREN: )
|
|
| | | | | `-- stmt
|
|
| | | | | `-- block
|
|
| | | | | |-- L_BRACE: {
|
|
| | | | | |-- blockItem
|
|
| | | | | | `-- stmt
|
|
| | | | | | |-- lVal
|
|
| | | | | | | `-- Ident: ans
|
|
| | | | | | |-- Assign: =
|
|
| | | | | | |-- exp
|
|
| | | | | | | `-- addExp
|
|
| | | | | | | |-- addExp
|
|
| | | | | | | | `-- mulExp
|
|
| | | | | | | | `-- unaryExp
|
|
| | | | | | | | `-- primaryExp
|
|
| | | | | | | | `-- lVal
|
|
| | | | | | | | `-- Ident: ans
|
|
| | | | | | | |-- AddOp: +
|
|
| | | | | | | `-- mulExp
|
|
| | | | | | | |-- mulExp
|
|
| | | | | | | | `-- unaryExp
|
|
| | | | | | | | `-- primaryExp
|
|
| | | | | | | | `-- number
|
|
| | | | | | | | `-- IntConst: 1
|
|
| | | | | | | |-- MulOp: *
|
|
| | | | | | | `-- unaryExp
|
|
| | | | | | | `-- primaryExp
|
|
| | | | | | | `-- lVal
|
|
| | | | | | | |-- Ident: SHIFT_TABLE
|
|
| | | | | | | |-- L_BRACKET: [
|
|
| | | | | | | |-- exp
|
|
| | | | | | | | `-- addExp
|
|
| | | | | | | | `-- mulExp
|
|
| | | | | | | | `-- unaryExp
|
|
| | | | | | | | `-- primaryExp
|
|
| | | | | | | | `-- lVal
|
|
| | | | | | | | `-- Ident: i
|
|
| | | | | | | `-- R_BRACKET: ]
|
|
| | | | | | `-- Semi: ;
|
|
| | | | | `-- R_BRACE: }
|
|
| | | | |-- blockItem
|
|
| | | | | `-- stmt
|
|
| | | | | |-- lVal
|
|
| | | | | | `-- Ident: x
|
|
| | | | | |-- Assign: =
|
|
| | | | | |-- exp
|
|
| | | | | | `-- addExp
|
|
| | | | | | `-- mulExp
|
|
| | | | | | |-- mulExp
|
|
| | | | | | | `-- unaryExp
|
|
| | | | | | | `-- primaryExp
|
|
| | | | | | | `-- lVal
|
|
| | | | | | | `-- Ident: x
|
|
| | | | | | |-- DivOp: /
|
|
| | | | | | `-- unaryExp
|
|
| | | | | | `-- primaryExp
|
|
| | | | | | `-- number
|
|
| | | | | | `-- IntConst: 2
|
|
| | | | | `-- Semi: ;
|
|
| | | | |-- blockItem
|
|
| | | | | `-- stmt
|
|
| | | | | |-- lVal
|
|
| | | | | | `-- Ident: y
|
|
| | | | | |-- Assign: =
|
|
| | | | | |-- exp
|
|
| | | | | | `-- addExp
|
|
| | | | | | `-- mulExp
|
|
| | | | | | |-- mulExp
|
|
| | | | | | | `-- unaryExp
|
|
| | | | | | | `-- primaryExp
|
|
| | | | | | | `-- lVal
|
|
| | | | | | | `-- Ident: y
|
|
| | | | | | |-- DivOp: /
|
|
| | | | | | `-- unaryExp
|
|
| | | | | | `-- primaryExp
|
|
| | | | | | `-- number
|
|
| | | | | | `-- IntConst: 2
|
|
| | | | | `-- Semi: ;
|
|
| | | | |-- blockItem
|
|
| | | | | `-- stmt
|
|
| | | | | |-- lVal
|
|
| | | | | | `-- Ident: i
|
|
| | | | | |-- Assign: =
|
|
| | | | | |-- exp
|
|
| | | | | | `-- addExp
|
|
| | | | | | |-- addExp
|
|
| | | | | | | `-- mulExp
|
|
| | | | | | | `-- unaryExp
|
|
| | | | | | | `-- primaryExp
|
|
| | | | | | | `-- lVal
|
|
| | | | | | | `-- Ident: i
|
|
| | | | | | |-- AddOp: +
|
|
| | | | | | `-- mulExp
|
|
| | | | | | `-- unaryExp
|
|
| | | | | | `-- primaryExp
|
|
| | | | | | `-- number
|
|
| | | | | | `-- IntConst: 1
|
|
| | | | | `-- Semi: ;
|
|
| | | | `-- R_BRACE: }
|
|
| | | |-- blockItem
|
|
| | | | `-- stmt
|
|
| | | | |-- If: if
|
|
| | | | |-- L_PAREN: (
|
|
| | | | |-- cond
|
|
| | | | | `-- lOrExp
|
|
| | | | | `-- lAndExp
|
|
| | | | | `-- eqExp
|
|
| | | | | `-- relExp
|
|
| | | | | `-- addExp
|
|
| | | | | `-- mulExp
|
|
| | | | | `-- unaryExp
|
|
| | | | | `-- primaryExp
|
|
| | | | | `-- lVal
|
|
| | | | | `-- Ident: ans
|
|
| | | | |-- R_PAREN: )
|
|
| | | | `-- stmt
|
|
| | | | `-- block
|
|
| | | | |-- L_BRACE: {
|
|
| | | | |-- blockItem
|
|
| | | | | `-- stmt
|
|
| | | | | `-- block
|
|
| | | | | |-- L_BRACE: {
|
|
| | | | | |-- blockItem
|
|
| | | | | | `-- decl
|
|
| | | | | | `-- varDecl
|
|
| | | | | | |-- bType
|
|
| | | | | | | `-- Int: int
|
|
| | | | | | |-- varDef
|
|
| | | | | | | |-- Ident: ml
|
|
| | | | | | | |-- Assign: =
|
|
| | | | | | | `-- initVal
|
|
| | | | | | | `-- exp
|
|
| | | | | | | `-- addExp
|
|
| | | | | | | `-- mulExp
|
|
| | | | | | | `-- unaryExp
|
|
| | | | | | | `-- primaryExp
|
|
| | | | | | | `-- lVal
|
|
| | | | | | | `-- Ident: pres
|
|
| | | | | | |-- Comma: ,
|
|
| | | | | | |-- varDef
|
|
| | | | | | | |-- Ident: mr
|
|
| | | | | | | |-- Assign: =
|
|
| | | | | | | `-- initVal
|
|
| | | | | | | `-- exp
|
|
| | | | | | | `-- addExp
|
|
| | | | | | | `-- mulExp
|
|
| | | | | | | `-- unaryExp
|
|
| | | | | | | `-- primaryExp
|
|
| | | | | | | `-- lVal
|
|
| | | | | | | `-- Ident: pl
|
|
| | | | | | |-- Comma: ,
|
|
| | | | | | |-- varDef
|
|
| | | | | | | |-- Ident: mres
|
|
| | | | | | | |-- Assign: =
|
|
| | | | | | | `-- initVal
|
|
| | | | | | | `-- exp
|
|
| | | | | | | `-- addExp
|
|
| | | | | | | `-- mulExp
|
|
| | | | | | | `-- unaryExp
|
|
| | | | | | | `-- primaryExp
|
|
| | | | | | | `-- number
|
|
| | | | | | | `-- IntConst: 0
|
|
| | | | | | `-- Semi: ;
|
|
| | | | | |-- blockItem
|
|
| | | | | | `-- stmt
|
|
| | | | | | |-- While: while
|
|
| | | | | | |-- L_PAREN: (
|
|
| | | | | | |-- cond
|
|
| | | | | | | `-- lOrExp
|
|
| | | | | | | `-- lAndExp
|
|
| | | | | | | `-- eqExp
|
|
| | | | | | | `-- relExp
|
|
| | | | | | | `-- addExp
|
|
| | | | | | | `-- mulExp
|
|
| | | | | | | `-- unaryExp
|
|
| | | | | | | `-- primaryExp
|
|
| | | | | | | `-- lVal
|
|
| | | | | | | `-- Ident: mr
|
|
| | | | | | |-- R_PAREN: )
|
|
| | | | | | `-- stmt
|
|
| | | | | | `-- block
|
|
| | | | | | |-- L_BRACE: {
|
|
| | | | | | |-- blockItem
|
|
| | | | | | | `-- stmt
|
|
| | | | | | | |-- lVal
|
|
| | | | | | | | `-- Ident: ans
|
|
| | | | | | | |-- Assign: =
|
|
| | | | | | | |-- 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
|
|
| | | | | | | |-- lVal
|
|
| | | | | | | | `-- Ident: x
|
|
| | | | | | | |-- Assign: =
|
|
| | | | | | | |-- exp
|
|
| | | | | | | | `-- addExp
|
|
| | | | | | | | `-- mulExp
|
|
| | | | | | | | `-- unaryExp
|
|
| | | | | | | | `-- primaryExp
|
|
| | | | | | | | `-- lVal
|
|
| | | | | | | | `-- Ident: mr
|
|
| | | | | | | `-- Semi: ;
|
|
| | | | | | |-- blockItem
|
|
| | | | | | | `-- stmt
|
|
| | | | | | | |-- lVal
|
|
| | | | | | | | `-- Ident: y
|
|
| | | | | | | |-- Assign: =
|
|
| | | | | | | |-- exp
|
|
| | | | | | | | `-- addExp
|
|
| | | | | | | | `-- mulExp
|
|
| | | | | | | | `-- unaryExp
|
|
| | | | | | | | `-- primaryExp
|
|
| | | | | | | | `-- number
|
|
| | | | | | | | `-- IntConst: 1
|
|
| | | | | | | `-- Semi: ;
|
|
| | | | | | |-- blockItem
|
|
| | | | | | | `-- stmt
|
|
| | | | | | | |-- While: while
|
|
| | | | | | | |-- L_PAREN: (
|
|
| | | | | | | |-- cond
|
|
| | | | | | | | `-- lOrExp
|
|
| | | | | | | | `-- lAndExp
|
|
| | | | | | | | `-- eqExp
|
|
| | | | | | | | `-- relExp
|
|
| | | | | | | | |-- relExp
|
|
| | | | | | | | | `-- addExp
|
|
| | | | | | | | | `-- mulExp
|
|
| | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | `-- lVal
|
|
| | | | | | | | | `-- Ident: i
|
|
| | | | | | | | |-- LtOp: <
|
|
| | | | | | | | `-- addExp
|
|
| | | | | | | | `-- mulExp
|
|
| | | | | | | | `-- unaryExp
|
|
| | | | | | | | `-- primaryExp
|
|
| | | | | | | | `-- number
|
|
| | | | | | | | `-- IntConst: 16
|
|
| | | | | | | |-- R_PAREN: )
|
|
| | | | | | | `-- stmt
|
|
| | | | | | | `-- block
|
|
| | | | | | | |-- L_BRACE: {
|
|
| | | | | | | |-- blockItem
|
|
| | | | | | | | `-- stmt
|
|
| | | | | | | | |-- If: if
|
|
| | | | | | | | |-- L_PAREN: (
|
|
| | | | | | | | |-- cond
|
|
| | | | | | | | | `-- lOrExp
|
|
| | | | | | | | | `-- lAndExp
|
|
| | | | | | | | | |-- lAndExp
|
|
| | | | | | | | | | `-- eqExp
|
|
| | | | | | | | | | `-- relExp
|
|
| | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | `-- Ident: x
|
|
| | | | | | | | | | |-- ModOp: %
|
|
| | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | `-- number
|
|
| | | | | | | | | | `-- IntConst: 2
|
|
| | | | | | | | | |-- AndOp: &&
|
|
| | | | | | | | | `-- eqExp
|
|
| | | | | | | | | `-- relExp
|
|
| | | | | | | | | `-- addExp
|
|
| | | | | | | | | `-- mulExp
|
|
| | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | `-- Ident: y
|
|
| | | | | | | | | |-- ModOp: %
|
|
| | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | `-- number
|
|
| | | | | | | | | `-- IntConst: 2
|
|
| | | | | | | | |-- R_PAREN: )
|
|
| | | | | | | | `-- stmt
|
|
| | | | | | | | `-- block
|
|
| | | | | | | | |-- L_BRACE: {
|
|
| | | | | | | | |-- blockItem
|
|
| | | | | | | | | `-- stmt
|
|
| | | | | | | | | |-- lVal
|
|
| | | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | |-- exp
|
|
| | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | |-- addExp
|
|
| | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | | | |-- AddOp: +
|
|
| | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | `-- IntConst: 1
|
|
| | | | | | | | | | |-- MulOp: *
|
|
| | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | |-- Ident: SHIFT_TABLE
|
|
| | | | | | | | | | |-- L_BRACKET: [
|
|
| | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | `-- Ident: i
|
|
| | | | | | | | | | `-- R_BRACKET: ]
|
|
| | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | `-- R_BRACE: }
|
|
| | | | | | | |-- blockItem
|
|
| | | | | | | | `-- stmt
|
|
| | | | | | | | |-- lVal
|
|
| | | | | | | | | `-- Ident: x
|
|
| | | | | | | | |-- Assign: =
|
|
| | | | | | | | |-- exp
|
|
| | | | | | | | | `-- addExp
|
|
| | | | | | | | | `-- mulExp
|
|
| | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | `-- Ident: x
|
|
| | | | | | | | | |-- DivOp: /
|
|
| | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | `-- number
|
|
| | | | | | | | | `-- IntConst: 2
|
|
| | | | | | | | `-- Semi: ;
|
|
| | | | | | | |-- blockItem
|
|
| | | | | | | | `-- stmt
|
|
| | | | | | | | |-- lVal
|
|
| | | | | | | | | `-- Ident: y
|
|
| | | | | | | | |-- Assign: =
|
|
| | | | | | | | |-- exp
|
|
| | | | | | | | | `-- addExp
|
|
| | | | | | | | | `-- mulExp
|
|
| | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | `-- Ident: y
|
|
| | | | | | | | | |-- DivOp: /
|
|
| | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | `-- number
|
|
| | | | | | | | | `-- IntConst: 2
|
|
| | | | | | | | `-- Semi: ;
|
|
| | | | | | | |-- blockItem
|
|
| | | | | | | | `-- stmt
|
|
| | | | | | | | |-- lVal
|
|
| | | | | | | | | `-- Ident: i
|
|
| | | | | | | | |-- Assign: =
|
|
| | | | | | | | |-- exp
|
|
| | | | | | | | | `-- addExp
|
|
| | | | | | | | | |-- addExp
|
|
| | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | `-- Ident: i
|
|
| | | | | | | | | |-- AddOp: +
|
|
| | | | | | | | | `-- mulExp
|
|
| | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | `-- number
|
|
| | | | | | | | | `-- IntConst: 1
|
|
| | | | | | | | `-- Semi: ;
|
|
| | | | | | | `-- R_BRACE: }
|
|
| | | | | | |-- blockItem
|
|
| | | | | | | `-- stmt
|
|
| | | | | | | |-- If: if
|
|
| | | | | | | |-- L_PAREN: (
|
|
| | | | | | | |-- cond
|
|
| | | | | | | | `-- lOrExp
|
|
| | | | | | | | `-- lAndExp
|
|
| | | | | | | | `-- eqExp
|
|
| | | | | | | | `-- relExp
|
|
| | | | | | | | `-- addExp
|
|
| | | | | | | | `-- mulExp
|
|
| | | | | | | | `-- unaryExp
|
|
| | | | | | | | `-- primaryExp
|
|
| | | | | | | | `-- lVal
|
|
| | | | | | | | `-- Ident: ans
|
|
| | | | | | | |-- R_PAREN: )
|
|
| | | | | | | `-- stmt
|
|
| | | | | | | `-- block
|
|
| | | | | | | |-- L_BRACE: {
|
|
| | | | | | | |-- blockItem
|
|
| | | | | | | | `-- stmt
|
|
| | | | | | | | `-- block
|
|
| | | | | | | | |-- L_BRACE: {
|
|
| | | | | | | | |-- blockItem
|
|
| | | | | | | | | `-- decl
|
|
| | | | | | | | | `-- varDecl
|
|
| | | | | | | | | |-- bType
|
|
| | | | | | | | | | `-- Int: int
|
|
| | | | | | | | | |-- varDef
|
|
| | | | | | | | | | |-- Ident: al
|
|
| | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | `-- initVal
|
|
| | | | | | | | | | `-- exp
|
|
| | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | `-- Ident: mres
|
|
| | | | | | | | | |-- Comma: ,
|
|
| | | | | | | | | |-- varDef
|
|
| | | | | | | | | | |-- Ident: c
|
|
| | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | `-- initVal
|
|
| | | | | | | | | | `-- exp
|
|
| | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | `-- Ident: ml
|
|
| | | | | | | | | |-- Comma: ,
|
|
| | | | | | | | | |-- varDef
|
|
| | | | | | | | | | `-- Ident: sum
|
|
| | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | |-- blockItem
|
|
| | | | | | | | | `-- stmt
|
|
| | | | | | | | | |-- While: while
|
|
| | | | | | | | | |-- L_PAREN: (
|
|
| | | | | | | | | |-- cond
|
|
| | | | | | | | | | `-- lOrExp
|
|
| | | | | | | | | | `-- lAndExp
|
|
| | | | | | | | | | `-- eqExp
|
|
| | | | | | | | | | `-- relExp
|
|
| | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | `-- Ident: c
|
|
| | | | | | | | | |-- R_PAREN: )
|
|
| | | | | | | | | `-- stmt
|
|
| | | | | | | | | `-- block
|
|
| | | | | | | | | |-- L_BRACE: {
|
|
| | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | |-- 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
|
|
| | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | `-- Ident: x
|
|
| | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | `-- Ident: al
|
|
| | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | `-- Ident: y
|
|
| | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | `-- Ident: c
|
|
| | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | |-- While: while
|
|
| | | | | | | | | | |-- L_PAREN: (
|
|
| | | | | | | | | | |-- cond
|
|
| | | | | | | | | | | `-- lOrExp
|
|
| | | | | | | | | | | `-- lAndExp
|
|
| | | | | | | | | | | `-- eqExp
|
|
| | | | | | | | | | | `-- relExp
|
|
| | | | | | | | | | | |-- relExp
|
|
| | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | `-- Ident: i
|
|
| | | | | | | | | | | |-- LtOp: <
|
|
| | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | `-- IntConst: 16
|
|
| | | | | | | | | | |-- R_PAREN: )
|
|
| | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | `-- block
|
|
| | | | | | | | | | |-- L_BRACE: {
|
|
| | | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | |-- If: if
|
|
| | | | | | | | | | | |-- L_PAREN: (
|
|
| | | | | | | | | | | |-- cond
|
|
| | | | | | | | | | | | `-- lOrExp
|
|
| | | | | | | | | | | | `-- lAndExp
|
|
| | | | | | | | | | | | `-- eqExp
|
|
| | | | | | | | | | | | `-- relExp
|
|
| | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | `-- Ident: x
|
|
| | | | | | | | | | | | |-- ModOp: %
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | `-- IntConst: 2
|
|
| | | | | | | | | | | |-- R_PAREN: )
|
|
| | | | | | | | | | | |-- stmt
|
|
| | | | | | | | | | | | `-- block
|
|
| | | | | | | | | | | | |-- L_BRACE: {
|
|
| | | | | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | | | |-- If: if
|
|
| | | | | | | | | | | | | |-- L_PAREN: (
|
|
| | | | | | | | | | | | | |-- cond
|
|
| | | | | | | | | | | | | | `-- lOrExp
|
|
| | | | | | | | | | | | | | `-- lAndExp
|
|
| | | | | | | | | | | | | | `-- eqExp
|
|
| | | | | | | | | | | | | | |-- eqExp
|
|
| | | | | | | | | | | | | | | `-- relExp
|
|
| | | | | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | | | | `-- Ident: y
|
|
| | | | | | | | | | | | | | | |-- ModOp: %
|
|
| | | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | | | | `-- IntConst: 2
|
|
| | | | | | | | | | | | | | |-- EqOp: ==
|
|
| | | | | | | | | | | | | | `-- relExp
|
|
| | | | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | | | `-- IntConst: 0
|
|
| | | | | | | | | | | | | |-- R_PAREN: )
|
|
| | | | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | | | `-- block
|
|
| | | | | | | | | | | | | |-- L_BRACE: {
|
|
| | | | | | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | | | | |-- addExp
|
|
| | | | | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | | | | | | | | |-- AddOp: +
|
|
| | | | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | | | | | `-- IntConst: 1
|
|
| | | | | | | | | | | | | | | |-- MulOp: *
|
|
| | | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | | | |-- Ident: SHIFT_TABLE
|
|
| | | | | | | | | | | | | | | |-- L_BRACKET: [
|
|
| | | | | | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | | | | `-- Ident: i
|
|
| | | | | | | | | | | | | | | `-- R_BRACKET: ]
|
|
| | | | | | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | | | | | `-- R_BRACE: }
|
|
| | | | | | | | | | | | `-- R_BRACE: }
|
|
| | | | | | | | | | | |-- Else: else
|
|
| | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | |-- If: if
|
|
| | | | | | | | | | | |-- L_PAREN: (
|
|
| | | | | | | | | | | |-- cond
|
|
| | | | | | | | | | | | `-- lOrExp
|
|
| | | | | | | | | | | | `-- lAndExp
|
|
| | | | | | | | | | | | `-- eqExp
|
|
| | | | | | | | | | | | `-- relExp
|
|
| | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | `-- Ident: y
|
|
| | | | | | | | | | | | |-- ModOp: %
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | `-- IntConst: 2
|
|
| | | | | | | | | | | |-- R_PAREN: )
|
|
| | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | `-- block
|
|
| | | | | | | | | | | |-- L_BRACE: {
|
|
| | | | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | | |-- addExp
|
|
| | | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | | | | | | |-- AddOp: +
|
|
| | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | | | `-- IntConst: 1
|
|
| | | | | | | | | | | | | |-- MulOp: *
|
|
| | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | |-- Ident: SHIFT_TABLE
|
|
| | | | | | | | | | | | | |-- L_BRACKET: [
|
|
| | | | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | | `-- Ident: i
|
|
| | | | | | | | | | | | | `-- R_BRACKET: ]
|
|
| | | | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | | | `-- R_BRACE: }
|
|
| | | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | | `-- Ident: x
|
|
| | | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | `-- Ident: x
|
|
| | | | | | | | | | | | |-- DivOp: /
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | `-- IntConst: 2
|
|
| | | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | | `-- Ident: y
|
|
| | | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | `-- Ident: y
|
|
| | | | | | | | | | | | |-- DivOp: /
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | `-- IntConst: 2
|
|
| | | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | | `-- Ident: i
|
|
| | | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | |-- addExp
|
|
| | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | `-- Ident: i
|
|
| | | | | | | | | | | | |-- AddOp: +
|
|
| | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | `-- IntConst: 1
|
|
| | | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | | `-- R_BRACE: }
|
|
| | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | `-- Ident: sum
|
|
| | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | |-- 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
|
|
| | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | `-- Ident: x
|
|
| | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | `-- Ident: al
|
|
| | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | `-- Ident: y
|
|
| | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | `-- Ident: c
|
|
| | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | |-- While: while
|
|
| | | | | | | | | | |-- L_PAREN: (
|
|
| | | | | | | | | | |-- cond
|
|
| | | | | | | | | | | `-- lOrExp
|
|
| | | | | | | | | | | `-- lAndExp
|
|
| | | | | | | | | | | `-- eqExp
|
|
| | | | | | | | | | | `-- relExp
|
|
| | | | | | | | | | | |-- relExp
|
|
| | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | `-- Ident: i
|
|
| | | | | | | | | | | |-- LtOp: <
|
|
| | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | `-- IntConst: 16
|
|
| | | | | | | | | | |-- R_PAREN: )
|
|
| | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | `-- block
|
|
| | | | | | | | | | |-- L_BRACE: {
|
|
| | | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | |-- If: if
|
|
| | | | | | | | | | | |-- L_PAREN: (
|
|
| | | | | | | | | | | |-- cond
|
|
| | | | | | | | | | | | `-- lOrExp
|
|
| | | | | | | | | | | | `-- lAndExp
|
|
| | | | | | | | | | | | |-- lAndExp
|
|
| | | | | | | | | | | | | `-- eqExp
|
|
| | | | | | | | | | | | | `-- relExp
|
|
| | | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | | `-- Ident: x
|
|
| | | | | | | | | | | | | |-- ModOp: %
|
|
| | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | | `-- IntConst: 2
|
|
| | | | | | | | | | | | |-- AndOp: &&
|
|
| | | | | | | | | | | | `-- eqExp
|
|
| | | | | | | | | | | | `-- relExp
|
|
| | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | `-- Ident: y
|
|
| | | | | | | | | | | | |-- ModOp: %
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | `-- IntConst: 2
|
|
| | | | | | | | | | | |-- R_PAREN: )
|
|
| | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | `-- block
|
|
| | | | | | | | | | | |-- L_BRACE: {
|
|
| | | | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | | |-- addExp
|
|
| | | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | | | | | | |-- AddOp: +
|
|
| | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | | | `-- IntConst: 1
|
|
| | | | | | | | | | | | | |-- MulOp: *
|
|
| | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | |-- Ident: SHIFT_TABLE
|
|
| | | | | | | | | | | | | |-- L_BRACKET: [
|
|
| | | | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | | `-- Ident: i
|
|
| | | | | | | | | | | | | `-- R_BRACKET: ]
|
|
| | | | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | | | `-- R_BRACE: }
|
|
| | | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | | `-- Ident: x
|
|
| | | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | `-- Ident: x
|
|
| | | | | | | | | | | | |-- DivOp: /
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | `-- IntConst: 2
|
|
| | | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | | `-- Ident: y
|
|
| | | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | `-- Ident: y
|
|
| | | | | | | | | | | | |-- DivOp: /
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | `-- IntConst: 2
|
|
| | | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | | `-- Ident: i
|
|
| | | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | |-- addExp
|
|
| | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | `-- Ident: i
|
|
| | | | | | | | | | | | |-- AddOp: +
|
|
| | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | `-- IntConst: 1
|
|
| | | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | | `-- R_BRACE: }
|
|
| | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | `-- Ident: c
|
|
| | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | |-- If: if
|
|
| | | | | | | | | | |-- L_PAREN: (
|
|
| | | | | | | | | | |-- cond
|
|
| | | | | | | | | | | `-- lOrExp
|
|
| | | | | | | | | | | `-- lAndExp
|
|
| | | | | | | | | | | `-- eqExp
|
|
| | | | | | | | | | | `-- relExp
|
|
| | | | | | | | | | | |-- relExp
|
|
| | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | |-- L_PAREN: (
|
|
| | | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | | `-- IntConst: 1
|
|
| | | | | | | | | | | | `-- R_PAREN: )
|
|
| | | | | | | | | | | |-- GtOp: >
|
|
| | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | `-- IntConst: 15
|
|
| | | | | | | | | | |-- R_PAREN: )
|
|
| | | | | | | | | | |-- stmt
|
|
| | | | | | | | | | | `-- block
|
|
| | | | | | | | | | | |-- L_BRACE: {
|
|
| | | | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | | `-- IntConst: 0
|
|
| | | | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | | | `-- R_BRACE: }
|
|
| | | | | | | | | | |-- Else: else
|
|
| | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | `-- block
|
|
| | | | | | | | | | |-- L_BRACE: {
|
|
| | | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | | |-- 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
|
|
| | | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | | `-- Ident: x
|
|
| | | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | |-- L_PAREN: (
|
|
| | | | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | | `-- Ident: c
|
|
| | | | | | | | | | | | | `-- R_PAREN: )
|
|
| | | | | | | | | | | | |-- MulOp: *
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | |-- Ident: SHIFT_TABLE
|
|
| | | | | | | | | | | | |-- L_BRACKET: [
|
|
| | | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | | `-- IntConst: 1
|
|
| | | | | | | | | | | | `-- R_BRACKET: ]
|
|
| | | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | | `-- Ident: y
|
|
| | | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | `-- IntConst: 0xffff
|
|
| | | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | |-- While: while
|
|
| | | | | | | | | | | |-- L_PAREN: (
|
|
| | | | | | | | | | | |-- cond
|
|
| | | | | | | | | | | | `-- lOrExp
|
|
| | | | | | | | | | | | `-- lAndExp
|
|
| | | | | | | | | | | | `-- eqExp
|
|
| | | | | | | | | | | | `-- relExp
|
|
| | | | | | | | | | | | |-- relExp
|
|
| | | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | `-- Ident: i
|
|
| | | | | | | | | | | | |-- LtOp: <
|
|
| | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | `-- IntConst: 16
|
|
| | | | | | | | | | | |-- R_PAREN: )
|
|
| | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | `-- block
|
|
| | | | | | | | | | | |-- L_BRACE: {
|
|
| | | | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | | |-- If: if
|
|
| | | | | | | | | | | | |-- L_PAREN: (
|
|
| | | | | | | | | | | | |-- cond
|
|
| | | | | | | | | | | | | `-- lOrExp
|
|
| | | | | | | | | | | | | `-- lAndExp
|
|
| | | | | | | | | | | | | |-- lAndExp
|
|
| | | | | | | | | | | | | | `-- eqExp
|
|
| | | | | | | | | | | | | | `-- relExp
|
|
| | | | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | | | `-- Ident: x
|
|
| | | | | | | | | | | | | | |-- ModOp: %
|
|
| | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | | | `-- IntConst: 2
|
|
| | | | | | | | | | | | | |-- AndOp: &&
|
|
| | | | | | | | | | | | | `-- eqExp
|
|
| | | | | | | | | | | | | `-- relExp
|
|
| | | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | | `-- Ident: y
|
|
| | | | | | | | | | | | | |-- ModOp: %
|
|
| | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | | `-- IntConst: 2
|
|
| | | | | | | | | | | | |-- R_PAREN: )
|
|
| | | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | | `-- block
|
|
| | | | | | | | | | | | |-- L_BRACE: {
|
|
| | | | | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | | | |-- addExp
|
|
| | | | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | | | | | | | |-- AddOp: +
|
|
| | | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | | | | `-- IntConst: 1
|
|
| | | | | | | | | | | | | | |-- MulOp: *
|
|
| | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | | |-- Ident: SHIFT_TABLE
|
|
| | | | | | | | | | | | | | |-- L_BRACKET: [
|
|
| | | | | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | | | `-- Ident: i
|
|
| | | | | | | | | | | | | | `-- R_BRACKET: ]
|
|
| | | | | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | | | | `-- R_BRACE: }
|
|
| | | | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | | | `-- Ident: x
|
|
| | | | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | | `-- Ident: x
|
|
| | | | | | | | | | | | | |-- DivOp: /
|
|
| | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | | `-- IntConst: 2
|
|
| | | | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | | | `-- Ident: y
|
|
| | | | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | | `-- Ident: y
|
|
| | | | | | | | | | | | | |-- DivOp: /
|
|
| | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | | `-- IntConst: 2
|
|
| | | | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | | | `-- Ident: i
|
|
| | | | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | | |-- addExp
|
|
| | | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | | `-- Ident: i
|
|
| | | | | | | | | | | | | |-- AddOp: +
|
|
| | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | | `-- IntConst: 1
|
|
| | | | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | | | `-- R_BRACE: }
|
|
| | | | | | | | | | `-- R_BRACE: }
|
|
| | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | `-- Ident: c
|
|
| | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | `-- Ident: al
|
|
| | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | `-- Ident: sum
|
|
| | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | `-- R_BRACE: }
|
|
| | | | | | | | |-- blockItem
|
|
| | | | | | | | | `-- stmt
|
|
| | | | | | | | | |-- lVal
|
|
| | | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | |-- exp
|
|
| | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | `-- Ident: al
|
|
| | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | `-- R_BRACE: }
|
|
| | | | | | | |-- blockItem
|
|
| | | | | | | | `-- stmt
|
|
| | | | | | | | |-- lVal
|
|
| | | | | | | | | `-- Ident: mres
|
|
| | | | | | | | |-- Assign: =
|
|
| | | | | | | | |-- exp
|
|
| | | | | | | | | `-- addExp
|
|
| | | | | | | | | `-- mulExp
|
|
| | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | `-- lVal
|
|
| | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | `-- Semi: ;
|
|
| | | | | | | `-- R_BRACE: }
|
|
| | | | | | |-- blockItem
|
|
| | | | | | | `-- stmt
|
|
| | | | | | | `-- block
|
|
| | | | | | | |-- L_BRACE: {
|
|
| | | | | | | |-- blockItem
|
|
| | | | | | | | `-- decl
|
|
| | | | | | | | `-- varDecl
|
|
| | | | | | | | |-- bType
|
|
| | | | | | | | | `-- Int: int
|
|
| | | | | | | | |-- varDef
|
|
| | | | | | | | | |-- Ident: al
|
|
| | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | `-- initVal
|
|
| | | | | | | | | `-- exp
|
|
| | | | | | | | | `-- addExp
|
|
| | | | | | | | | `-- mulExp
|
|
| | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | `-- lVal
|
|
| | | | | | | | | `-- Ident: ml
|
|
| | | | | | | | |-- Comma: ,
|
|
| | | | | | | | |-- varDef
|
|
| | | | | | | | | |-- Ident: c
|
|
| | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | `-- initVal
|
|
| | | | | | | | | `-- exp
|
|
| | | | | | | | | `-- addExp
|
|
| | | | | | | | | `-- mulExp
|
|
| | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | `-- lVal
|
|
| | | | | | | | | `-- Ident: ml
|
|
| | | | | | | | |-- Comma: ,
|
|
| | | | | | | | |-- varDef
|
|
| | | | | | | | | `-- Ident: sum
|
|
| | | | | | | | `-- Semi: ;
|
|
| | | | | | | |-- blockItem
|
|
| | | | | | | | `-- stmt
|
|
| | | | | | | | |-- While: while
|
|
| | | | | | | | |-- L_PAREN: (
|
|
| | | | | | | | |-- cond
|
|
| | | | | | | | | `-- lOrExp
|
|
| | | | | | | | | `-- lAndExp
|
|
| | | | | | | | | `-- eqExp
|
|
| | | | | | | | | `-- relExp
|
|
| | | | | | | | | `-- addExp
|
|
| | | | | | | | | `-- mulExp
|
|
| | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | `-- lVal
|
|
| | | | | | | | | `-- Ident: c
|
|
| | | | | | | | |-- R_PAREN: )
|
|
| | | | | | | | `-- stmt
|
|
| | | | | | | | `-- block
|
|
| | | | | | | | |-- L_BRACE: {
|
|
| | | | | | | | |-- blockItem
|
|
| | | | | | | | | `-- stmt
|
|
| | | | | | | | | |-- lVal
|
|
| | | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | |-- 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
|
|
| | | | | | | | | |-- lVal
|
|
| | | | | | | | | | `-- Ident: x
|
|
| | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | |-- exp
|
|
| | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | `-- Ident: al
|
|
| | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | |-- blockItem
|
|
| | | | | | | | | `-- stmt
|
|
| | | | | | | | | |-- lVal
|
|
| | | | | | | | | | `-- Ident: y
|
|
| | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | |-- exp
|
|
| | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | `-- Ident: c
|
|
| | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | |-- blockItem
|
|
| | | | | | | | | `-- stmt
|
|
| | | | | | | | | |-- While: while
|
|
| | | | | | | | | |-- L_PAREN: (
|
|
| | | | | | | | | |-- cond
|
|
| | | | | | | | | | `-- lOrExp
|
|
| | | | | | | | | | `-- lAndExp
|
|
| | | | | | | | | | `-- eqExp
|
|
| | | | | | | | | | `-- relExp
|
|
| | | | | | | | | | |-- relExp
|
|
| | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | `-- Ident: i
|
|
| | | | | | | | | | |-- LtOp: <
|
|
| | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | `-- number
|
|
| | | | | | | | | | `-- IntConst: 16
|
|
| | | | | | | | | |-- R_PAREN: )
|
|
| | | | | | | | | `-- stmt
|
|
| | | | | | | | | `-- block
|
|
| | | | | | | | | |-- L_BRACE: {
|
|
| | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | |-- If: if
|
|
| | | | | | | | | | |-- L_PAREN: (
|
|
| | | | | | | | | | |-- cond
|
|
| | | | | | | | | | | `-- lOrExp
|
|
| | | | | | | | | | | `-- lAndExp
|
|
| | | | | | | | | | | `-- eqExp
|
|
| | | | | | | | | | | `-- relExp
|
|
| | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | `-- Ident: x
|
|
| | | | | | | | | | | |-- ModOp: %
|
|
| | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | `-- IntConst: 2
|
|
| | | | | | | | | | |-- R_PAREN: )
|
|
| | | | | | | | | | |-- stmt
|
|
| | | | | | | | | | | `-- block
|
|
| | | | | | | | | | | |-- L_BRACE: {
|
|
| | | | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | | |-- If: if
|
|
| | | | | | | | | | | | |-- L_PAREN: (
|
|
| | | | | | | | | | | | |-- cond
|
|
| | | | | | | | | | | | | `-- lOrExp
|
|
| | | | | | | | | | | | | `-- lAndExp
|
|
| | | | | | | | | | | | | `-- eqExp
|
|
| | | | | | | | | | | | | |-- eqExp
|
|
| | | | | | | | | | | | | | `-- relExp
|
|
| | | | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | | | `-- Ident: y
|
|
| | | | | | | | | | | | | | |-- ModOp: %
|
|
| | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | | | `-- IntConst: 2
|
|
| | | | | | | | | | | | | |-- EqOp: ==
|
|
| | | | | | | | | | | | | `-- relExp
|
|
| | | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | | `-- IntConst: 0
|
|
| | | | | | | | | | | | |-- R_PAREN: )
|
|
| | | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | | `-- block
|
|
| | | | | | | | | | | | |-- L_BRACE: {
|
|
| | | | | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | | | |-- addExp
|
|
| | | | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | | | | | | | |-- AddOp: +
|
|
| | | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | | | | `-- IntConst: 1
|
|
| | | | | | | | | | | | | | |-- MulOp: *
|
|
| | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | | |-- Ident: SHIFT_TABLE
|
|
| | | | | | | | | | | | | | |-- L_BRACKET: [
|
|
| | | | | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | | | `-- Ident: i
|
|
| | | | | | | | | | | | | | `-- R_BRACKET: ]
|
|
| | | | | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | | | | `-- R_BRACE: }
|
|
| | | | | | | | | | | `-- R_BRACE: }
|
|
| | | | | | | | | | |-- Else: else
|
|
| | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | |-- If: if
|
|
| | | | | | | | | | |-- L_PAREN: (
|
|
| | | | | | | | | | |-- cond
|
|
| | | | | | | | | | | `-- lOrExp
|
|
| | | | | | | | | | | `-- lAndExp
|
|
| | | | | | | | | | | `-- eqExp
|
|
| | | | | | | | | | | `-- relExp
|
|
| | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | `-- Ident: y
|
|
| | | | | | | | | | | |-- ModOp: %
|
|
| | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | `-- IntConst: 2
|
|
| | | | | | | | | | |-- R_PAREN: )
|
|
| | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | `-- block
|
|
| | | | | | | | | | |-- L_BRACE: {
|
|
| | | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | |-- addExp
|
|
| | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | | | | | |-- AddOp: +
|
|
| | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | | `-- IntConst: 1
|
|
| | | | | | | | | | | | |-- MulOp: *
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | |-- Ident: SHIFT_TABLE
|
|
| | | | | | | | | | | | |-- L_BRACKET: [
|
|
| | | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | `-- Ident: i
|
|
| | | | | | | | | | | | `-- R_BRACKET: ]
|
|
| | | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | | `-- R_BRACE: }
|
|
| | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | `-- Ident: x
|
|
| | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | `-- Ident: x
|
|
| | | | | | | | | | | |-- DivOp: /
|
|
| | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | `-- IntConst: 2
|
|
| | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | `-- Ident: y
|
|
| | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | `-- Ident: y
|
|
| | | | | | | | | | | |-- DivOp: /
|
|
| | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | `-- IntConst: 2
|
|
| | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | `-- Ident: i
|
|
| | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | |-- addExp
|
|
| | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | `-- Ident: i
|
|
| | | | | | | | | | | |-- AddOp: +
|
|
| | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | `-- IntConst: 1
|
|
| | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | `-- R_BRACE: }
|
|
| | | | | | | | |-- blockItem
|
|
| | | | | | | | | `-- stmt
|
|
| | | | | | | | | |-- lVal
|
|
| | | | | | | | | | `-- Ident: sum
|
|
| | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | |-- exp
|
|
| | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | |-- blockItem
|
|
| | | | | | | | | `-- stmt
|
|
| | | | | | | | | |-- lVal
|
|
| | | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | |-- 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
|
|
| | | | | | | | | |-- lVal
|
|
| | | | | | | | | | `-- Ident: x
|
|
| | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | |-- exp
|
|
| | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | `-- Ident: al
|
|
| | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | |-- blockItem
|
|
| | | | | | | | | `-- stmt
|
|
| | | | | | | | | |-- lVal
|
|
| | | | | | | | | | `-- Ident: y
|
|
| | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | |-- exp
|
|
| | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | `-- Ident: c
|
|
| | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | |-- blockItem
|
|
| | | | | | | | | `-- stmt
|
|
| | | | | | | | | |-- While: while
|
|
| | | | | | | | | |-- L_PAREN: (
|
|
| | | | | | | | | |-- cond
|
|
| | | | | | | | | | `-- lOrExp
|
|
| | | | | | | | | | `-- lAndExp
|
|
| | | | | | | | | | `-- eqExp
|
|
| | | | | | | | | | `-- relExp
|
|
| | | | | | | | | | |-- relExp
|
|
| | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | `-- Ident: i
|
|
| | | | | | | | | | |-- LtOp: <
|
|
| | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | `-- number
|
|
| | | | | | | | | | `-- IntConst: 16
|
|
| | | | | | | | | |-- R_PAREN: )
|
|
| | | | | | | | | `-- stmt
|
|
| | | | | | | | | `-- block
|
|
| | | | | | | | | |-- L_BRACE: {
|
|
| | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | |-- If: if
|
|
| | | | | | | | | | |-- L_PAREN: (
|
|
| | | | | | | | | | |-- cond
|
|
| | | | | | | | | | | `-- lOrExp
|
|
| | | | | | | | | | | `-- lAndExp
|
|
| | | | | | | | | | | |-- lAndExp
|
|
| | | | | | | | | | | | `-- eqExp
|
|
| | | | | | | | | | | | `-- relExp
|
|
| | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | `-- Ident: x
|
|
| | | | | | | | | | | | |-- ModOp: %
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | `-- IntConst: 2
|
|
| | | | | | | | | | | |-- AndOp: &&
|
|
| | | | | | | | | | | `-- eqExp
|
|
| | | | | | | | | | | `-- relExp
|
|
| | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | `-- Ident: y
|
|
| | | | | | | | | | | |-- ModOp: %
|
|
| | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | `-- IntConst: 2
|
|
| | | | | | | | | | |-- R_PAREN: )
|
|
| | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | `-- block
|
|
| | | | | | | | | | |-- L_BRACE: {
|
|
| | | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | |-- addExp
|
|
| | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | | | | | |-- AddOp: +
|
|
| | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | | `-- IntConst: 1
|
|
| | | | | | | | | | | | |-- MulOp: *
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | |-- Ident: SHIFT_TABLE
|
|
| | | | | | | | | | | | |-- L_BRACKET: [
|
|
| | | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | `-- Ident: i
|
|
| | | | | | | | | | | | `-- R_BRACKET: ]
|
|
| | | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | | `-- R_BRACE: }
|
|
| | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | `-- Ident: x
|
|
| | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | `-- Ident: x
|
|
| | | | | | | | | | | |-- DivOp: /
|
|
| | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | `-- IntConst: 2
|
|
| | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | `-- Ident: y
|
|
| | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | `-- Ident: y
|
|
| | | | | | | | | | | |-- DivOp: /
|
|
| | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | `-- IntConst: 2
|
|
| | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | `-- Ident: i
|
|
| | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | |-- addExp
|
|
| | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | `-- Ident: i
|
|
| | | | | | | | | | | |-- AddOp: +
|
|
| | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | `-- IntConst: 1
|
|
| | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | `-- R_BRACE: }
|
|
| | | | | | | | |-- blockItem
|
|
| | | | | | | | | `-- stmt
|
|
| | | | | | | | | |-- lVal
|
|
| | | | | | | | | | `-- Ident: c
|
|
| | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | |-- exp
|
|
| | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | |-- blockItem
|
|
| | | | | | | | | `-- stmt
|
|
| | | | | | | | | |-- If: if
|
|
| | | | | | | | | |-- L_PAREN: (
|
|
| | | | | | | | | |-- cond
|
|
| | | | | | | | | | `-- lOrExp
|
|
| | | | | | | | | | `-- lAndExp
|
|
| | | | | | | | | | `-- eqExp
|
|
| | | | | | | | | | `-- relExp
|
|
| | | | | | | | | | |-- relExp
|
|
| | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | |-- L_PAREN: (
|
|
| | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | `-- IntConst: 1
|
|
| | | | | | | | | | | `-- R_PAREN: )
|
|
| | | | | | | | | | |-- GtOp: >
|
|
| | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | `-- number
|
|
| | | | | | | | | | `-- IntConst: 15
|
|
| | | | | | | | | |-- R_PAREN: )
|
|
| | | | | | | | | |-- stmt
|
|
| | | | | | | | | | `-- block
|
|
| | | | | | | | | | |-- L_BRACE: {
|
|
| | | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | `-- IntConst: 0
|
|
| | | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | | `-- R_BRACE: }
|
|
| | | | | | | | | |-- Else: else
|
|
| | | | | | | | | `-- stmt
|
|
| | | | | | | | | `-- block
|
|
| | | | | | | | | |-- L_BRACE: {
|
|
| | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | |-- 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
|
|
| | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | `-- Ident: x
|
|
| | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | |-- L_PAREN: (
|
|
| | | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | `-- Ident: c
|
|
| | | | | | | | | | | | `-- R_PAREN: )
|
|
| | | | | | | | | | | |-- MulOp: *
|
|
| | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | |-- Ident: SHIFT_TABLE
|
|
| | | | | | | | | | | |-- L_BRACKET: [
|
|
| | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | `-- IntConst: 1
|
|
| | | | | | | | | | | `-- R_BRACKET: ]
|
|
| | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | `-- Ident: y
|
|
| | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | `-- IntConst: 0xffff
|
|
| | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | |-- While: while
|
|
| | | | | | | | | | |-- L_PAREN: (
|
|
| | | | | | | | | | |-- cond
|
|
| | | | | | | | | | | `-- lOrExp
|
|
| | | | | | | | | | | `-- lAndExp
|
|
| | | | | | | | | | | `-- eqExp
|
|
| | | | | | | | | | | `-- relExp
|
|
| | | | | | | | | | | |-- relExp
|
|
| | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | `-- Ident: i
|
|
| | | | | | | | | | | |-- LtOp: <
|
|
| | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | `-- IntConst: 16
|
|
| | | | | | | | | | |-- R_PAREN: )
|
|
| | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | `-- block
|
|
| | | | | | | | | | |-- L_BRACE: {
|
|
| | | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | |-- If: if
|
|
| | | | | | | | | | | |-- L_PAREN: (
|
|
| | | | | | | | | | | |-- cond
|
|
| | | | | | | | | | | | `-- lOrExp
|
|
| | | | | | | | | | | | `-- lAndExp
|
|
| | | | | | | | | | | | |-- lAndExp
|
|
| | | | | | | | | | | | | `-- eqExp
|
|
| | | | | | | | | | | | | `-- relExp
|
|
| | | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | | `-- Ident: x
|
|
| | | | | | | | | | | | | |-- ModOp: %
|
|
| | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | | `-- IntConst: 2
|
|
| | | | | | | | | | | | |-- AndOp: &&
|
|
| | | | | | | | | | | | `-- eqExp
|
|
| | | | | | | | | | | | `-- relExp
|
|
| | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | `-- Ident: y
|
|
| | | | | | | | | | | | |-- ModOp: %
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | `-- IntConst: 2
|
|
| | | | | | | | | | | |-- R_PAREN: )
|
|
| | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | `-- block
|
|
| | | | | | | | | | | |-- L_BRACE: {
|
|
| | | | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | | |-- addExp
|
|
| | | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | | | | | | |-- AddOp: +
|
|
| | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | | | `-- IntConst: 1
|
|
| | | | | | | | | | | | | |-- MulOp: *
|
|
| | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | |-- Ident: SHIFT_TABLE
|
|
| | | | | | | | | | | | | |-- L_BRACKET: [
|
|
| | | | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | | `-- Ident: i
|
|
| | | | | | | | | | | | | `-- R_BRACKET: ]
|
|
| | | | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | | | `-- R_BRACE: }
|
|
| | | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | | `-- Ident: x
|
|
| | | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | `-- Ident: x
|
|
| | | | | | | | | | | | |-- DivOp: /
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | `-- IntConst: 2
|
|
| | | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | | `-- Ident: y
|
|
| | | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | `-- Ident: y
|
|
| | | | | | | | | | | | |-- DivOp: /
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | `-- IntConst: 2
|
|
| | | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | | `-- Ident: i
|
|
| | | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | |-- addExp
|
|
| | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | `-- Ident: i
|
|
| | | | | | | | | | | | |-- AddOp: +
|
|
| | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | `-- IntConst: 1
|
|
| | | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | | `-- R_BRACE: }
|
|
| | | | | | | | | `-- R_BRACE: }
|
|
| | | | | | | | |-- blockItem
|
|
| | | | | | | | | `-- stmt
|
|
| | | | | | | | | |-- lVal
|
|
| | | | | | | | | | `-- Ident: c
|
|
| | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | |-- exp
|
|
| | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | |-- blockItem
|
|
| | | | | | | | | `-- stmt
|
|
| | | | | | | | | |-- lVal
|
|
| | | | | | | | | | `-- Ident: al
|
|
| | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | |-- exp
|
|
| | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | `-- Ident: sum
|
|
| | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | `-- R_BRACE: }
|
|
| | | | | | | |-- blockItem
|
|
| | | | | | | | `-- stmt
|
|
| | | | | | | | |-- lVal
|
|
| | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | |-- Assign: =
|
|
| | | | | | | | |-- exp
|
|
| | | | | | | | | `-- addExp
|
|
| | | | | | | | | `-- mulExp
|
|
| | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | `-- lVal
|
|
| | | | | | | | | `-- Ident: al
|
|
| | | | | | | | `-- Semi: ;
|
|
| | | | | | | `-- R_BRACE: }
|
|
| | | | | | |-- blockItem
|
|
| | | | | | | `-- stmt
|
|
| | | | | | | |-- lVal
|
|
| | | | | | | | `-- Ident: ml
|
|
| | | | | | | |-- Assign: =
|
|
| | | | | | | |-- exp
|
|
| | | | | | | | `-- addExp
|
|
| | | | | | | | `-- mulExp
|
|
| | | | | | | | `-- unaryExp
|
|
| | | | | | | | `-- primaryExp
|
|
| | | | | | | | `-- lVal
|
|
| | | | | | | | `-- Ident: ans
|
|
| | | | | | | `-- Semi: ;
|
|
| | | | | | |-- blockItem
|
|
| | | | | | | `-- stmt
|
|
| | | | | | | |-- lVal
|
|
| | | | | | | | `-- Ident: x
|
|
| | | | | | | |-- Assign: =
|
|
| | | | | | | |-- exp
|
|
| | | | | | | | `-- addExp
|
|
| | | | | | | | `-- mulExp
|
|
| | | | | | | | `-- unaryExp
|
|
| | | | | | | | `-- primaryExp
|
|
| | | | | | | | `-- lVal
|
|
| | | | | | | | `-- Ident: mr
|
|
| | | | | | | `-- Semi: ;
|
|
| | | | | | |-- blockItem
|
|
| | | | | | | `-- stmt
|
|
| | | | | | | |-- lVal
|
|
| | | | | | | | `-- Ident: y
|
|
| | | | | | | |-- Assign: =
|
|
| | | | | | | |-- exp
|
|
| | | | | | | | `-- addExp
|
|
| | | | | | | | `-- mulExp
|
|
| | | | | | | | `-- unaryExp
|
|
| | | | | | | | `-- primaryExp
|
|
| | | | | | | | `-- number
|
|
| | | | | | | | `-- IntConst: 1
|
|
| | | | | | | `-- Semi: ;
|
|
| | | | | | |-- blockItem
|
|
| | | | | | | `-- stmt
|
|
| | | | | | | |-- If: if
|
|
| | | | | | | |-- L_PAREN: (
|
|
| | | | | | | |-- cond
|
|
| | | | | | | | `-- lOrExp
|
|
| | | | | | | | `-- lAndExp
|
|
| | | | | | | | `-- eqExp
|
|
| | | | | | | | `-- relExp
|
|
| | | | | | | | |-- relExp
|
|
| | | | | | | | | `-- addExp
|
|
| | | | | | | | | `-- mulExp
|
|
| | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | `-- lVal
|
|
| | | | | | | | | `-- Ident: y
|
|
| | | | | | | | |-- GeOp: >=
|
|
| | | | | | | | `-- addExp
|
|
| | | | | | | | `-- mulExp
|
|
| | | | | | | | `-- unaryExp
|
|
| | | | | | | | `-- primaryExp
|
|
| | | | | | | | `-- number
|
|
| | | | | | | | `-- IntConst: 15
|
|
| | | | | | | |-- R_PAREN: )
|
|
| | | | | | | |-- stmt
|
|
| | | | | | | | `-- block
|
|
| | | | | | | | |-- L_BRACE: {
|
|
| | | | | | | | |-- blockItem
|
|
| | | | | | | | | `-- stmt
|
|
| | | | | | | | | |-- If: if
|
|
| | | | | | | | | |-- L_PAREN: (
|
|
| | | | | | | | | |-- cond
|
|
| | | | | | | | | | `-- lOrExp
|
|
| | | | | | | | | | `-- lAndExp
|
|
| | | | | | | | | | `-- eqExp
|
|
| | | | | | | | | | `-- relExp
|
|
| | | | | | | | | | |-- relExp
|
|
| | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | `-- Ident: x
|
|
| | | | | | | | | | |-- LtOp: <
|
|
| | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | `-- number
|
|
| | | | | | | | | | `-- IntConst: 0
|
|
| | | | | | | | | |-- R_PAREN: )
|
|
| | | | | | | | | |-- stmt
|
|
| | | | | | | | | | `-- block
|
|
| | | | | | | | | | |-- L_BRACE: {
|
|
| | | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | `-- IntConst: 0xffff
|
|
| | | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | | `-- R_BRACE: }
|
|
| | | | | | | | | |-- Else: else
|
|
| | | | | | | | | `-- stmt
|
|
| | | | | | | | | `-- block
|
|
| | | | | | | | | |-- L_BRACE: {
|
|
| | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | `-- IntConst: 0
|
|
| | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | `-- R_BRACE: }
|
|
| | | | | | | | `-- R_BRACE: }
|
|
| | | | | | | |-- Else: else
|
|
| | | | | | | `-- stmt
|
|
| | | | | | | |-- If: if
|
|
| | | | | | | |-- L_PAREN: (
|
|
| | | | | | | |-- cond
|
|
| | | | | | | | `-- lOrExp
|
|
| | | | | | | | `-- lAndExp
|
|
| | | | | | | | `-- eqExp
|
|
| | | | | | | | `-- relExp
|
|
| | | | | | | | |-- relExp
|
|
| | | | | | | | | `-- addExp
|
|
| | | | | | | | | `-- mulExp
|
|
| | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | `-- lVal
|
|
| | | | | | | | | `-- Ident: y
|
|
| | | | | | | | |-- GtOp: >
|
|
| | | | | | | | `-- addExp
|
|
| | | | | | | | `-- mulExp
|
|
| | | | | | | | `-- unaryExp
|
|
| | | | | | | | `-- primaryExp
|
|
| | | | | | | | `-- number
|
|
| | | | | | | | `-- IntConst: 0
|
|
| | | | | | | |-- R_PAREN: )
|
|
| | | | | | | |-- stmt
|
|
| | | | | | | | `-- block
|
|
| | | | | | | | |-- L_BRACE: {
|
|
| | | | | | | | |-- blockItem
|
|
| | | | | | | | | `-- stmt
|
|
| | | | | | | | | |-- If: if
|
|
| | | | | | | | | |-- L_PAREN: (
|
|
| | | | | | | | | |-- cond
|
|
| | | | | | | | | | `-- lOrExp
|
|
| | | | | | | | | | `-- lAndExp
|
|
| | | | | | | | | | `-- eqExp
|
|
| | | | | | | | | | `-- relExp
|
|
| | | | | | | | | | |-- relExp
|
|
| | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | `-- Ident: x
|
|
| | | | | | | | | | |-- GtOp: >
|
|
| | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | `-- number
|
|
| | | | | | | | | | `-- IntConst: 0x7fff
|
|
| | | | | | | | | |-- R_PAREN: )
|
|
| | | | | | | | | |-- stmt
|
|
| | | | | | | | | | `-- block
|
|
| | | | | | | | | | |-- L_BRACE: {
|
|
| | | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | | `-- Ident: x
|
|
| | | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | `-- Ident: x
|
|
| | | | | | | | | | | | |-- DivOp: /
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | |-- Ident: SHIFT_TABLE
|
|
| | | | | | | | | | | | |-- L_BRACKET: [
|
|
| | | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | `-- Ident: y
|
|
| | | | | | | | | | | | `-- R_BRACKET: ]
|
|
| | | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | |-- addExp
|
|
| | | | | | | | | | | | | |-- addExp
|
|
| | | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | | `-- Ident: x
|
|
| | | | | | | | | | | | | |-- AddOp: +
|
|
| | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | | `-- IntConst: 65536
|
|
| | | | | | | | | | | | |-- SubOp: -
|
|
| | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | |-- Ident: SHIFT_TABLE
|
|
| | | | | | | | | | | | |-- L_BRACKET: [
|
|
| | | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | | |-- addExp
|
|
| | | | | | | | | | | | | | |-- addExp
|
|
| | | | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | | | | `-- IntConst: 15
|
|
| | | | | | | | | | | | | | |-- SubOp: -
|
|
| | | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | | `-- Ident: y
|
|
| | | | | | | | | | | | | |-- AddOp: +
|
|
| | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | | `-- IntConst: 1
|
|
| | | | | | | | | | | | `-- R_BRACKET: ]
|
|
| | | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | | `-- R_BRACE: }
|
|
| | | | | | | | | |-- Else: else
|
|
| | | | | | | | | `-- stmt
|
|
| | | | | | | | | `-- block
|
|
| | | | | | | | | |-- L_BRACE: {
|
|
| | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | `-- Ident: x
|
|
| | | | | | | | | | | |-- DivOp: /
|
|
| | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | |-- Ident: SHIFT_TABLE
|
|
| | | | | | | | | | | |-- L_BRACKET: [
|
|
| | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | `-- Ident: y
|
|
| | | | | | | | | | | `-- R_BRACKET: ]
|
|
| | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | `-- R_BRACE: }
|
|
| | | | | | | | `-- R_BRACE: }
|
|
| | | | | | | |-- Else: else
|
|
| | | | | | | `-- stmt
|
|
| | | | | | | `-- block
|
|
| | | | | | | |-- L_BRACE: {
|
|
| | | | | | | |-- blockItem
|
|
| | | | | | | | `-- stmt
|
|
| | | | | | | | |-- lVal
|
|
| | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | |-- Assign: =
|
|
| | | | | | | | |-- exp
|
|
| | | | | | | | | `-- addExp
|
|
| | | | | | | | | `-- mulExp
|
|
| | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | `-- lVal
|
|
| | | | | | | | | `-- Ident: x
|
|
| | | | | | | | `-- Semi: ;
|
|
| | | | | | | `-- R_BRACE: }
|
|
| | | | | | |-- blockItem
|
|
| | | | | | | `-- stmt
|
|
| | | | | | | |-- lVal
|
|
| | | | | | | | `-- Ident: mr
|
|
| | | | | | | |-- Assign: =
|
|
| | | | | | | |-- exp
|
|
| | | | | | | | `-- addExp
|
|
| | | | | | | | `-- mulExp
|
|
| | | | | | | | `-- unaryExp
|
|
| | | | | | | | `-- primaryExp
|
|
| | | | | | | | `-- lVal
|
|
| | | | | | | | `-- Ident: ans
|
|
| | | | | | | `-- Semi: ;
|
|
| | | | | | `-- R_BRACE: }
|
|
| | | | | |-- blockItem
|
|
| | | | | | `-- stmt
|
|
| | | | | | |-- lVal
|
|
| | | | | | | `-- Ident: ans
|
|
| | | | | | |-- Assign: =
|
|
| | | | | | |-- exp
|
|
| | | | | | | `-- addExp
|
|
| | | | | | | `-- mulExp
|
|
| | | | | | | `-- unaryExp
|
|
| | | | | | | `-- primaryExp
|
|
| | | | | | | `-- lVal
|
|
| | | | | | | `-- Ident: mres
|
|
| | | | | | `-- Semi: ;
|
|
| | | | | `-- R_BRACE: }
|
|
| | | | |-- blockItem
|
|
| | | | | `-- stmt
|
|
| | | | | |-- lVal
|
|
| | | | | | `-- Ident: pres
|
|
| | | | | |-- Assign: =
|
|
| | | | | |-- exp
|
|
| | | | | | `-- addExp
|
|
| | | | | | `-- mulExp
|
|
| | | | | | `-- unaryExp
|
|
| | | | | | `-- primaryExp
|
|
| | | | | | `-- lVal
|
|
| | | | | | `-- Ident: ans
|
|
| | | | | `-- Semi: ;
|
|
| | | | `-- R_BRACE: }
|
|
| | | |-- blockItem
|
|
| | | | `-- stmt
|
|
| | | | `-- block
|
|
| | | | |-- L_BRACE: {
|
|
| | | | |-- blockItem
|
|
| | | | | `-- decl
|
|
| | | | | `-- varDecl
|
|
| | | | | |-- bType
|
|
| | | | | | `-- Int: int
|
|
| | | | | |-- varDef
|
|
| | | | | | |-- Ident: ml
|
|
| | | | | | |-- Assign: =
|
|
| | | | | | `-- initVal
|
|
| | | | | | `-- exp
|
|
| | | | | | `-- addExp
|
|
| | | | | | `-- mulExp
|
|
| | | | | | `-- unaryExp
|
|
| | | | | | `-- primaryExp
|
|
| | | | | | `-- lVal
|
|
| | | | | | `-- Ident: pl
|
|
| | | | | |-- Comma: ,
|
|
| | | | | |-- varDef
|
|
| | | | | | |-- Ident: mr
|
|
| | | | | | |-- Assign: =
|
|
| | | | | | `-- initVal
|
|
| | | | | | `-- exp
|
|
| | | | | | `-- addExp
|
|
| | | | | | `-- mulExp
|
|
| | | | | | `-- unaryExp
|
|
| | | | | | `-- primaryExp
|
|
| | | | | | `-- lVal
|
|
| | | | | | `-- Ident: pl
|
|
| | | | | |-- Comma: ,
|
|
| | | | | |-- varDef
|
|
| | | | | | |-- Ident: mres
|
|
| | | | | | |-- Assign: =
|
|
| | | | | | `-- initVal
|
|
| | | | | | `-- exp
|
|
| | | | | | `-- addExp
|
|
| | | | | | `-- mulExp
|
|
| | | | | | `-- unaryExp
|
|
| | | | | | `-- primaryExp
|
|
| | | | | | `-- number
|
|
| | | | | | `-- IntConst: 0
|
|
| | | | | `-- Semi: ;
|
|
| | | | |-- blockItem
|
|
| | | | | `-- stmt
|
|
| | | | | |-- While: while
|
|
| | | | | |-- L_PAREN: (
|
|
| | | | | |-- cond
|
|
| | | | | | `-- lOrExp
|
|
| | | | | | `-- lAndExp
|
|
| | | | | | `-- eqExp
|
|
| | | | | | `-- relExp
|
|
| | | | | | `-- addExp
|
|
| | | | | | `-- mulExp
|
|
| | | | | | `-- unaryExp
|
|
| | | | | | `-- primaryExp
|
|
| | | | | | `-- lVal
|
|
| | | | | | `-- Ident: mr
|
|
| | | | | |-- R_PAREN: )
|
|
| | | | | `-- stmt
|
|
| | | | | `-- block
|
|
| | | | | |-- L_BRACE: {
|
|
| | | | | |-- blockItem
|
|
| | | | | | `-- stmt
|
|
| | | | | | |-- lVal
|
|
| | | | | | | `-- Ident: ans
|
|
| | | | | | |-- Assign: =
|
|
| | | | | | |-- 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
|
|
| | | | | | |-- lVal
|
|
| | | | | | | `-- Ident: x
|
|
| | | | | | |-- Assign: =
|
|
| | | | | | |-- exp
|
|
| | | | | | | `-- addExp
|
|
| | | | | | | `-- mulExp
|
|
| | | | | | | `-- unaryExp
|
|
| | | | | | | `-- primaryExp
|
|
| | | | | | | `-- lVal
|
|
| | | | | | | `-- Ident: mr
|
|
| | | | | | `-- Semi: ;
|
|
| | | | | |-- blockItem
|
|
| | | | | | `-- stmt
|
|
| | | | | | |-- lVal
|
|
| | | | | | | `-- Ident: y
|
|
| | | | | | |-- Assign: =
|
|
| | | | | | |-- exp
|
|
| | | | | | | `-- addExp
|
|
| | | | | | | `-- mulExp
|
|
| | | | | | | `-- unaryExp
|
|
| | | | | | | `-- primaryExp
|
|
| | | | | | | `-- number
|
|
| | | | | | | `-- IntConst: 1
|
|
| | | | | | `-- Semi: ;
|
|
| | | | | |-- blockItem
|
|
| | | | | | `-- stmt
|
|
| | | | | | |-- While: while
|
|
| | | | | | |-- L_PAREN: (
|
|
| | | | | | |-- cond
|
|
| | | | | | | `-- lOrExp
|
|
| | | | | | | `-- lAndExp
|
|
| | | | | | | `-- eqExp
|
|
| | | | | | | `-- relExp
|
|
| | | | | | | |-- relExp
|
|
| | | | | | | | `-- addExp
|
|
| | | | | | | | `-- mulExp
|
|
| | | | | | | | `-- unaryExp
|
|
| | | | | | | | `-- primaryExp
|
|
| | | | | | | | `-- lVal
|
|
| | | | | | | | `-- Ident: i
|
|
| | | | | | | |-- LtOp: <
|
|
| | | | | | | `-- addExp
|
|
| | | | | | | `-- mulExp
|
|
| | | | | | | `-- unaryExp
|
|
| | | | | | | `-- primaryExp
|
|
| | | | | | | `-- number
|
|
| | | | | | | `-- IntConst: 16
|
|
| | | | | | |-- R_PAREN: )
|
|
| | | | | | `-- stmt
|
|
| | | | | | `-- block
|
|
| | | | | | |-- L_BRACE: {
|
|
| | | | | | |-- blockItem
|
|
| | | | | | | `-- stmt
|
|
| | | | | | | |-- If: if
|
|
| | | | | | | |-- L_PAREN: (
|
|
| | | | | | | |-- cond
|
|
| | | | | | | | `-- lOrExp
|
|
| | | | | | | | `-- lAndExp
|
|
| | | | | | | | |-- lAndExp
|
|
| | | | | | | | | `-- eqExp
|
|
| | | | | | | | | `-- relExp
|
|
| | | | | | | | | `-- addExp
|
|
| | | | | | | | | `-- mulExp
|
|
| | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | `-- Ident: x
|
|
| | | | | | | | | |-- ModOp: %
|
|
| | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | `-- number
|
|
| | | | | | | | | `-- IntConst: 2
|
|
| | | | | | | | |-- AndOp: &&
|
|
| | | | | | | | `-- eqExp
|
|
| | | | | | | | `-- relExp
|
|
| | | | | | | | `-- addExp
|
|
| | | | | | | | `-- mulExp
|
|
| | | | | | | | |-- mulExp
|
|
| | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | `-- lVal
|
|
| | | | | | | | | `-- Ident: y
|
|
| | | | | | | | |-- ModOp: %
|
|
| | | | | | | | `-- unaryExp
|
|
| | | | | | | | `-- primaryExp
|
|
| | | | | | | | `-- number
|
|
| | | | | | | | `-- IntConst: 2
|
|
| | | | | | | |-- R_PAREN: )
|
|
| | | | | | | `-- stmt
|
|
| | | | | | | `-- block
|
|
| | | | | | | |-- L_BRACE: {
|
|
| | | | | | | |-- blockItem
|
|
| | | | | | | | `-- stmt
|
|
| | | | | | | | |-- lVal
|
|
| | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | |-- Assign: =
|
|
| | | | | | | | |-- exp
|
|
| | | | | | | | | `-- addExp
|
|
| | | | | | | | | |-- addExp
|
|
| | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | | |-- AddOp: +
|
|
| | | | | | | | | `-- mulExp
|
|
| | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | `-- number
|
|
| | | | | | | | | | `-- IntConst: 1
|
|
| | | | | | | | | |-- MulOp: *
|
|
| | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | `-- lVal
|
|
| | | | | | | | | |-- Ident: SHIFT_TABLE
|
|
| | | | | | | | | |-- L_BRACKET: [
|
|
| | | | | | | | | |-- exp
|
|
| | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | `-- Ident: i
|
|
| | | | | | | | | `-- R_BRACKET: ]
|
|
| | | | | | | | `-- Semi: ;
|
|
| | | | | | | `-- R_BRACE: }
|
|
| | | | | | |-- blockItem
|
|
| | | | | | | `-- stmt
|
|
| | | | | | | |-- lVal
|
|
| | | | | | | | `-- Ident: x
|
|
| | | | | | | |-- Assign: =
|
|
| | | | | | | |-- exp
|
|
| | | | | | | | `-- addExp
|
|
| | | | | | | | `-- mulExp
|
|
| | | | | | | | |-- mulExp
|
|
| | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | `-- lVal
|
|
| | | | | | | | | `-- Ident: x
|
|
| | | | | | | | |-- DivOp: /
|
|
| | | | | | | | `-- unaryExp
|
|
| | | | | | | | `-- primaryExp
|
|
| | | | | | | | `-- number
|
|
| | | | | | | | `-- IntConst: 2
|
|
| | | | | | | `-- Semi: ;
|
|
| | | | | | |-- blockItem
|
|
| | | | | | | `-- stmt
|
|
| | | | | | | |-- lVal
|
|
| | | | | | | | `-- Ident: y
|
|
| | | | | | | |-- Assign: =
|
|
| | | | | | | |-- exp
|
|
| | | | | | | | `-- addExp
|
|
| | | | | | | | `-- mulExp
|
|
| | | | | | | | |-- mulExp
|
|
| | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | `-- lVal
|
|
| | | | | | | | | `-- Ident: y
|
|
| | | | | | | | |-- DivOp: /
|
|
| | | | | | | | `-- unaryExp
|
|
| | | | | | | | `-- primaryExp
|
|
| | | | | | | | `-- number
|
|
| | | | | | | | `-- IntConst: 2
|
|
| | | | | | | `-- Semi: ;
|
|
| | | | | | |-- blockItem
|
|
| | | | | | | `-- stmt
|
|
| | | | | | | |-- lVal
|
|
| | | | | | | | `-- Ident: i
|
|
| | | | | | | |-- Assign: =
|
|
| | | | | | | |-- exp
|
|
| | | | | | | | `-- addExp
|
|
| | | | | | | | |-- addExp
|
|
| | | | | | | | | `-- mulExp
|
|
| | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | `-- lVal
|
|
| | | | | | | | | `-- Ident: i
|
|
| | | | | | | | |-- AddOp: +
|
|
| | | | | | | | `-- mulExp
|
|
| | | | | | | | `-- unaryExp
|
|
| | | | | | | | `-- primaryExp
|
|
| | | | | | | | `-- number
|
|
| | | | | | | | `-- IntConst: 1
|
|
| | | | | | | `-- Semi: ;
|
|
| | | | | | `-- R_BRACE: }
|
|
| | | | | |-- blockItem
|
|
| | | | | | `-- stmt
|
|
| | | | | | |-- If: if
|
|
| | | | | | |-- L_PAREN: (
|
|
| | | | | | |-- cond
|
|
| | | | | | | `-- lOrExp
|
|
| | | | | | | `-- lAndExp
|
|
| | | | | | | `-- eqExp
|
|
| | | | | | | `-- relExp
|
|
| | | | | | | `-- addExp
|
|
| | | | | | | `-- mulExp
|
|
| | | | | | | `-- unaryExp
|
|
| | | | | | | `-- primaryExp
|
|
| | | | | | | `-- lVal
|
|
| | | | | | | `-- Ident: ans
|
|
| | | | | | |-- R_PAREN: )
|
|
| | | | | | `-- stmt
|
|
| | | | | | `-- block
|
|
| | | | | | |-- L_BRACE: {
|
|
| | | | | | |-- blockItem
|
|
| | | | | | | `-- stmt
|
|
| | | | | | | `-- block
|
|
| | | | | | | |-- L_BRACE: {
|
|
| | | | | | | |-- blockItem
|
|
| | | | | | | | `-- decl
|
|
| | | | | | | | `-- varDecl
|
|
| | | | | | | | |-- bType
|
|
| | | | | | | | | `-- Int: int
|
|
| | | | | | | | |-- varDef
|
|
| | | | | | | | | |-- Ident: al
|
|
| | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | `-- initVal
|
|
| | | | | | | | | `-- exp
|
|
| | | | | | | | | `-- addExp
|
|
| | | | | | | | | `-- mulExp
|
|
| | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | `-- lVal
|
|
| | | | | | | | | `-- Ident: mres
|
|
| | | | | | | | |-- Comma: ,
|
|
| | | | | | | | |-- varDef
|
|
| | | | | | | | | |-- Ident: c
|
|
| | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | `-- initVal
|
|
| | | | | | | | | `-- exp
|
|
| | | | | | | | | `-- addExp
|
|
| | | | | | | | | `-- mulExp
|
|
| | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | `-- lVal
|
|
| | | | | | | | | `-- Ident: ml
|
|
| | | | | | | | |-- Comma: ,
|
|
| | | | | | | | |-- varDef
|
|
| | | | | | | | | `-- Ident: sum
|
|
| | | | | | | | `-- Semi: ;
|
|
| | | | | | | |-- blockItem
|
|
| | | | | | | | `-- stmt
|
|
| | | | | | | | |-- While: while
|
|
| | | | | | | | |-- L_PAREN: (
|
|
| | | | | | | | |-- cond
|
|
| | | | | | | | | `-- lOrExp
|
|
| | | | | | | | | `-- lAndExp
|
|
| | | | | | | | | `-- eqExp
|
|
| | | | | | | | | `-- relExp
|
|
| | | | | | | | | `-- addExp
|
|
| | | | | | | | | `-- mulExp
|
|
| | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | `-- lVal
|
|
| | | | | | | | | `-- Ident: c
|
|
| | | | | | | | |-- R_PAREN: )
|
|
| | | | | | | | `-- stmt
|
|
| | | | | | | | `-- block
|
|
| | | | | | | | |-- L_BRACE: {
|
|
| | | | | | | | |-- blockItem
|
|
| | | | | | | | | `-- stmt
|
|
| | | | | | | | | |-- lVal
|
|
| | | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | |-- 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
|
|
| | | | | | | | | |-- lVal
|
|
| | | | | | | | | | `-- Ident: x
|
|
| | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | |-- exp
|
|
| | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | `-- Ident: al
|
|
| | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | |-- blockItem
|
|
| | | | | | | | | `-- stmt
|
|
| | | | | | | | | |-- lVal
|
|
| | | | | | | | | | `-- Ident: y
|
|
| | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | |-- exp
|
|
| | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | `-- Ident: c
|
|
| | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | |-- blockItem
|
|
| | | | | | | | | `-- stmt
|
|
| | | | | | | | | |-- While: while
|
|
| | | | | | | | | |-- L_PAREN: (
|
|
| | | | | | | | | |-- cond
|
|
| | | | | | | | | | `-- lOrExp
|
|
| | | | | | | | | | `-- lAndExp
|
|
| | | | | | | | | | `-- eqExp
|
|
| | | | | | | | | | `-- relExp
|
|
| | | | | | | | | | |-- relExp
|
|
| | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | `-- Ident: i
|
|
| | | | | | | | | | |-- LtOp: <
|
|
| | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | `-- number
|
|
| | | | | | | | | | `-- IntConst: 16
|
|
| | | | | | | | | |-- R_PAREN: )
|
|
| | | | | | | | | `-- stmt
|
|
| | | | | | | | | `-- block
|
|
| | | | | | | | | |-- L_BRACE: {
|
|
| | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | |-- If: if
|
|
| | | | | | | | | | |-- L_PAREN: (
|
|
| | | | | | | | | | |-- cond
|
|
| | | | | | | | | | | `-- lOrExp
|
|
| | | | | | | | | | | `-- lAndExp
|
|
| | | | | | | | | | | `-- eqExp
|
|
| | | | | | | | | | | `-- relExp
|
|
| | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | `-- Ident: x
|
|
| | | | | | | | | | | |-- ModOp: %
|
|
| | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | `-- IntConst: 2
|
|
| | | | | | | | | | |-- R_PAREN: )
|
|
| | | | | | | | | | |-- stmt
|
|
| | | | | | | | | | | `-- block
|
|
| | | | | | | | | | | |-- L_BRACE: {
|
|
| | | | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | | |-- If: if
|
|
| | | | | | | | | | | | |-- L_PAREN: (
|
|
| | | | | | | | | | | | |-- cond
|
|
| | | | | | | | | | | | | `-- lOrExp
|
|
| | | | | | | | | | | | | `-- lAndExp
|
|
| | | | | | | | | | | | | `-- eqExp
|
|
| | | | | | | | | | | | | |-- eqExp
|
|
| | | | | | | | | | | | | | `-- relExp
|
|
| | | | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | | | `-- Ident: y
|
|
| | | | | | | | | | | | | | |-- ModOp: %
|
|
| | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | | | `-- IntConst: 2
|
|
| | | | | | | | | | | | | |-- EqOp: ==
|
|
| | | | | | | | | | | | | `-- relExp
|
|
| | | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | | `-- IntConst: 0
|
|
| | | | | | | | | | | | |-- R_PAREN: )
|
|
| | | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | | `-- block
|
|
| | | | | | | | | | | | |-- L_BRACE: {
|
|
| | | | | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | | | |-- addExp
|
|
| | | | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | | | | | | | |-- AddOp: +
|
|
| | | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | | | | `-- IntConst: 1
|
|
| | | | | | | | | | | | | | |-- MulOp: *
|
|
| | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | | |-- Ident: SHIFT_TABLE
|
|
| | | | | | | | | | | | | | |-- L_BRACKET: [
|
|
| | | | | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | | | `-- Ident: i
|
|
| | | | | | | | | | | | | | `-- R_BRACKET: ]
|
|
| | | | | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | | | | `-- R_BRACE: }
|
|
| | | | | | | | | | | `-- R_BRACE: }
|
|
| | | | | | | | | | |-- Else: else
|
|
| | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | |-- If: if
|
|
| | | | | | | | | | |-- L_PAREN: (
|
|
| | | | | | | | | | |-- cond
|
|
| | | | | | | | | | | `-- lOrExp
|
|
| | | | | | | | | | | `-- lAndExp
|
|
| | | | | | | | | | | `-- eqExp
|
|
| | | | | | | | | | | `-- relExp
|
|
| | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | `-- Ident: y
|
|
| | | | | | | | | | | |-- ModOp: %
|
|
| | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | `-- IntConst: 2
|
|
| | | | | | | | | | |-- R_PAREN: )
|
|
| | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | `-- block
|
|
| | | | | | | | | | |-- L_BRACE: {
|
|
| | | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | |-- addExp
|
|
| | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | | | | | |-- AddOp: +
|
|
| | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | | `-- IntConst: 1
|
|
| | | | | | | | | | | | |-- MulOp: *
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | |-- Ident: SHIFT_TABLE
|
|
| | | | | | | | | | | | |-- L_BRACKET: [
|
|
| | | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | `-- Ident: i
|
|
| | | | | | | | | | | | `-- R_BRACKET: ]
|
|
| | | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | | `-- R_BRACE: }
|
|
| | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | `-- Ident: x
|
|
| | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | `-- Ident: x
|
|
| | | | | | | | | | | |-- DivOp: /
|
|
| | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | `-- IntConst: 2
|
|
| | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | `-- Ident: y
|
|
| | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | `-- Ident: y
|
|
| | | | | | | | | | | |-- DivOp: /
|
|
| | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | `-- IntConst: 2
|
|
| | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | `-- Ident: i
|
|
| | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | |-- addExp
|
|
| | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | `-- Ident: i
|
|
| | | | | | | | | | | |-- AddOp: +
|
|
| | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | `-- IntConst: 1
|
|
| | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | `-- R_BRACE: }
|
|
| | | | | | | | |-- blockItem
|
|
| | | | | | | | | `-- stmt
|
|
| | | | | | | | | |-- lVal
|
|
| | | | | | | | | | `-- Ident: sum
|
|
| | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | |-- exp
|
|
| | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | |-- blockItem
|
|
| | | | | | | | | `-- stmt
|
|
| | | | | | | | | |-- lVal
|
|
| | | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | |-- 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
|
|
| | | | | | | | | |-- lVal
|
|
| | | | | | | | | | `-- Ident: x
|
|
| | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | |-- exp
|
|
| | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | `-- Ident: al
|
|
| | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | |-- blockItem
|
|
| | | | | | | | | `-- stmt
|
|
| | | | | | | | | |-- lVal
|
|
| | | | | | | | | | `-- Ident: y
|
|
| | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | |-- exp
|
|
| | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | `-- Ident: c
|
|
| | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | |-- blockItem
|
|
| | | | | | | | | `-- stmt
|
|
| | | | | | | | | |-- While: while
|
|
| | | | | | | | | |-- L_PAREN: (
|
|
| | | | | | | | | |-- cond
|
|
| | | | | | | | | | `-- lOrExp
|
|
| | | | | | | | | | `-- lAndExp
|
|
| | | | | | | | | | `-- eqExp
|
|
| | | | | | | | | | `-- relExp
|
|
| | | | | | | | | | |-- relExp
|
|
| | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | `-- Ident: i
|
|
| | | | | | | | | | |-- LtOp: <
|
|
| | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | `-- number
|
|
| | | | | | | | | | `-- IntConst: 16
|
|
| | | | | | | | | |-- R_PAREN: )
|
|
| | | | | | | | | `-- stmt
|
|
| | | | | | | | | `-- block
|
|
| | | | | | | | | |-- L_BRACE: {
|
|
| | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | |-- If: if
|
|
| | | | | | | | | | |-- L_PAREN: (
|
|
| | | | | | | | | | |-- cond
|
|
| | | | | | | | | | | `-- lOrExp
|
|
| | | | | | | | | | | `-- lAndExp
|
|
| | | | | | | | | | | |-- lAndExp
|
|
| | | | | | | | | | | | `-- eqExp
|
|
| | | | | | | | | | | | `-- relExp
|
|
| | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | `-- Ident: x
|
|
| | | | | | | | | | | | |-- ModOp: %
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | `-- IntConst: 2
|
|
| | | | | | | | | | | |-- AndOp: &&
|
|
| | | | | | | | | | | `-- eqExp
|
|
| | | | | | | | | | | `-- relExp
|
|
| | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | `-- Ident: y
|
|
| | | | | | | | | | | |-- ModOp: %
|
|
| | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | `-- IntConst: 2
|
|
| | | | | | | | | | |-- R_PAREN: )
|
|
| | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | `-- block
|
|
| | | | | | | | | | |-- L_BRACE: {
|
|
| | | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | |-- addExp
|
|
| | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | | | | | |-- AddOp: +
|
|
| | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | | `-- IntConst: 1
|
|
| | | | | | | | | | | | |-- MulOp: *
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | |-- Ident: SHIFT_TABLE
|
|
| | | | | | | | | | | | |-- L_BRACKET: [
|
|
| | | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | `-- Ident: i
|
|
| | | | | | | | | | | | `-- R_BRACKET: ]
|
|
| | | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | | `-- R_BRACE: }
|
|
| | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | `-- Ident: x
|
|
| | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | `-- Ident: x
|
|
| | | | | | | | | | | |-- DivOp: /
|
|
| | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | `-- IntConst: 2
|
|
| | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | `-- Ident: y
|
|
| | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | `-- Ident: y
|
|
| | | | | | | | | | | |-- DivOp: /
|
|
| | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | `-- IntConst: 2
|
|
| | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | `-- Ident: i
|
|
| | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | |-- addExp
|
|
| | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | `-- Ident: i
|
|
| | | | | | | | | | | |-- AddOp: +
|
|
| | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | `-- IntConst: 1
|
|
| | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | `-- R_BRACE: }
|
|
| | | | | | | | |-- blockItem
|
|
| | | | | | | | | `-- stmt
|
|
| | | | | | | | | |-- lVal
|
|
| | | | | | | | | | `-- Ident: c
|
|
| | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | |-- exp
|
|
| | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | |-- blockItem
|
|
| | | | | | | | | `-- stmt
|
|
| | | | | | | | | |-- If: if
|
|
| | | | | | | | | |-- L_PAREN: (
|
|
| | | | | | | | | |-- cond
|
|
| | | | | | | | | | `-- lOrExp
|
|
| | | | | | | | | | `-- lAndExp
|
|
| | | | | | | | | | `-- eqExp
|
|
| | | | | | | | | | `-- relExp
|
|
| | | | | | | | | | |-- relExp
|
|
| | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | |-- L_PAREN: (
|
|
| | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | `-- IntConst: 1
|
|
| | | | | | | | | | | `-- R_PAREN: )
|
|
| | | | | | | | | | |-- GtOp: >
|
|
| | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | `-- number
|
|
| | | | | | | | | | `-- IntConst: 15
|
|
| | | | | | | | | |-- R_PAREN: )
|
|
| | | | | | | | | |-- stmt
|
|
| | | | | | | | | | `-- block
|
|
| | | | | | | | | | |-- L_BRACE: {
|
|
| | | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | `-- IntConst: 0
|
|
| | | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | | `-- R_BRACE: }
|
|
| | | | | | | | | |-- Else: else
|
|
| | | | | | | | | `-- stmt
|
|
| | | | | | | | | `-- block
|
|
| | | | | | | | | |-- L_BRACE: {
|
|
| | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | |-- 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
|
|
| | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | `-- Ident: x
|
|
| | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | |-- L_PAREN: (
|
|
| | | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | `-- Ident: c
|
|
| | | | | | | | | | | | `-- R_PAREN: )
|
|
| | | | | | | | | | | |-- MulOp: *
|
|
| | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | |-- Ident: SHIFT_TABLE
|
|
| | | | | | | | | | | |-- L_BRACKET: [
|
|
| | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | `-- IntConst: 1
|
|
| | | | | | | | | | | `-- R_BRACKET: ]
|
|
| | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | `-- Ident: y
|
|
| | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | `-- IntConst: 0xffff
|
|
| | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | |-- While: while
|
|
| | | | | | | | | | |-- L_PAREN: (
|
|
| | | | | | | | | | |-- cond
|
|
| | | | | | | | | | | `-- lOrExp
|
|
| | | | | | | | | | | `-- lAndExp
|
|
| | | | | | | | | | | `-- eqExp
|
|
| | | | | | | | | | | `-- relExp
|
|
| | | | | | | | | | | |-- relExp
|
|
| | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | `-- Ident: i
|
|
| | | | | | | | | | | |-- LtOp: <
|
|
| | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | `-- IntConst: 16
|
|
| | | | | | | | | | |-- R_PAREN: )
|
|
| | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | `-- block
|
|
| | | | | | | | | | |-- L_BRACE: {
|
|
| | | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | |-- If: if
|
|
| | | | | | | | | | | |-- L_PAREN: (
|
|
| | | | | | | | | | | |-- cond
|
|
| | | | | | | | | | | | `-- lOrExp
|
|
| | | | | | | | | | | | `-- lAndExp
|
|
| | | | | | | | | | | | |-- lAndExp
|
|
| | | | | | | | | | | | | `-- eqExp
|
|
| | | | | | | | | | | | | `-- relExp
|
|
| | | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | | `-- Ident: x
|
|
| | | | | | | | | | | | | |-- ModOp: %
|
|
| | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | | `-- IntConst: 2
|
|
| | | | | | | | | | | | |-- AndOp: &&
|
|
| | | | | | | | | | | | `-- eqExp
|
|
| | | | | | | | | | | | `-- relExp
|
|
| | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | `-- Ident: y
|
|
| | | | | | | | | | | | |-- ModOp: %
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | `-- IntConst: 2
|
|
| | | | | | | | | | | |-- R_PAREN: )
|
|
| | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | `-- block
|
|
| | | | | | | | | | | |-- L_BRACE: {
|
|
| | | | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | | |-- addExp
|
|
| | | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | | | | | | |-- AddOp: +
|
|
| | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | | | `-- IntConst: 1
|
|
| | | | | | | | | | | | | |-- MulOp: *
|
|
| | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | |-- Ident: SHIFT_TABLE
|
|
| | | | | | | | | | | | | |-- L_BRACKET: [
|
|
| | | | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | | `-- Ident: i
|
|
| | | | | | | | | | | | | `-- R_BRACKET: ]
|
|
| | | | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | | | `-- R_BRACE: }
|
|
| | | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | | `-- Ident: x
|
|
| | | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | `-- Ident: x
|
|
| | | | | | | | | | | | |-- DivOp: /
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | `-- IntConst: 2
|
|
| | | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | | `-- Ident: y
|
|
| | | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | `-- Ident: y
|
|
| | | | | | | | | | | | |-- DivOp: /
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | `-- IntConst: 2
|
|
| | | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | | `-- Ident: i
|
|
| | | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | |-- addExp
|
|
| | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | `-- Ident: i
|
|
| | | | | | | | | | | | |-- AddOp: +
|
|
| | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | `-- IntConst: 1
|
|
| | | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | | `-- R_BRACE: }
|
|
| | | | | | | | | `-- R_BRACE: }
|
|
| | | | | | | | |-- blockItem
|
|
| | | | | | | | | `-- stmt
|
|
| | | | | | | | | |-- lVal
|
|
| | | | | | | | | | `-- Ident: c
|
|
| | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | |-- exp
|
|
| | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | |-- blockItem
|
|
| | | | | | | | | `-- stmt
|
|
| | | | | | | | | |-- lVal
|
|
| | | | | | | | | | `-- Ident: al
|
|
| | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | |-- exp
|
|
| | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | `-- Ident: sum
|
|
| | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | `-- R_BRACE: }
|
|
| | | | | | | |-- blockItem
|
|
| | | | | | | | `-- stmt
|
|
| | | | | | | | |-- lVal
|
|
| | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | |-- Assign: =
|
|
| | | | | | | | |-- exp
|
|
| | | | | | | | | `-- addExp
|
|
| | | | | | | | | `-- mulExp
|
|
| | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | `-- lVal
|
|
| | | | | | | | | `-- Ident: al
|
|
| | | | | | | | `-- Semi: ;
|
|
| | | | | | | `-- R_BRACE: }
|
|
| | | | | | |-- blockItem
|
|
| | | | | | | `-- stmt
|
|
| | | | | | | |-- lVal
|
|
| | | | | | | | `-- Ident: mres
|
|
| | | | | | | |-- Assign: =
|
|
| | | | | | | |-- exp
|
|
| | | | | | | | `-- addExp
|
|
| | | | | | | | `-- mulExp
|
|
| | | | | | | | `-- unaryExp
|
|
| | | | | | | | `-- primaryExp
|
|
| | | | | | | | `-- lVal
|
|
| | | | | | | | `-- Ident: ans
|
|
| | | | | | | `-- Semi: ;
|
|
| | | | | | `-- R_BRACE: }
|
|
| | | | | |-- blockItem
|
|
| | | | | | `-- stmt
|
|
| | | | | | `-- block
|
|
| | | | | | |-- L_BRACE: {
|
|
| | | | | | |-- blockItem
|
|
| | | | | | | `-- decl
|
|
| | | | | | | `-- varDecl
|
|
| | | | | | | |-- bType
|
|
| | | | | | | | `-- Int: int
|
|
| | | | | | | |-- varDef
|
|
| | | | | | | | |-- Ident: al
|
|
| | | | | | | | |-- Assign: =
|
|
| | | | | | | | `-- initVal
|
|
| | | | | | | | `-- exp
|
|
| | | | | | | | `-- addExp
|
|
| | | | | | | | `-- mulExp
|
|
| | | | | | | | `-- unaryExp
|
|
| | | | | | | | `-- primaryExp
|
|
| | | | | | | | `-- lVal
|
|
| | | | | | | | `-- Ident: ml
|
|
| | | | | | | |-- Comma: ,
|
|
| | | | | | | |-- varDef
|
|
| | | | | | | | |-- Ident: c
|
|
| | | | | | | | |-- Assign: =
|
|
| | | | | | | | `-- initVal
|
|
| | | | | | | | `-- exp
|
|
| | | | | | | | `-- addExp
|
|
| | | | | | | | `-- mulExp
|
|
| | | | | | | | `-- unaryExp
|
|
| | | | | | | | `-- primaryExp
|
|
| | | | | | | | `-- lVal
|
|
| | | | | | | | `-- Ident: ml
|
|
| | | | | | | |-- Comma: ,
|
|
| | | | | | | |-- varDef
|
|
| | | | | | | | `-- Ident: sum
|
|
| | | | | | | `-- Semi: ;
|
|
| | | | | | |-- blockItem
|
|
| | | | | | | `-- stmt
|
|
| | | | | | | |-- While: while
|
|
| | | | | | | |-- L_PAREN: (
|
|
| | | | | | | |-- cond
|
|
| | | | | | | | `-- lOrExp
|
|
| | | | | | | | `-- lAndExp
|
|
| | | | | | | | `-- eqExp
|
|
| | | | | | | | `-- relExp
|
|
| | | | | | | | `-- addExp
|
|
| | | | | | | | `-- mulExp
|
|
| | | | | | | | `-- unaryExp
|
|
| | | | | | | | `-- primaryExp
|
|
| | | | | | | | `-- lVal
|
|
| | | | | | | | `-- Ident: c
|
|
| | | | | | | |-- R_PAREN: )
|
|
| | | | | | | `-- stmt
|
|
| | | | | | | `-- block
|
|
| | | | | | | |-- L_BRACE: {
|
|
| | | | | | | |-- blockItem
|
|
| | | | | | | | `-- stmt
|
|
| | | | | | | | |-- lVal
|
|
| | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | |-- Assign: =
|
|
| | | | | | | | |-- 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
|
|
| | | | | | | | |-- lVal
|
|
| | | | | | | | | `-- Ident: x
|
|
| | | | | | | | |-- Assign: =
|
|
| | | | | | | | |-- exp
|
|
| | | | | | | | | `-- addExp
|
|
| | | | | | | | | `-- mulExp
|
|
| | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | `-- lVal
|
|
| | | | | | | | | `-- Ident: al
|
|
| | | | | | | | `-- Semi: ;
|
|
| | | | | | | |-- blockItem
|
|
| | | | | | | | `-- stmt
|
|
| | | | | | | | |-- lVal
|
|
| | | | | | | | | `-- Ident: y
|
|
| | | | | | | | |-- Assign: =
|
|
| | | | | | | | |-- exp
|
|
| | | | | | | | | `-- addExp
|
|
| | | | | | | | | `-- mulExp
|
|
| | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | `-- lVal
|
|
| | | | | | | | | `-- Ident: c
|
|
| | | | | | | | `-- Semi: ;
|
|
| | | | | | | |-- blockItem
|
|
| | | | | | | | `-- stmt
|
|
| | | | | | | | |-- While: while
|
|
| | | | | | | | |-- L_PAREN: (
|
|
| | | | | | | | |-- cond
|
|
| | | | | | | | | `-- lOrExp
|
|
| | | | | | | | | `-- lAndExp
|
|
| | | | | | | | | `-- eqExp
|
|
| | | | | | | | | `-- relExp
|
|
| | | | | | | | | |-- relExp
|
|
| | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | `-- Ident: i
|
|
| | | | | | | | | |-- LtOp: <
|
|
| | | | | | | | | `-- addExp
|
|
| | | | | | | | | `-- mulExp
|
|
| | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | `-- number
|
|
| | | | | | | | | `-- IntConst: 16
|
|
| | | | | | | | |-- R_PAREN: )
|
|
| | | | | | | | `-- stmt
|
|
| | | | | | | | `-- block
|
|
| | | | | | | | |-- L_BRACE: {
|
|
| | | | | | | | |-- blockItem
|
|
| | | | | | | | | `-- stmt
|
|
| | | | | | | | | |-- If: if
|
|
| | | | | | | | | |-- L_PAREN: (
|
|
| | | | | | | | | |-- cond
|
|
| | | | | | | | | | `-- lOrExp
|
|
| | | | | | | | | | `-- lAndExp
|
|
| | | | | | | | | | `-- eqExp
|
|
| | | | | | | | | | `-- relExp
|
|
| | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | `-- Ident: x
|
|
| | | | | | | | | | |-- ModOp: %
|
|
| | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | `-- number
|
|
| | | | | | | | | | `-- IntConst: 2
|
|
| | | | | | | | | |-- R_PAREN: )
|
|
| | | | | | | | | |-- stmt
|
|
| | | | | | | | | | `-- block
|
|
| | | | | | | | | | |-- L_BRACE: {
|
|
| | | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | |-- If: if
|
|
| | | | | | | | | | | |-- L_PAREN: (
|
|
| | | | | | | | | | | |-- cond
|
|
| | | | | | | | | | | | `-- lOrExp
|
|
| | | | | | | | | | | | `-- lAndExp
|
|
| | | | | | | | | | | | `-- eqExp
|
|
| | | | | | | | | | | | |-- eqExp
|
|
| | | | | | | | | | | | | `-- relExp
|
|
| | | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | | `-- Ident: y
|
|
| | | | | | | | | | | | | |-- ModOp: %
|
|
| | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | | `-- IntConst: 2
|
|
| | | | | | | | | | | | |-- EqOp: ==
|
|
| | | | | | | | | | | | `-- relExp
|
|
| | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | `-- IntConst: 0
|
|
| | | | | | | | | | | |-- R_PAREN: )
|
|
| | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | `-- block
|
|
| | | | | | | | | | | |-- L_BRACE: {
|
|
| | | | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | | |-- addExp
|
|
| | | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | | | | | | |-- AddOp: +
|
|
| | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | | | `-- IntConst: 1
|
|
| | | | | | | | | | | | | |-- MulOp: *
|
|
| | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | |-- Ident: SHIFT_TABLE
|
|
| | | | | | | | | | | | | |-- L_BRACKET: [
|
|
| | | | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | | `-- Ident: i
|
|
| | | | | | | | | | | | | `-- R_BRACKET: ]
|
|
| | | | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | | | `-- R_BRACE: }
|
|
| | | | | | | | | | `-- R_BRACE: }
|
|
| | | | | | | | | |-- Else: else
|
|
| | | | | | | | | `-- stmt
|
|
| | | | | | | | | |-- If: if
|
|
| | | | | | | | | |-- L_PAREN: (
|
|
| | | | | | | | | |-- cond
|
|
| | | | | | | | | | `-- lOrExp
|
|
| | | | | | | | | | `-- lAndExp
|
|
| | | | | | | | | | `-- eqExp
|
|
| | | | | | | | | | `-- relExp
|
|
| | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | `-- Ident: y
|
|
| | | | | | | | | | |-- ModOp: %
|
|
| | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | `-- number
|
|
| | | | | | | | | | `-- IntConst: 2
|
|
| | | | | | | | | |-- R_PAREN: )
|
|
| | | | | | | | | `-- stmt
|
|
| | | | | | | | | `-- block
|
|
| | | | | | | | | |-- L_BRACE: {
|
|
| | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | |-- addExp
|
|
| | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | | | | |-- AddOp: +
|
|
| | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | `-- IntConst: 1
|
|
| | | | | | | | | | | |-- MulOp: *
|
|
| | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | |-- Ident: SHIFT_TABLE
|
|
| | | | | | | | | | | |-- L_BRACKET: [
|
|
| | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | `-- Ident: i
|
|
| | | | | | | | | | | `-- R_BRACKET: ]
|
|
| | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | `-- R_BRACE: }
|
|
| | | | | | | | |-- blockItem
|
|
| | | | | | | | | `-- stmt
|
|
| | | | | | | | | |-- lVal
|
|
| | | | | | | | | | `-- Ident: x
|
|
| | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | |-- exp
|
|
| | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | `-- Ident: x
|
|
| | | | | | | | | | |-- DivOp: /
|
|
| | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | `-- number
|
|
| | | | | | | | | | `-- IntConst: 2
|
|
| | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | |-- blockItem
|
|
| | | | | | | | | `-- stmt
|
|
| | | | | | | | | |-- lVal
|
|
| | | | | | | | | | `-- Ident: y
|
|
| | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | |-- exp
|
|
| | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | `-- Ident: y
|
|
| | | | | | | | | | |-- DivOp: /
|
|
| | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | `-- number
|
|
| | | | | | | | | | `-- IntConst: 2
|
|
| | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | |-- blockItem
|
|
| | | | | | | | | `-- stmt
|
|
| | | | | | | | | |-- lVal
|
|
| | | | | | | | | | `-- Ident: i
|
|
| | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | |-- exp
|
|
| | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | |-- addExp
|
|
| | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | `-- Ident: i
|
|
| | | | | | | | | | |-- AddOp: +
|
|
| | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | `-- number
|
|
| | | | | | | | | | `-- IntConst: 1
|
|
| | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | `-- R_BRACE: }
|
|
| | | | | | | |-- blockItem
|
|
| | | | | | | | `-- stmt
|
|
| | | | | | | | |-- lVal
|
|
| | | | | | | | | `-- Ident: sum
|
|
| | | | | | | | |-- Assign: =
|
|
| | | | | | | | |-- exp
|
|
| | | | | | | | | `-- addExp
|
|
| | | | | | | | | `-- mulExp
|
|
| | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | `-- lVal
|
|
| | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | `-- Semi: ;
|
|
| | | | | | | |-- blockItem
|
|
| | | | | | | | `-- stmt
|
|
| | | | | | | | |-- lVal
|
|
| | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | |-- Assign: =
|
|
| | | | | | | | |-- 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
|
|
| | | | | | | | |-- lVal
|
|
| | | | | | | | | `-- Ident: x
|
|
| | | | | | | | |-- Assign: =
|
|
| | | | | | | | |-- exp
|
|
| | | | | | | | | `-- addExp
|
|
| | | | | | | | | `-- mulExp
|
|
| | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | `-- lVal
|
|
| | | | | | | | | `-- Ident: al
|
|
| | | | | | | | `-- Semi: ;
|
|
| | | | | | | |-- blockItem
|
|
| | | | | | | | `-- stmt
|
|
| | | | | | | | |-- lVal
|
|
| | | | | | | | | `-- Ident: y
|
|
| | | | | | | | |-- Assign: =
|
|
| | | | | | | | |-- exp
|
|
| | | | | | | | | `-- addExp
|
|
| | | | | | | | | `-- mulExp
|
|
| | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | `-- lVal
|
|
| | | | | | | | | `-- Ident: c
|
|
| | | | | | | | `-- Semi: ;
|
|
| | | | | | | |-- blockItem
|
|
| | | | | | | | `-- stmt
|
|
| | | | | | | | |-- While: while
|
|
| | | | | | | | |-- L_PAREN: (
|
|
| | | | | | | | |-- cond
|
|
| | | | | | | | | `-- lOrExp
|
|
| | | | | | | | | `-- lAndExp
|
|
| | | | | | | | | `-- eqExp
|
|
| | | | | | | | | `-- relExp
|
|
| | | | | | | | | |-- relExp
|
|
| | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | `-- Ident: i
|
|
| | | | | | | | | |-- LtOp: <
|
|
| | | | | | | | | `-- addExp
|
|
| | | | | | | | | `-- mulExp
|
|
| | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | `-- number
|
|
| | | | | | | | | `-- IntConst: 16
|
|
| | | | | | | | |-- R_PAREN: )
|
|
| | | | | | | | `-- stmt
|
|
| | | | | | | | `-- block
|
|
| | | | | | | | |-- L_BRACE: {
|
|
| | | | | | | | |-- blockItem
|
|
| | | | | | | | | `-- stmt
|
|
| | | | | | | | | |-- If: if
|
|
| | | | | | | | | |-- L_PAREN: (
|
|
| | | | | | | | | |-- cond
|
|
| | | | | | | | | | `-- lOrExp
|
|
| | | | | | | | | | `-- lAndExp
|
|
| | | | | | | | | | |-- lAndExp
|
|
| | | | | | | | | | | `-- eqExp
|
|
| | | | | | | | | | | `-- relExp
|
|
| | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | `-- Ident: x
|
|
| | | | | | | | | | | |-- ModOp: %
|
|
| | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | `-- IntConst: 2
|
|
| | | | | | | | | | |-- AndOp: &&
|
|
| | | | | | | | | | `-- eqExp
|
|
| | | | | | | | | | `-- relExp
|
|
| | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | `-- Ident: y
|
|
| | | | | | | | | | |-- ModOp: %
|
|
| | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | `-- number
|
|
| | | | | | | | | | `-- IntConst: 2
|
|
| | | | | | | | | |-- R_PAREN: )
|
|
| | | | | | | | | `-- stmt
|
|
| | | | | | | | | `-- block
|
|
| | | | | | | | | |-- L_BRACE: {
|
|
| | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | |-- addExp
|
|
| | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | | | | |-- AddOp: +
|
|
| | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | `-- IntConst: 1
|
|
| | | | | | | | | | | |-- MulOp: *
|
|
| | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | |-- Ident: SHIFT_TABLE
|
|
| | | | | | | | | | | |-- L_BRACKET: [
|
|
| | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | `-- Ident: i
|
|
| | | | | | | | | | | `-- R_BRACKET: ]
|
|
| | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | `-- R_BRACE: }
|
|
| | | | | | | | |-- blockItem
|
|
| | | | | | | | | `-- stmt
|
|
| | | | | | | | | |-- lVal
|
|
| | | | | | | | | | `-- Ident: x
|
|
| | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | |-- exp
|
|
| | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | `-- Ident: x
|
|
| | | | | | | | | | |-- DivOp: /
|
|
| | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | `-- number
|
|
| | | | | | | | | | `-- IntConst: 2
|
|
| | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | |-- blockItem
|
|
| | | | | | | | | `-- stmt
|
|
| | | | | | | | | |-- lVal
|
|
| | | | | | | | | | `-- Ident: y
|
|
| | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | |-- exp
|
|
| | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | `-- Ident: y
|
|
| | | | | | | | | | |-- DivOp: /
|
|
| | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | `-- number
|
|
| | | | | | | | | | `-- IntConst: 2
|
|
| | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | |-- blockItem
|
|
| | | | | | | | | `-- stmt
|
|
| | | | | | | | | |-- lVal
|
|
| | | | | | | | | | `-- Ident: i
|
|
| | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | |-- exp
|
|
| | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | |-- addExp
|
|
| | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | `-- Ident: i
|
|
| | | | | | | | | | |-- AddOp: +
|
|
| | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | `-- number
|
|
| | | | | | | | | | `-- IntConst: 1
|
|
| | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | `-- R_BRACE: }
|
|
| | | | | | | |-- blockItem
|
|
| | | | | | | | `-- stmt
|
|
| | | | | | | | |-- lVal
|
|
| | | | | | | | | `-- Ident: c
|
|
| | | | | | | | |-- Assign: =
|
|
| | | | | | | | |-- exp
|
|
| | | | | | | | | `-- addExp
|
|
| | | | | | | | | `-- mulExp
|
|
| | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | `-- lVal
|
|
| | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | `-- Semi: ;
|
|
| | | | | | | |-- blockItem
|
|
| | | | | | | | `-- stmt
|
|
| | | | | | | | |-- If: if
|
|
| | | | | | | | |-- L_PAREN: (
|
|
| | | | | | | | |-- cond
|
|
| | | | | | | | | `-- lOrExp
|
|
| | | | | | | | | `-- lAndExp
|
|
| | | | | | | | | `-- eqExp
|
|
| | | | | | | | | `-- relExp
|
|
| | | | | | | | | |-- relExp
|
|
| | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | |-- L_PAREN: (
|
|
| | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | `-- IntConst: 1
|
|
| | | | | | | | | | `-- R_PAREN: )
|
|
| | | | | | | | | |-- GtOp: >
|
|
| | | | | | | | | `-- addExp
|
|
| | | | | | | | | `-- mulExp
|
|
| | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | `-- number
|
|
| | | | | | | | | `-- IntConst: 15
|
|
| | | | | | | | |-- R_PAREN: )
|
|
| | | | | | | | |-- stmt
|
|
| | | | | | | | | `-- block
|
|
| | | | | | | | | |-- L_BRACE: {
|
|
| | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | `-- IntConst: 0
|
|
| | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | `-- R_BRACE: }
|
|
| | | | | | | | |-- Else: else
|
|
| | | | | | | | `-- stmt
|
|
| | | | | | | | `-- block
|
|
| | | | | | | | |-- L_BRACE: {
|
|
| | | | | | | | |-- blockItem
|
|
| | | | | | | | | `-- stmt
|
|
| | | | | | | | | |-- lVal
|
|
| | | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | |-- 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
|
|
| | | | | | | | | |-- lVal
|
|
| | | | | | | | | | `-- Ident: x
|
|
| | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | |-- exp
|
|
| | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | |-- L_PAREN: (
|
|
| | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | `-- Ident: c
|
|
| | | | | | | | | | | `-- R_PAREN: )
|
|
| | | | | | | | | | |-- MulOp: *
|
|
| | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | |-- Ident: SHIFT_TABLE
|
|
| | | | | | | | | | |-- L_BRACKET: [
|
|
| | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | `-- IntConst: 1
|
|
| | | | | | | | | | `-- R_BRACKET: ]
|
|
| | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | |-- blockItem
|
|
| | | | | | | | | `-- stmt
|
|
| | | | | | | | | |-- lVal
|
|
| | | | | | | | | | `-- Ident: y
|
|
| | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | |-- exp
|
|
| | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | `-- number
|
|
| | | | | | | | | | `-- IntConst: 0xffff
|
|
| | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | |-- blockItem
|
|
| | | | | | | | | `-- stmt
|
|
| | | | | | | | | |-- While: while
|
|
| | | | | | | | | |-- L_PAREN: (
|
|
| | | | | | | | | |-- cond
|
|
| | | | | | | | | | `-- lOrExp
|
|
| | | | | | | | | | `-- lAndExp
|
|
| | | | | | | | | | `-- eqExp
|
|
| | | | | | | | | | `-- relExp
|
|
| | | | | | | | | | |-- relExp
|
|
| | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | `-- Ident: i
|
|
| | | | | | | | | | |-- LtOp: <
|
|
| | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | `-- number
|
|
| | | | | | | | | | `-- IntConst: 16
|
|
| | | | | | | | | |-- R_PAREN: )
|
|
| | | | | | | | | `-- stmt
|
|
| | | | | | | | | `-- block
|
|
| | | | | | | | | |-- L_BRACE: {
|
|
| | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | |-- If: if
|
|
| | | | | | | | | | |-- L_PAREN: (
|
|
| | | | | | | | | | |-- cond
|
|
| | | | | | | | | | | `-- lOrExp
|
|
| | | | | | | | | | | `-- lAndExp
|
|
| | | | | | | | | | | |-- lAndExp
|
|
| | | | | | | | | | | | `-- eqExp
|
|
| | | | | | | | | | | | `-- relExp
|
|
| | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | `-- Ident: x
|
|
| | | | | | | | | | | | |-- ModOp: %
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | `-- IntConst: 2
|
|
| | | | | | | | | | | |-- AndOp: &&
|
|
| | | | | | | | | | | `-- eqExp
|
|
| | | | | | | | | | | `-- relExp
|
|
| | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | `-- Ident: y
|
|
| | | | | | | | | | | |-- ModOp: %
|
|
| | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | `-- IntConst: 2
|
|
| | | | | | | | | | |-- R_PAREN: )
|
|
| | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | `-- block
|
|
| | | | | | | | | | |-- L_BRACE: {
|
|
| | | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | |-- addExp
|
|
| | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | | | | | |-- AddOp: +
|
|
| | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | | `-- IntConst: 1
|
|
| | | | | | | | | | | | |-- MulOp: *
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | |-- Ident: SHIFT_TABLE
|
|
| | | | | | | | | | | | |-- L_BRACKET: [
|
|
| | | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | `-- Ident: i
|
|
| | | | | | | | | | | | `-- R_BRACKET: ]
|
|
| | | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | | `-- R_BRACE: }
|
|
| | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | `-- Ident: x
|
|
| | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | `-- Ident: x
|
|
| | | | | | | | | | | |-- DivOp: /
|
|
| | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | `-- IntConst: 2
|
|
| | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | `-- Ident: y
|
|
| | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | `-- Ident: y
|
|
| | | | | | | | | | | |-- DivOp: /
|
|
| | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | `-- IntConst: 2
|
|
| | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | `-- Ident: i
|
|
| | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | |-- addExp
|
|
| | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | `-- Ident: i
|
|
| | | | | | | | | | | |-- AddOp: +
|
|
| | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | `-- IntConst: 1
|
|
| | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | `-- R_BRACE: }
|
|
| | | | | | | | `-- R_BRACE: }
|
|
| | | | | | | |-- blockItem
|
|
| | | | | | | | `-- stmt
|
|
| | | | | | | | |-- lVal
|
|
| | | | | | | | | `-- Ident: c
|
|
| | | | | | | | |-- Assign: =
|
|
| | | | | | | | |-- exp
|
|
| | | | | | | | | `-- addExp
|
|
| | | | | | | | | `-- mulExp
|
|
| | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | `-- lVal
|
|
| | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | `-- Semi: ;
|
|
| | | | | | | |-- blockItem
|
|
| | | | | | | | `-- stmt
|
|
| | | | | | | | |-- lVal
|
|
| | | | | | | | | `-- Ident: al
|
|
| | | | | | | | |-- Assign: =
|
|
| | | | | | | | |-- exp
|
|
| | | | | | | | | `-- addExp
|
|
| | | | | | | | | `-- mulExp
|
|
| | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | `-- lVal
|
|
| | | | | | | | | `-- Ident: sum
|
|
| | | | | | | | `-- Semi: ;
|
|
| | | | | | | `-- R_BRACE: }
|
|
| | | | | | |-- blockItem
|
|
| | | | | | | `-- stmt
|
|
| | | | | | | |-- lVal
|
|
| | | | | | | | `-- Ident: ans
|
|
| | | | | | | |-- Assign: =
|
|
| | | | | | | |-- exp
|
|
| | | | | | | | `-- addExp
|
|
| | | | | | | | `-- mulExp
|
|
| | | | | | | | `-- unaryExp
|
|
| | | | | | | | `-- primaryExp
|
|
| | | | | | | | `-- lVal
|
|
| | | | | | | | `-- Ident: al
|
|
| | | | | | | `-- Semi: ;
|
|
| | | | | | `-- R_BRACE: }
|
|
| | | | | |-- blockItem
|
|
| | | | | | `-- stmt
|
|
| | | | | | |-- lVal
|
|
| | | | | | | `-- Ident: ml
|
|
| | | | | | |-- Assign: =
|
|
| | | | | | |-- exp
|
|
| | | | | | | `-- addExp
|
|
| | | | | | | `-- mulExp
|
|
| | | | | | | `-- unaryExp
|
|
| | | | | | | `-- primaryExp
|
|
| | | | | | | `-- lVal
|
|
| | | | | | | `-- Ident: ans
|
|
| | | | | | `-- Semi: ;
|
|
| | | | | |-- blockItem
|
|
| | | | | | `-- stmt
|
|
| | | | | | |-- lVal
|
|
| | | | | | | `-- Ident: x
|
|
| | | | | | |-- Assign: =
|
|
| | | | | | |-- exp
|
|
| | | | | | | `-- addExp
|
|
| | | | | | | `-- mulExp
|
|
| | | | | | | `-- unaryExp
|
|
| | | | | | | `-- primaryExp
|
|
| | | | | | | `-- lVal
|
|
| | | | | | | `-- Ident: mr
|
|
| | | | | | `-- Semi: ;
|
|
| | | | | |-- blockItem
|
|
| | | | | | `-- stmt
|
|
| | | | | | |-- lVal
|
|
| | | | | | | `-- Ident: y
|
|
| | | | | | |-- Assign: =
|
|
| | | | | | |-- exp
|
|
| | | | | | | `-- addExp
|
|
| | | | | | | `-- mulExp
|
|
| | | | | | | `-- unaryExp
|
|
| | | | | | | `-- primaryExp
|
|
| | | | | | | `-- number
|
|
| | | | | | | `-- IntConst: 1
|
|
| | | | | | `-- Semi: ;
|
|
| | | | | |-- blockItem
|
|
| | | | | | `-- stmt
|
|
| | | | | | |-- If: if
|
|
| | | | | | |-- L_PAREN: (
|
|
| | | | | | |-- cond
|
|
| | | | | | | `-- lOrExp
|
|
| | | | | | | `-- lAndExp
|
|
| | | | | | | `-- eqExp
|
|
| | | | | | | `-- relExp
|
|
| | | | | | | |-- relExp
|
|
| | | | | | | | `-- addExp
|
|
| | | | | | | | `-- mulExp
|
|
| | | | | | | | `-- unaryExp
|
|
| | | | | | | | `-- primaryExp
|
|
| | | | | | | | `-- lVal
|
|
| | | | | | | | `-- Ident: y
|
|
| | | | | | | |-- GeOp: >=
|
|
| | | | | | | `-- addExp
|
|
| | | | | | | `-- mulExp
|
|
| | | | | | | `-- unaryExp
|
|
| | | | | | | `-- primaryExp
|
|
| | | | | | | `-- number
|
|
| | | | | | | `-- IntConst: 15
|
|
| | | | | | |-- R_PAREN: )
|
|
| | | | | | |-- stmt
|
|
| | | | | | | `-- block
|
|
| | | | | | | |-- L_BRACE: {
|
|
| | | | | | | |-- blockItem
|
|
| | | | | | | | `-- stmt
|
|
| | | | | | | | |-- If: if
|
|
| | | | | | | | |-- L_PAREN: (
|
|
| | | | | | | | |-- cond
|
|
| | | | | | | | | `-- lOrExp
|
|
| | | | | | | | | `-- lAndExp
|
|
| | | | | | | | | `-- eqExp
|
|
| | | | | | | | | `-- relExp
|
|
| | | | | | | | | |-- relExp
|
|
| | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | `-- Ident: x
|
|
| | | | | | | | | |-- LtOp: <
|
|
| | | | | | | | | `-- addExp
|
|
| | | | | | | | | `-- mulExp
|
|
| | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | `-- number
|
|
| | | | | | | | | `-- IntConst: 0
|
|
| | | | | | | | |-- R_PAREN: )
|
|
| | | | | | | | |-- stmt
|
|
| | | | | | | | | `-- block
|
|
| | | | | | | | | |-- L_BRACE: {
|
|
| | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | `-- IntConst: 0xffff
|
|
| | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | `-- R_BRACE: }
|
|
| | | | | | | | |-- Else: else
|
|
| | | | | | | | `-- stmt
|
|
| | | | | | | | `-- block
|
|
| | | | | | | | |-- L_BRACE: {
|
|
| | | | | | | | |-- blockItem
|
|
| | | | | | | | | `-- stmt
|
|
| | | | | | | | | |-- lVal
|
|
| | | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | |-- exp
|
|
| | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | `-- number
|
|
| | | | | | | | | | `-- IntConst: 0
|
|
| | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | `-- R_BRACE: }
|
|
| | | | | | | `-- R_BRACE: }
|
|
| | | | | | |-- Else: else
|
|
| | | | | | `-- stmt
|
|
| | | | | | |-- If: if
|
|
| | | | | | |-- L_PAREN: (
|
|
| | | | | | |-- cond
|
|
| | | | | | | `-- lOrExp
|
|
| | | | | | | `-- lAndExp
|
|
| | | | | | | `-- eqExp
|
|
| | | | | | | `-- relExp
|
|
| | | | | | | |-- relExp
|
|
| | | | | | | | `-- addExp
|
|
| | | | | | | | `-- mulExp
|
|
| | | | | | | | `-- unaryExp
|
|
| | | | | | | | `-- primaryExp
|
|
| | | | | | | | `-- lVal
|
|
| | | | | | | | `-- Ident: y
|
|
| | | | | | | |-- GtOp: >
|
|
| | | | | | | `-- addExp
|
|
| | | | | | | `-- mulExp
|
|
| | | | | | | `-- unaryExp
|
|
| | | | | | | `-- primaryExp
|
|
| | | | | | | `-- number
|
|
| | | | | | | `-- IntConst: 0
|
|
| | | | | | |-- R_PAREN: )
|
|
| | | | | | |-- stmt
|
|
| | | | | | | `-- block
|
|
| | | | | | | |-- L_BRACE: {
|
|
| | | | | | | |-- blockItem
|
|
| | | | | | | | `-- stmt
|
|
| | | | | | | | |-- If: if
|
|
| | | | | | | | |-- L_PAREN: (
|
|
| | | | | | | | |-- cond
|
|
| | | | | | | | | `-- lOrExp
|
|
| | | | | | | | | `-- lAndExp
|
|
| | | | | | | | | `-- eqExp
|
|
| | | | | | | | | `-- relExp
|
|
| | | | | | | | | |-- relExp
|
|
| | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | `-- Ident: x
|
|
| | | | | | | | | |-- GtOp: >
|
|
| | | | | | | | | `-- addExp
|
|
| | | | | | | | | `-- mulExp
|
|
| | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | `-- number
|
|
| | | | | | | | | `-- IntConst: 0x7fff
|
|
| | | | | | | | |-- R_PAREN: )
|
|
| | | | | | | | |-- stmt
|
|
| | | | | | | | | `-- block
|
|
| | | | | | | | | |-- L_BRACE: {
|
|
| | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | `-- Ident: x
|
|
| | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | `-- Ident: x
|
|
| | | | | | | | | | | |-- DivOp: /
|
|
| | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | |-- Ident: SHIFT_TABLE
|
|
| | | | | | | | | | | |-- L_BRACKET: [
|
|
| | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | `-- Ident: y
|
|
| | | | | | | | | | | `-- R_BRACKET: ]
|
|
| | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | |-- addExp
|
|
| | | | | | | | | | | | |-- addExp
|
|
| | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | `-- Ident: x
|
|
| | | | | | | | | | | | |-- AddOp: +
|
|
| | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | `-- IntConst: 65536
|
|
| | | | | | | | | | | |-- SubOp: -
|
|
| | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | |-- Ident: SHIFT_TABLE
|
|
| | | | | | | | | | | |-- L_BRACKET: [
|
|
| | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | |-- addExp
|
|
| | | | | | | | | | | | | |-- addExp
|
|
| | | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | | | `-- IntConst: 15
|
|
| | | | | | | | | | | | | |-- SubOp: -
|
|
| | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | `-- Ident: y
|
|
| | | | | | | | | | | | |-- AddOp: +
|
|
| | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | `-- IntConst: 1
|
|
| | | | | | | | | | | `-- R_BRACKET: ]
|
|
| | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | `-- R_BRACE: }
|
|
| | | | | | | | |-- Else: else
|
|
| | | | | | | | `-- stmt
|
|
| | | | | | | | `-- block
|
|
| | | | | | | | |-- L_BRACE: {
|
|
| | | | | | | | |-- blockItem
|
|
| | | | | | | | | `-- stmt
|
|
| | | | | | | | | |-- lVal
|
|
| | | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | |-- exp
|
|
| | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | `-- Ident: x
|
|
| | | | | | | | | | |-- DivOp: /
|
|
| | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | |-- Ident: SHIFT_TABLE
|
|
| | | | | | | | | | |-- L_BRACKET: [
|
|
| | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | `-- Ident: y
|
|
| | | | | | | | | | `-- R_BRACKET: ]
|
|
| | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | `-- R_BRACE: }
|
|
| | | | | | | `-- R_BRACE: }
|
|
| | | | | | |-- Else: else
|
|
| | | | | | `-- stmt
|
|
| | | | | | `-- block
|
|
| | | | | | |-- L_BRACE: {
|
|
| | | | | | |-- blockItem
|
|
| | | | | | | `-- stmt
|
|
| | | | | | | |-- lVal
|
|
| | | | | | | | `-- Ident: ans
|
|
| | | | | | | |-- Assign: =
|
|
| | | | | | | |-- exp
|
|
| | | | | | | | `-- addExp
|
|
| | | | | | | | `-- mulExp
|
|
| | | | | | | | `-- unaryExp
|
|
| | | | | | | | `-- primaryExp
|
|
| | | | | | | | `-- lVal
|
|
| | | | | | | | `-- Ident: x
|
|
| | | | | | | `-- Semi: ;
|
|
| | | | | | `-- R_BRACE: }
|
|
| | | | | |-- blockItem
|
|
| | | | | | `-- stmt
|
|
| | | | | | |-- lVal
|
|
| | | | | | | `-- Ident: mr
|
|
| | | | | | |-- Assign: =
|
|
| | | | | | |-- exp
|
|
| | | | | | | `-- addExp
|
|
| | | | | | | `-- mulExp
|
|
| | | | | | | `-- unaryExp
|
|
| | | | | | | `-- primaryExp
|
|
| | | | | | | `-- lVal
|
|
| | | | | | | `-- Ident: ans
|
|
| | | | | | `-- Semi: ;
|
|
| | | | | `-- R_BRACE: }
|
|
| | | | |-- blockItem
|
|
| | | | | `-- stmt
|
|
| | | | | |-- lVal
|
|
| | | | | | `-- Ident: ans
|
|
| | | | | |-- Assign: =
|
|
| | | | | |-- exp
|
|
| | | | | | `-- addExp
|
|
| | | | | | `-- mulExp
|
|
| | | | | | `-- unaryExp
|
|
| | | | | | `-- primaryExp
|
|
| | | | | | `-- lVal
|
|
| | | | | | `-- Ident: mres
|
|
| | | | | `-- Semi: ;
|
|
| | | | `-- R_BRACE: }
|
|
| | | |-- blockItem
|
|
| | | | `-- stmt
|
|
| | | | |-- lVal
|
|
| | | | | `-- Ident: pl
|
|
| | | | |-- Assign: =
|
|
| | | | |-- exp
|
|
| | | | | `-- addExp
|
|
| | | | | `-- mulExp
|
|
| | | | | `-- unaryExp
|
|
| | | | | `-- primaryExp
|
|
| | | | | `-- lVal
|
|
| | | | | `-- Ident: ans
|
|
| | | | `-- Semi: ;
|
|
| | | |-- blockItem
|
|
| | | | `-- stmt
|
|
| | | | |-- lVal
|
|
| | | | | `-- Ident: x
|
|
| | | | |-- Assign: =
|
|
| | | | |-- exp
|
|
| | | | | `-- addExp
|
|
| | | | | `-- mulExp
|
|
| | | | | `-- unaryExp
|
|
| | | | | `-- primaryExp
|
|
| | | | | `-- lVal
|
|
| | | | | `-- Ident: pr
|
|
| | | | `-- Semi: ;
|
|
| | | |-- blockItem
|
|
| | | | `-- stmt
|
|
| | | | |-- lVal
|
|
| | | | | `-- Ident: y
|
|
| | | | |-- Assign: =
|
|
| | | | |-- exp
|
|
| | | | | `-- addExp
|
|
| | | | | `-- mulExp
|
|
| | | | | `-- unaryExp
|
|
| | | | | `-- primaryExp
|
|
| | | | | `-- number
|
|
| | | | | `-- IntConst: 1
|
|
| | | | `-- Semi: ;
|
|
| | | |-- blockItem
|
|
| | | | `-- stmt
|
|
| | | | |-- If: if
|
|
| | | | |-- L_PAREN: (
|
|
| | | | |-- cond
|
|
| | | | | `-- lOrExp
|
|
| | | | | `-- lAndExp
|
|
| | | | | `-- eqExp
|
|
| | | | | `-- relExp
|
|
| | | | | |-- relExp
|
|
| | | | | | `-- addExp
|
|
| | | | | | `-- mulExp
|
|
| | | | | | `-- unaryExp
|
|
| | | | | | `-- primaryExp
|
|
| | | | | | `-- lVal
|
|
| | | | | | `-- Ident: y
|
|
| | | | | |-- GeOp: >=
|
|
| | | | | `-- addExp
|
|
| | | | | `-- mulExp
|
|
| | | | | `-- unaryExp
|
|
| | | | | `-- primaryExp
|
|
| | | | | `-- number
|
|
| | | | | `-- IntConst: 15
|
|
| | | | |-- R_PAREN: )
|
|
| | | | |-- stmt
|
|
| | | | | `-- block
|
|
| | | | | |-- L_BRACE: {
|
|
| | | | | |-- blockItem
|
|
| | | | | | `-- stmt
|
|
| | | | | | |-- If: if
|
|
| | | | | | |-- L_PAREN: (
|
|
| | | | | | |-- cond
|
|
| | | | | | | `-- lOrExp
|
|
| | | | | | | `-- lAndExp
|
|
| | | | | | | `-- eqExp
|
|
| | | | | | | `-- relExp
|
|
| | | | | | | |-- relExp
|
|
| | | | | | | | `-- addExp
|
|
| | | | | | | | `-- mulExp
|
|
| | | | | | | | `-- unaryExp
|
|
| | | | | | | | `-- primaryExp
|
|
| | | | | | | | `-- lVal
|
|
| | | | | | | | `-- Ident: x
|
|
| | | | | | | |-- LtOp: <
|
|
| | | | | | | `-- addExp
|
|
| | | | | | | `-- mulExp
|
|
| | | | | | | `-- unaryExp
|
|
| | | | | | | `-- primaryExp
|
|
| | | | | | | `-- number
|
|
| | | | | | | `-- IntConst: 0
|
|
| | | | | | |-- R_PAREN: )
|
|
| | | | | | |-- stmt
|
|
| | | | | | | `-- block
|
|
| | | | | | | |-- L_BRACE: {
|
|
| | | | | | | |-- blockItem
|
|
| | | | | | | | `-- stmt
|
|
| | | | | | | | |-- lVal
|
|
| | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | |-- Assign: =
|
|
| | | | | | | | |-- exp
|
|
| | | | | | | | | `-- addExp
|
|
| | | | | | | | | `-- mulExp
|
|
| | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | `-- number
|
|
| | | | | | | | | `-- IntConst: 0xffff
|
|
| | | | | | | | `-- Semi: ;
|
|
| | | | | | | `-- R_BRACE: }
|
|
| | | | | | |-- Else: else
|
|
| | | | | | `-- stmt
|
|
| | | | | | `-- block
|
|
| | | | | | |-- L_BRACE: {
|
|
| | | | | | |-- blockItem
|
|
| | | | | | | `-- stmt
|
|
| | | | | | | |-- lVal
|
|
| | | | | | | | `-- Ident: ans
|
|
| | | | | | | |-- Assign: =
|
|
| | | | | | | |-- exp
|
|
| | | | | | | | `-- addExp
|
|
| | | | | | | | `-- mulExp
|
|
| | | | | | | | `-- unaryExp
|
|
| | | | | | | | `-- primaryExp
|
|
| | | | | | | | `-- number
|
|
| | | | | | | | `-- IntConst: 0
|
|
| | | | | | | `-- Semi: ;
|
|
| | | | | | `-- R_BRACE: }
|
|
| | | | | `-- R_BRACE: }
|
|
| | | | |-- Else: else
|
|
| | | | `-- stmt
|
|
| | | | |-- If: if
|
|
| | | | |-- L_PAREN: (
|
|
| | | | |-- cond
|
|
| | | | | `-- lOrExp
|
|
| | | | | `-- lAndExp
|
|
| | | | | `-- eqExp
|
|
| | | | | `-- relExp
|
|
| | | | | |-- relExp
|
|
| | | | | | `-- addExp
|
|
| | | | | | `-- mulExp
|
|
| | | | | | `-- unaryExp
|
|
| | | | | | `-- primaryExp
|
|
| | | | | | `-- lVal
|
|
| | | | | | `-- Ident: y
|
|
| | | | | |-- GtOp: >
|
|
| | | | | `-- addExp
|
|
| | | | | `-- mulExp
|
|
| | | | | `-- unaryExp
|
|
| | | | | `-- primaryExp
|
|
| | | | | `-- number
|
|
| | | | | `-- IntConst: 0
|
|
| | | | |-- R_PAREN: )
|
|
| | | | |-- stmt
|
|
| | | | | `-- block
|
|
| | | | | |-- L_BRACE: {
|
|
| | | | | |-- blockItem
|
|
| | | | | | `-- stmt
|
|
| | | | | | |-- If: if
|
|
| | | | | | |-- L_PAREN: (
|
|
| | | | | | |-- cond
|
|
| | | | | | | `-- lOrExp
|
|
| | | | | | | `-- lAndExp
|
|
| | | | | | | `-- eqExp
|
|
| | | | | | | `-- relExp
|
|
| | | | | | | |-- relExp
|
|
| | | | | | | | `-- addExp
|
|
| | | | | | | | `-- mulExp
|
|
| | | | | | | | `-- unaryExp
|
|
| | | | | | | | `-- primaryExp
|
|
| | | | | | | | `-- lVal
|
|
| | | | | | | | `-- Ident: x
|
|
| | | | | | | |-- GtOp: >
|
|
| | | | | | | `-- addExp
|
|
| | | | | | | `-- mulExp
|
|
| | | | | | | `-- unaryExp
|
|
| | | | | | | `-- primaryExp
|
|
| | | | | | | `-- number
|
|
| | | | | | | `-- IntConst: 0x7fff
|
|
| | | | | | |-- R_PAREN: )
|
|
| | | | | | |-- stmt
|
|
| | | | | | | `-- block
|
|
| | | | | | | |-- L_BRACE: {
|
|
| | | | | | | |-- blockItem
|
|
| | | | | | | | `-- stmt
|
|
| | | | | | | | |-- lVal
|
|
| | | | | | | | | `-- Ident: x
|
|
| | | | | | | | |-- Assign: =
|
|
| | | | | | | | |-- exp
|
|
| | | | | | | | | `-- addExp
|
|
| | | | | | | | | `-- mulExp
|
|
| | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | `-- Ident: x
|
|
| | | | | | | | | |-- DivOp: /
|
|
| | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | `-- lVal
|
|
| | | | | | | | | |-- Ident: SHIFT_TABLE
|
|
| | | | | | | | | |-- L_BRACKET: [
|
|
| | | | | | | | | |-- exp
|
|
| | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | `-- Ident: y
|
|
| | | | | | | | | `-- R_BRACKET: ]
|
|
| | | | | | | | `-- Semi: ;
|
|
| | | | | | | |-- blockItem
|
|
| | | | | | | | `-- stmt
|
|
| | | | | | | | |-- lVal
|
|
| | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | |-- Assign: =
|
|
| | | | | | | | |-- exp
|
|
| | | | | | | | | `-- addExp
|
|
| | | | | | | | | |-- addExp
|
|
| | | | | | | | | | |-- addExp
|
|
| | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | `-- Ident: x
|
|
| | | | | | | | | | |-- AddOp: +
|
|
| | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | `-- number
|
|
| | | | | | | | | | `-- IntConst: 65536
|
|
| | | | | | | | | |-- SubOp: -
|
|
| | | | | | | | | `-- mulExp
|
|
| | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | `-- lVal
|
|
| | | | | | | | | |-- Ident: SHIFT_TABLE
|
|
| | | | | | | | | |-- L_BRACKET: [
|
|
| | | | | | | | | |-- exp
|
|
| | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | |-- addExp
|
|
| | | | | | | | | | | |-- addExp
|
|
| | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | `-- IntConst: 15
|
|
| | | | | | | | | | | |-- SubOp: -
|
|
| | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | `-- Ident: y
|
|
| | | | | | | | | | |-- AddOp: +
|
|
| | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | `-- number
|
|
| | | | | | | | | | `-- IntConst: 1
|
|
| | | | | | | | | `-- R_BRACKET: ]
|
|
| | | | | | | | `-- Semi: ;
|
|
| | | | | | | `-- R_BRACE: }
|
|
| | | | | | |-- Else: else
|
|
| | | | | | `-- stmt
|
|
| | | | | | `-- block
|
|
| | | | | | |-- L_BRACE: {
|
|
| | | | | | |-- blockItem
|
|
| | | | | | | `-- stmt
|
|
| | | | | | | |-- lVal
|
|
| | | | | | | | `-- Ident: ans
|
|
| | | | | | | |-- Assign: =
|
|
| | | | | | | |-- exp
|
|
| | | | | | | | `-- addExp
|
|
| | | | | | | | `-- mulExp
|
|
| | | | | | | | |-- mulExp
|
|
| | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | `-- lVal
|
|
| | | | | | | | | `-- Ident: x
|
|
| | | | | | | | |-- DivOp: /
|
|
| | | | | | | | `-- unaryExp
|
|
| | | | | | | | `-- primaryExp
|
|
| | | | | | | | `-- lVal
|
|
| | | | | | | | |-- Ident: SHIFT_TABLE
|
|
| | | | | | | | |-- L_BRACKET: [
|
|
| | | | | | | | |-- exp
|
|
| | | | | | | | | `-- addExp
|
|
| | | | | | | | | `-- mulExp
|
|
| | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | `-- lVal
|
|
| | | | | | | | | `-- Ident: y
|
|
| | | | | | | | `-- R_BRACKET: ]
|
|
| | | | | | | `-- Semi: ;
|
|
| | | | | | `-- R_BRACE: }
|
|
| | | | | `-- R_BRACE: }
|
|
| | | | |-- Else: else
|
|
| | | | `-- stmt
|
|
| | | | `-- block
|
|
| | | | |-- L_BRACE: {
|
|
| | | | |-- blockItem
|
|
| | | | | `-- stmt
|
|
| | | | | |-- lVal
|
|
| | | | | | `-- Ident: ans
|
|
| | | | | |-- Assign: =
|
|
| | | | | |-- exp
|
|
| | | | | | `-- addExp
|
|
| | | | | | `-- mulExp
|
|
| | | | | | `-- unaryExp
|
|
| | | | | | `-- primaryExp
|
|
| | | | | | `-- lVal
|
|
| | | | | | `-- Ident: x
|
|
| | | | | `-- Semi: ;
|
|
| | | | `-- R_BRACE: }
|
|
| | | |-- blockItem
|
|
| | | | `-- stmt
|
|
| | | | |-- lVal
|
|
| | | | | `-- Ident: pr
|
|
| | | | |-- Assign: =
|
|
| | | | |-- exp
|
|
| | | | | `-- addExp
|
|
| | | | | `-- mulExp
|
|
| | | | | `-- unaryExp
|
|
| | | | | `-- primaryExp
|
|
| | | | | `-- lVal
|
|
| | | | | `-- Ident: ans
|
|
| | | | `-- Semi: ;
|
|
| | | `-- R_BRACE: }
|
|
| | |-- blockItem
|
|
| | | `-- stmt
|
|
| | | |-- lVal
|
|
| | | | `-- Ident: ans
|
|
| | | |-- Assign: =
|
|
| | | |-- exp
|
|
| | | | `-- addExp
|
|
| | | | `-- mulExp
|
|
| | | | `-- unaryExp
|
|
| | | | `-- primaryExp
|
|
| | | | `-- lVal
|
|
| | | | `-- Ident: pres
|
|
| | | `-- Semi: ;
|
|
| | `-- R_BRACE: }
|
|
| |-- blockItem
|
|
| | `-- stmt
|
|
| | |-- exp
|
|
| | | `-- addExp
|
|
| | | `-- mulExp
|
|
| | | `-- unaryExp
|
|
| | | |-- Ident: putint
|
|
| | | |-- L_PAREN: (
|
|
| | | |-- funcRParams
|
|
| | | | `-- exp
|
|
| | | | `-- addExp
|
|
| | | | `-- mulExp
|
|
| | | | `-- unaryExp
|
|
| | | | `-- primaryExp
|
|
| | | | `-- lVal
|
|
| | | | `-- Ident: ans
|
|
| | | `-- R_PAREN: )
|
|
| | `-- Semi: ;
|
|
| |-- blockItem
|
|
| | `-- stmt
|
|
| | |-- exp
|
|
| | | `-- addExp
|
|
| | | `-- mulExp
|
|
| | | `-- unaryExp
|
|
| | | |-- Ident: putch
|
|
| | | |-- L_PAREN: (
|
|
| | | |-- funcRParams
|
|
| | | | `-- exp
|
|
| | | | `-- addExp
|
|
| | | | `-- mulExp
|
|
| | | | `-- unaryExp
|
|
| | | | `-- primaryExp
|
|
| | | | `-- number
|
|
| | | | `-- IntConst: 10
|
|
| | | `-- R_PAREN: )
|
|
| | `-- Semi: ;
|
|
| |-- blockItem
|
|
| | `-- stmt
|
|
| | `-- block
|
|
| | |-- L_BRACE: {
|
|
| | |-- blockItem
|
|
| | | `-- decl
|
|
| | | `-- varDecl
|
|
| | | |-- bType
|
|
| | | | `-- Int: int
|
|
| | | |-- varDef
|
|
| | | | |-- Ident: pl
|
|
| | | | |-- Assign: =
|
|
| | | | `-- initVal
|
|
| | | | `-- exp
|
|
| | | | `-- addExp
|
|
| | | | `-- mulExp
|
|
| | | | `-- unaryExp
|
|
| | | | `-- primaryExp
|
|
| | | | `-- number
|
|
| | | | `-- IntConst: 2
|
|
| | | |-- Comma: ,
|
|
| | | |-- varDef
|
|
| | | | |-- Ident: pr
|
|
| | | | |-- Assign: =
|
|
| | | | `-- initVal
|
|
| | | | `-- exp
|
|
| | | | `-- addExp
|
|
| | | | `-- mulExp
|
|
| | | | `-- unaryExp
|
|
| | | | `-- primaryExp
|
|
| | | | `-- number
|
|
| | | | `-- IntConst: 1
|
|
| | | |-- Comma: ,
|
|
| | | |-- varDef
|
|
| | | | |-- Ident: pres
|
|
| | | | |-- Assign: =
|
|
| | | | `-- initVal
|
|
| | | | `-- exp
|
|
| | | | `-- addExp
|
|
| | | | `-- mulExp
|
|
| | | | `-- unaryExp
|
|
| | | | `-- primaryExp
|
|
| | | | `-- number
|
|
| | | | `-- IntConst: 1
|
|
| | | `-- Semi: ;
|
|
| | |-- blockItem
|
|
| | | `-- stmt
|
|
| | | |-- While: while
|
|
| | | |-- L_PAREN: (
|
|
| | | |-- cond
|
|
| | | | `-- lOrExp
|
|
| | | | `-- lAndExp
|
|
| | | | `-- eqExp
|
|
| | | | `-- relExp
|
|
| | | | |-- relExp
|
|
| | | | | `-- addExp
|
|
| | | | | `-- mulExp
|
|
| | | | | `-- unaryExp
|
|
| | | | | `-- primaryExp
|
|
| | | | | `-- lVal
|
|
| | | | | `-- Ident: pr
|
|
| | | | |-- GtOp: >
|
|
| | | | `-- addExp
|
|
| | | | `-- mulExp
|
|
| | | | `-- unaryExp
|
|
| | | | `-- primaryExp
|
|
| | | | `-- number
|
|
| | | | `-- IntConst: 0
|
|
| | | |-- R_PAREN: )
|
|
| | | `-- stmt
|
|
| | | `-- block
|
|
| | | |-- L_BRACE: {
|
|
| | | |-- blockItem
|
|
| | | | `-- stmt
|
|
| | | | |-- lVal
|
|
| | | | | `-- Ident: ans
|
|
| | | | |-- Assign: =
|
|
| | | | |-- 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
|
|
| | | | |-- lVal
|
|
| | | | | `-- Ident: x
|
|
| | | | |-- Assign: =
|
|
| | | | |-- exp
|
|
| | | | | `-- addExp
|
|
| | | | | `-- mulExp
|
|
| | | | | `-- unaryExp
|
|
| | | | | `-- primaryExp
|
|
| | | | | `-- lVal
|
|
| | | | | `-- Ident: pr
|
|
| | | | `-- Semi: ;
|
|
| | | |-- blockItem
|
|
| | | | `-- stmt
|
|
| | | | |-- lVal
|
|
| | | | | `-- Ident: y
|
|
| | | | |-- Assign: =
|
|
| | | | |-- exp
|
|
| | | | | `-- addExp
|
|
| | | | | `-- mulExp
|
|
| | | | | `-- unaryExp
|
|
| | | | | `-- primaryExp
|
|
| | | | | `-- number
|
|
| | | | | `-- IntConst: 1
|
|
| | | | `-- Semi: ;
|
|
| | | |-- blockItem
|
|
| | | | `-- stmt
|
|
| | | | |-- While: while
|
|
| | | | |-- L_PAREN: (
|
|
| | | | |-- cond
|
|
| | | | | `-- lOrExp
|
|
| | | | | `-- lAndExp
|
|
| | | | | `-- eqExp
|
|
| | | | | `-- relExp
|
|
| | | | | |-- relExp
|
|
| | | | | | `-- addExp
|
|
| | | | | | `-- mulExp
|
|
| | | | | | `-- unaryExp
|
|
| | | | | | `-- primaryExp
|
|
| | | | | | `-- lVal
|
|
| | | | | | `-- Ident: i
|
|
| | | | | |-- LtOp: <
|
|
| | | | | `-- addExp
|
|
| | | | | `-- mulExp
|
|
| | | | | `-- unaryExp
|
|
| | | | | `-- primaryExp
|
|
| | | | | `-- number
|
|
| | | | | `-- IntConst: 16
|
|
| | | | |-- R_PAREN: )
|
|
| | | | `-- stmt
|
|
| | | | `-- block
|
|
| | | | |-- L_BRACE: {
|
|
| | | | |-- blockItem
|
|
| | | | | `-- stmt
|
|
| | | | | |-- If: if
|
|
| | | | | |-- L_PAREN: (
|
|
| | | | | |-- cond
|
|
| | | | | | `-- lOrExp
|
|
| | | | | | `-- lAndExp
|
|
| | | | | | |-- lAndExp
|
|
| | | | | | | `-- eqExp
|
|
| | | | | | | `-- relExp
|
|
| | | | | | | `-- addExp
|
|
| | | | | | | `-- mulExp
|
|
| | | | | | | |-- mulExp
|
|
| | | | | | | | `-- unaryExp
|
|
| | | | | | | | `-- primaryExp
|
|
| | | | | | | | `-- lVal
|
|
| | | | | | | | `-- Ident: x
|
|
| | | | | | | |-- ModOp: %
|
|
| | | | | | | `-- unaryExp
|
|
| | | | | | | `-- primaryExp
|
|
| | | | | | | `-- number
|
|
| | | | | | | `-- IntConst: 2
|
|
| | | | | | |-- AndOp: &&
|
|
| | | | | | `-- eqExp
|
|
| | | | | | `-- relExp
|
|
| | | | | | `-- addExp
|
|
| | | | | | `-- mulExp
|
|
| | | | | | |-- mulExp
|
|
| | | | | | | `-- unaryExp
|
|
| | | | | | | `-- primaryExp
|
|
| | | | | | | `-- lVal
|
|
| | | | | | | `-- Ident: y
|
|
| | | | | | |-- ModOp: %
|
|
| | | | | | `-- unaryExp
|
|
| | | | | | `-- primaryExp
|
|
| | | | | | `-- number
|
|
| | | | | | `-- IntConst: 2
|
|
| | | | | |-- R_PAREN: )
|
|
| | | | | `-- stmt
|
|
| | | | | `-- block
|
|
| | | | | |-- L_BRACE: {
|
|
| | | | | |-- blockItem
|
|
| | | | | | `-- stmt
|
|
| | | | | | |-- lVal
|
|
| | | | | | | `-- Ident: ans
|
|
| | | | | | |-- Assign: =
|
|
| | | | | | |-- exp
|
|
| | | | | | | `-- addExp
|
|
| | | | | | | |-- addExp
|
|
| | | | | | | | `-- mulExp
|
|
| | | | | | | | `-- unaryExp
|
|
| | | | | | | | `-- primaryExp
|
|
| | | | | | | | `-- lVal
|
|
| | | | | | | | `-- Ident: ans
|
|
| | | | | | | |-- AddOp: +
|
|
| | | | | | | `-- mulExp
|
|
| | | | | | | |-- mulExp
|
|
| | | | | | | | `-- unaryExp
|
|
| | | | | | | | `-- primaryExp
|
|
| | | | | | | | `-- number
|
|
| | | | | | | | `-- IntConst: 1
|
|
| | | | | | | |-- MulOp: *
|
|
| | | | | | | `-- unaryExp
|
|
| | | | | | | `-- primaryExp
|
|
| | | | | | | `-- lVal
|
|
| | | | | | | |-- Ident: SHIFT_TABLE
|
|
| | | | | | | |-- L_BRACKET: [
|
|
| | | | | | | |-- exp
|
|
| | | | | | | | `-- addExp
|
|
| | | | | | | | `-- mulExp
|
|
| | | | | | | | `-- unaryExp
|
|
| | | | | | | | `-- primaryExp
|
|
| | | | | | | | `-- lVal
|
|
| | | | | | | | `-- Ident: i
|
|
| | | | | | | `-- R_BRACKET: ]
|
|
| | | | | | `-- Semi: ;
|
|
| | | | | `-- R_BRACE: }
|
|
| | | | |-- blockItem
|
|
| | | | | `-- stmt
|
|
| | | | | |-- lVal
|
|
| | | | | | `-- Ident: x
|
|
| | | | | |-- Assign: =
|
|
| | | | | |-- exp
|
|
| | | | | | `-- addExp
|
|
| | | | | | `-- mulExp
|
|
| | | | | | |-- mulExp
|
|
| | | | | | | `-- unaryExp
|
|
| | | | | | | `-- primaryExp
|
|
| | | | | | | `-- lVal
|
|
| | | | | | | `-- Ident: x
|
|
| | | | | | |-- DivOp: /
|
|
| | | | | | `-- unaryExp
|
|
| | | | | | `-- primaryExp
|
|
| | | | | | `-- number
|
|
| | | | | | `-- IntConst: 2
|
|
| | | | | `-- Semi: ;
|
|
| | | | |-- blockItem
|
|
| | | | | `-- stmt
|
|
| | | | | |-- lVal
|
|
| | | | | | `-- Ident: y
|
|
| | | | | |-- Assign: =
|
|
| | | | | |-- exp
|
|
| | | | | | `-- addExp
|
|
| | | | | | `-- mulExp
|
|
| | | | | | |-- mulExp
|
|
| | | | | | | `-- unaryExp
|
|
| | | | | | | `-- primaryExp
|
|
| | | | | | | `-- lVal
|
|
| | | | | | | `-- Ident: y
|
|
| | | | | | |-- DivOp: /
|
|
| | | | | | `-- unaryExp
|
|
| | | | | | `-- primaryExp
|
|
| | | | | | `-- number
|
|
| | | | | | `-- IntConst: 2
|
|
| | | | | `-- Semi: ;
|
|
| | | | |-- blockItem
|
|
| | | | | `-- stmt
|
|
| | | | | |-- lVal
|
|
| | | | | | `-- Ident: i
|
|
| | | | | |-- Assign: =
|
|
| | | | | |-- exp
|
|
| | | | | | `-- addExp
|
|
| | | | | | |-- addExp
|
|
| | | | | | | `-- mulExp
|
|
| | | | | | | `-- unaryExp
|
|
| | | | | | | `-- primaryExp
|
|
| | | | | | | `-- lVal
|
|
| | | | | | | `-- Ident: i
|
|
| | | | | | |-- AddOp: +
|
|
| | | | | | `-- mulExp
|
|
| | | | | | `-- unaryExp
|
|
| | | | | | `-- primaryExp
|
|
| | | | | | `-- number
|
|
| | | | | | `-- IntConst: 1
|
|
| | | | | `-- Semi: ;
|
|
| | | | `-- R_BRACE: }
|
|
| | | |-- blockItem
|
|
| | | | `-- stmt
|
|
| | | | |-- If: if
|
|
| | | | |-- L_PAREN: (
|
|
| | | | |-- cond
|
|
| | | | | `-- lOrExp
|
|
| | | | | `-- lAndExp
|
|
| | | | | `-- eqExp
|
|
| | | | | `-- relExp
|
|
| | | | | `-- addExp
|
|
| | | | | `-- mulExp
|
|
| | | | | `-- unaryExp
|
|
| | | | | `-- primaryExp
|
|
| | | | | `-- lVal
|
|
| | | | | `-- Ident: ans
|
|
| | | | |-- R_PAREN: )
|
|
| | | | `-- stmt
|
|
| | | | `-- block
|
|
| | | | |-- L_BRACE: {
|
|
| | | | |-- blockItem
|
|
| | | | | `-- stmt
|
|
| | | | | `-- block
|
|
| | | | | |-- L_BRACE: {
|
|
| | | | | |-- blockItem
|
|
| | | | | | `-- decl
|
|
| | | | | | `-- varDecl
|
|
| | | | | | |-- bType
|
|
| | | | | | | `-- Int: int
|
|
| | | | | | |-- varDef
|
|
| | | | | | | |-- Ident: ml
|
|
| | | | | | | |-- Assign: =
|
|
| | | | | | | `-- initVal
|
|
| | | | | | | `-- exp
|
|
| | | | | | | `-- addExp
|
|
| | | | | | | `-- mulExp
|
|
| | | | | | | `-- unaryExp
|
|
| | | | | | | `-- primaryExp
|
|
| | | | | | | `-- lVal
|
|
| | | | | | | `-- Ident: pres
|
|
| | | | | | |-- Comma: ,
|
|
| | | | | | |-- varDef
|
|
| | | | | | | |-- Ident: mr
|
|
| | | | | | | |-- Assign: =
|
|
| | | | | | | `-- initVal
|
|
| | | | | | | `-- exp
|
|
| | | | | | | `-- addExp
|
|
| | | | | | | `-- mulExp
|
|
| | | | | | | `-- unaryExp
|
|
| | | | | | | `-- primaryExp
|
|
| | | | | | | `-- lVal
|
|
| | | | | | | `-- Ident: pl
|
|
| | | | | | |-- Comma: ,
|
|
| | | | | | |-- varDef
|
|
| | | | | | | |-- Ident: mres
|
|
| | | | | | | |-- Assign: =
|
|
| | | | | | | `-- initVal
|
|
| | | | | | | `-- exp
|
|
| | | | | | | `-- addExp
|
|
| | | | | | | `-- mulExp
|
|
| | | | | | | `-- unaryExp
|
|
| | | | | | | `-- primaryExp
|
|
| | | | | | | `-- number
|
|
| | | | | | | `-- IntConst: 0
|
|
| | | | | | `-- Semi: ;
|
|
| | | | | |-- blockItem
|
|
| | | | | | `-- stmt
|
|
| | | | | | |-- While: while
|
|
| | | | | | |-- L_PAREN: (
|
|
| | | | | | |-- cond
|
|
| | | | | | | `-- lOrExp
|
|
| | | | | | | `-- lAndExp
|
|
| | | | | | | `-- eqExp
|
|
| | | | | | | `-- relExp
|
|
| | | | | | | `-- addExp
|
|
| | | | | | | `-- mulExp
|
|
| | | | | | | `-- unaryExp
|
|
| | | | | | | `-- primaryExp
|
|
| | | | | | | `-- lVal
|
|
| | | | | | | `-- Ident: mr
|
|
| | | | | | |-- R_PAREN: )
|
|
| | | | | | `-- stmt
|
|
| | | | | | `-- block
|
|
| | | | | | |-- L_BRACE: {
|
|
| | | | | | |-- blockItem
|
|
| | | | | | | `-- stmt
|
|
| | | | | | | |-- lVal
|
|
| | | | | | | | `-- Ident: ans
|
|
| | | | | | | |-- Assign: =
|
|
| | | | | | | |-- 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
|
|
| | | | | | | |-- lVal
|
|
| | | | | | | | `-- Ident: x
|
|
| | | | | | | |-- Assign: =
|
|
| | | | | | | |-- exp
|
|
| | | | | | | | `-- addExp
|
|
| | | | | | | | `-- mulExp
|
|
| | | | | | | | `-- unaryExp
|
|
| | | | | | | | `-- primaryExp
|
|
| | | | | | | | `-- lVal
|
|
| | | | | | | | `-- Ident: mr
|
|
| | | | | | | `-- Semi: ;
|
|
| | | | | | |-- blockItem
|
|
| | | | | | | `-- stmt
|
|
| | | | | | | |-- lVal
|
|
| | | | | | | | `-- Ident: y
|
|
| | | | | | | |-- Assign: =
|
|
| | | | | | | |-- exp
|
|
| | | | | | | | `-- addExp
|
|
| | | | | | | | `-- mulExp
|
|
| | | | | | | | `-- unaryExp
|
|
| | | | | | | | `-- primaryExp
|
|
| | | | | | | | `-- number
|
|
| | | | | | | | `-- IntConst: 1
|
|
| | | | | | | `-- Semi: ;
|
|
| | | | | | |-- blockItem
|
|
| | | | | | | `-- stmt
|
|
| | | | | | | |-- While: while
|
|
| | | | | | | |-- L_PAREN: (
|
|
| | | | | | | |-- cond
|
|
| | | | | | | | `-- lOrExp
|
|
| | | | | | | | `-- lAndExp
|
|
| | | | | | | | `-- eqExp
|
|
| | | | | | | | `-- relExp
|
|
| | | | | | | | |-- relExp
|
|
| | | | | | | | | `-- addExp
|
|
| | | | | | | | | `-- mulExp
|
|
| | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | `-- lVal
|
|
| | | | | | | | | `-- Ident: i
|
|
| | | | | | | | |-- LtOp: <
|
|
| | | | | | | | `-- addExp
|
|
| | | | | | | | `-- mulExp
|
|
| | | | | | | | `-- unaryExp
|
|
| | | | | | | | `-- primaryExp
|
|
| | | | | | | | `-- number
|
|
| | | | | | | | `-- IntConst: 16
|
|
| | | | | | | |-- R_PAREN: )
|
|
| | | | | | | `-- stmt
|
|
| | | | | | | `-- block
|
|
| | | | | | | |-- L_BRACE: {
|
|
| | | | | | | |-- blockItem
|
|
| | | | | | | | `-- stmt
|
|
| | | | | | | | |-- If: if
|
|
| | | | | | | | |-- L_PAREN: (
|
|
| | | | | | | | |-- cond
|
|
| | | | | | | | | `-- lOrExp
|
|
| | | | | | | | | `-- lAndExp
|
|
| | | | | | | | | |-- lAndExp
|
|
| | | | | | | | | | `-- eqExp
|
|
| | | | | | | | | | `-- relExp
|
|
| | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | `-- Ident: x
|
|
| | | | | | | | | | |-- ModOp: %
|
|
| | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | `-- number
|
|
| | | | | | | | | | `-- IntConst: 2
|
|
| | | | | | | | | |-- AndOp: &&
|
|
| | | | | | | | | `-- eqExp
|
|
| | | | | | | | | `-- relExp
|
|
| | | | | | | | | `-- addExp
|
|
| | | | | | | | | `-- mulExp
|
|
| | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | `-- Ident: y
|
|
| | | | | | | | | |-- ModOp: %
|
|
| | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | `-- number
|
|
| | | | | | | | | `-- IntConst: 2
|
|
| | | | | | | | |-- R_PAREN: )
|
|
| | | | | | | | `-- stmt
|
|
| | | | | | | | `-- block
|
|
| | | | | | | | |-- L_BRACE: {
|
|
| | | | | | | | |-- blockItem
|
|
| | | | | | | | | `-- stmt
|
|
| | | | | | | | | |-- lVal
|
|
| | | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | |-- exp
|
|
| | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | |-- addExp
|
|
| | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | | | |-- AddOp: +
|
|
| | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | `-- IntConst: 1
|
|
| | | | | | | | | | |-- MulOp: *
|
|
| | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | |-- Ident: SHIFT_TABLE
|
|
| | | | | | | | | | |-- L_BRACKET: [
|
|
| | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | `-- Ident: i
|
|
| | | | | | | | | | `-- R_BRACKET: ]
|
|
| | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | `-- R_BRACE: }
|
|
| | | | | | | |-- blockItem
|
|
| | | | | | | | `-- stmt
|
|
| | | | | | | | |-- lVal
|
|
| | | | | | | | | `-- Ident: x
|
|
| | | | | | | | |-- Assign: =
|
|
| | | | | | | | |-- exp
|
|
| | | | | | | | | `-- addExp
|
|
| | | | | | | | | `-- mulExp
|
|
| | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | `-- Ident: x
|
|
| | | | | | | | | |-- DivOp: /
|
|
| | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | `-- number
|
|
| | | | | | | | | `-- IntConst: 2
|
|
| | | | | | | | `-- Semi: ;
|
|
| | | | | | | |-- blockItem
|
|
| | | | | | | | `-- stmt
|
|
| | | | | | | | |-- lVal
|
|
| | | | | | | | | `-- Ident: y
|
|
| | | | | | | | |-- Assign: =
|
|
| | | | | | | | |-- exp
|
|
| | | | | | | | | `-- addExp
|
|
| | | | | | | | | `-- mulExp
|
|
| | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | `-- Ident: y
|
|
| | | | | | | | | |-- DivOp: /
|
|
| | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | `-- number
|
|
| | | | | | | | | `-- IntConst: 2
|
|
| | | | | | | | `-- Semi: ;
|
|
| | | | | | | |-- blockItem
|
|
| | | | | | | | `-- stmt
|
|
| | | | | | | | |-- lVal
|
|
| | | | | | | | | `-- Ident: i
|
|
| | | | | | | | |-- Assign: =
|
|
| | | | | | | | |-- exp
|
|
| | | | | | | | | `-- addExp
|
|
| | | | | | | | | |-- addExp
|
|
| | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | `-- Ident: i
|
|
| | | | | | | | | |-- AddOp: +
|
|
| | | | | | | | | `-- mulExp
|
|
| | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | `-- number
|
|
| | | | | | | | | `-- IntConst: 1
|
|
| | | | | | | | `-- Semi: ;
|
|
| | | | | | | `-- R_BRACE: }
|
|
| | | | | | |-- blockItem
|
|
| | | | | | | `-- stmt
|
|
| | | | | | | |-- If: if
|
|
| | | | | | | |-- L_PAREN: (
|
|
| | | | | | | |-- cond
|
|
| | | | | | | | `-- lOrExp
|
|
| | | | | | | | `-- lAndExp
|
|
| | | | | | | | `-- eqExp
|
|
| | | | | | | | `-- relExp
|
|
| | | | | | | | `-- addExp
|
|
| | | | | | | | `-- mulExp
|
|
| | | | | | | | `-- unaryExp
|
|
| | | | | | | | `-- primaryExp
|
|
| | | | | | | | `-- lVal
|
|
| | | | | | | | `-- Ident: ans
|
|
| | | | | | | |-- R_PAREN: )
|
|
| | | | | | | `-- stmt
|
|
| | | | | | | `-- block
|
|
| | | | | | | |-- L_BRACE: {
|
|
| | | | | | | |-- blockItem
|
|
| | | | | | | | `-- stmt
|
|
| | | | | | | | `-- block
|
|
| | | | | | | | |-- L_BRACE: {
|
|
| | | | | | | | |-- blockItem
|
|
| | | | | | | | | `-- decl
|
|
| | | | | | | | | `-- varDecl
|
|
| | | | | | | | | |-- bType
|
|
| | | | | | | | | | `-- Int: int
|
|
| | | | | | | | | |-- varDef
|
|
| | | | | | | | | | |-- Ident: al
|
|
| | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | `-- initVal
|
|
| | | | | | | | | | `-- exp
|
|
| | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | `-- Ident: mres
|
|
| | | | | | | | | |-- Comma: ,
|
|
| | | | | | | | | |-- varDef
|
|
| | | | | | | | | | |-- Ident: c
|
|
| | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | `-- initVal
|
|
| | | | | | | | | | `-- exp
|
|
| | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | `-- Ident: ml
|
|
| | | | | | | | | |-- Comma: ,
|
|
| | | | | | | | | |-- varDef
|
|
| | | | | | | | | | `-- Ident: sum
|
|
| | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | |-- blockItem
|
|
| | | | | | | | | `-- stmt
|
|
| | | | | | | | | |-- While: while
|
|
| | | | | | | | | |-- L_PAREN: (
|
|
| | | | | | | | | |-- cond
|
|
| | | | | | | | | | `-- lOrExp
|
|
| | | | | | | | | | `-- lAndExp
|
|
| | | | | | | | | | `-- eqExp
|
|
| | | | | | | | | | `-- relExp
|
|
| | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | `-- Ident: c
|
|
| | | | | | | | | |-- R_PAREN: )
|
|
| | | | | | | | | `-- stmt
|
|
| | | | | | | | | `-- block
|
|
| | | | | | | | | |-- L_BRACE: {
|
|
| | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | |-- 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
|
|
| | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | `-- Ident: x
|
|
| | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | `-- Ident: al
|
|
| | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | `-- Ident: y
|
|
| | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | `-- Ident: c
|
|
| | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | |-- While: while
|
|
| | | | | | | | | | |-- L_PAREN: (
|
|
| | | | | | | | | | |-- cond
|
|
| | | | | | | | | | | `-- lOrExp
|
|
| | | | | | | | | | | `-- lAndExp
|
|
| | | | | | | | | | | `-- eqExp
|
|
| | | | | | | | | | | `-- relExp
|
|
| | | | | | | | | | | |-- relExp
|
|
| | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | `-- Ident: i
|
|
| | | | | | | | | | | |-- LtOp: <
|
|
| | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | `-- IntConst: 16
|
|
| | | | | | | | | | |-- R_PAREN: )
|
|
| | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | `-- block
|
|
| | | | | | | | | | |-- L_BRACE: {
|
|
| | | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | |-- If: if
|
|
| | | | | | | | | | | |-- L_PAREN: (
|
|
| | | | | | | | | | | |-- cond
|
|
| | | | | | | | | | | | `-- lOrExp
|
|
| | | | | | | | | | | | `-- lAndExp
|
|
| | | | | | | | | | | | `-- eqExp
|
|
| | | | | | | | | | | | `-- relExp
|
|
| | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | `-- Ident: x
|
|
| | | | | | | | | | | | |-- ModOp: %
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | `-- IntConst: 2
|
|
| | | | | | | | | | | |-- R_PAREN: )
|
|
| | | | | | | | | | | |-- stmt
|
|
| | | | | | | | | | | | `-- block
|
|
| | | | | | | | | | | | |-- L_BRACE: {
|
|
| | | | | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | | | |-- If: if
|
|
| | | | | | | | | | | | | |-- L_PAREN: (
|
|
| | | | | | | | | | | | | |-- cond
|
|
| | | | | | | | | | | | | | `-- lOrExp
|
|
| | | | | | | | | | | | | | `-- lAndExp
|
|
| | | | | | | | | | | | | | `-- eqExp
|
|
| | | | | | | | | | | | | | |-- eqExp
|
|
| | | | | | | | | | | | | | | `-- relExp
|
|
| | | | | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | | | | `-- Ident: y
|
|
| | | | | | | | | | | | | | | |-- ModOp: %
|
|
| | | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | | | | `-- IntConst: 2
|
|
| | | | | | | | | | | | | | |-- EqOp: ==
|
|
| | | | | | | | | | | | | | `-- relExp
|
|
| | | | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | | | `-- IntConst: 0
|
|
| | | | | | | | | | | | | |-- R_PAREN: )
|
|
| | | | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | | | `-- block
|
|
| | | | | | | | | | | | | |-- L_BRACE: {
|
|
| | | | | | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | | | | |-- addExp
|
|
| | | | | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | | | | | | | | |-- AddOp: +
|
|
| | | | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | | | | | `-- IntConst: 1
|
|
| | | | | | | | | | | | | | | |-- MulOp: *
|
|
| | | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | | | |-- Ident: SHIFT_TABLE
|
|
| | | | | | | | | | | | | | | |-- L_BRACKET: [
|
|
| | | | | | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | | | | `-- Ident: i
|
|
| | | | | | | | | | | | | | | `-- R_BRACKET: ]
|
|
| | | | | | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | | | | | `-- R_BRACE: }
|
|
| | | | | | | | | | | | `-- R_BRACE: }
|
|
| | | | | | | | | | | |-- Else: else
|
|
| | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | |-- If: if
|
|
| | | | | | | | | | | |-- L_PAREN: (
|
|
| | | | | | | | | | | |-- cond
|
|
| | | | | | | | | | | | `-- lOrExp
|
|
| | | | | | | | | | | | `-- lAndExp
|
|
| | | | | | | | | | | | `-- eqExp
|
|
| | | | | | | | | | | | `-- relExp
|
|
| | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | `-- Ident: y
|
|
| | | | | | | | | | | | |-- ModOp: %
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | `-- IntConst: 2
|
|
| | | | | | | | | | | |-- R_PAREN: )
|
|
| | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | `-- block
|
|
| | | | | | | | | | | |-- L_BRACE: {
|
|
| | | | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | | |-- addExp
|
|
| | | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | | | | | | |-- AddOp: +
|
|
| | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | | | `-- IntConst: 1
|
|
| | | | | | | | | | | | | |-- MulOp: *
|
|
| | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | |-- Ident: SHIFT_TABLE
|
|
| | | | | | | | | | | | | |-- L_BRACKET: [
|
|
| | | | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | | `-- Ident: i
|
|
| | | | | | | | | | | | | `-- R_BRACKET: ]
|
|
| | | | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | | | `-- R_BRACE: }
|
|
| | | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | | `-- Ident: x
|
|
| | | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | `-- Ident: x
|
|
| | | | | | | | | | | | |-- DivOp: /
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | `-- IntConst: 2
|
|
| | | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | | `-- Ident: y
|
|
| | | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | `-- Ident: y
|
|
| | | | | | | | | | | | |-- DivOp: /
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | `-- IntConst: 2
|
|
| | | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | | `-- Ident: i
|
|
| | | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | |-- addExp
|
|
| | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | `-- Ident: i
|
|
| | | | | | | | | | | | |-- AddOp: +
|
|
| | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | `-- IntConst: 1
|
|
| | | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | | `-- R_BRACE: }
|
|
| | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | `-- Ident: sum
|
|
| | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | |-- 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
|
|
| | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | `-- Ident: x
|
|
| | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | `-- Ident: al
|
|
| | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | `-- Ident: y
|
|
| | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | `-- Ident: c
|
|
| | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | |-- While: while
|
|
| | | | | | | | | | |-- L_PAREN: (
|
|
| | | | | | | | | | |-- cond
|
|
| | | | | | | | | | | `-- lOrExp
|
|
| | | | | | | | | | | `-- lAndExp
|
|
| | | | | | | | | | | `-- eqExp
|
|
| | | | | | | | | | | `-- relExp
|
|
| | | | | | | | | | | |-- relExp
|
|
| | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | `-- Ident: i
|
|
| | | | | | | | | | | |-- LtOp: <
|
|
| | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | `-- IntConst: 16
|
|
| | | | | | | | | | |-- R_PAREN: )
|
|
| | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | `-- block
|
|
| | | | | | | | | | |-- L_BRACE: {
|
|
| | | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | |-- If: if
|
|
| | | | | | | | | | | |-- L_PAREN: (
|
|
| | | | | | | | | | | |-- cond
|
|
| | | | | | | | | | | | `-- lOrExp
|
|
| | | | | | | | | | | | `-- lAndExp
|
|
| | | | | | | | | | | | |-- lAndExp
|
|
| | | | | | | | | | | | | `-- eqExp
|
|
| | | | | | | | | | | | | `-- relExp
|
|
| | | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | | `-- Ident: x
|
|
| | | | | | | | | | | | | |-- ModOp: %
|
|
| | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | | `-- IntConst: 2
|
|
| | | | | | | | | | | | |-- AndOp: &&
|
|
| | | | | | | | | | | | `-- eqExp
|
|
| | | | | | | | | | | | `-- relExp
|
|
| | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | `-- Ident: y
|
|
| | | | | | | | | | | | |-- ModOp: %
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | `-- IntConst: 2
|
|
| | | | | | | | | | | |-- R_PAREN: )
|
|
| | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | `-- block
|
|
| | | | | | | | | | | |-- L_BRACE: {
|
|
| | | | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | | |-- addExp
|
|
| | | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | | | | | | |-- AddOp: +
|
|
| | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | | | `-- IntConst: 1
|
|
| | | | | | | | | | | | | |-- MulOp: *
|
|
| | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | |-- Ident: SHIFT_TABLE
|
|
| | | | | | | | | | | | | |-- L_BRACKET: [
|
|
| | | | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | | `-- Ident: i
|
|
| | | | | | | | | | | | | `-- R_BRACKET: ]
|
|
| | | | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | | | `-- R_BRACE: }
|
|
| | | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | | `-- Ident: x
|
|
| | | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | `-- Ident: x
|
|
| | | | | | | | | | | | |-- DivOp: /
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | `-- IntConst: 2
|
|
| | | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | | `-- Ident: y
|
|
| | | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | `-- Ident: y
|
|
| | | | | | | | | | | | |-- DivOp: /
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | `-- IntConst: 2
|
|
| | | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | | `-- Ident: i
|
|
| | | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | |-- addExp
|
|
| | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | `-- Ident: i
|
|
| | | | | | | | | | | | |-- AddOp: +
|
|
| | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | `-- IntConst: 1
|
|
| | | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | | `-- R_BRACE: }
|
|
| | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | `-- Ident: c
|
|
| | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | |-- If: if
|
|
| | | | | | | | | | |-- L_PAREN: (
|
|
| | | | | | | | | | |-- cond
|
|
| | | | | | | | | | | `-- lOrExp
|
|
| | | | | | | | | | | `-- lAndExp
|
|
| | | | | | | | | | | `-- eqExp
|
|
| | | | | | | | | | | `-- relExp
|
|
| | | | | | | | | | | |-- relExp
|
|
| | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | |-- L_PAREN: (
|
|
| | | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | | `-- IntConst: 1
|
|
| | | | | | | | | | | | `-- R_PAREN: )
|
|
| | | | | | | | | | | |-- GtOp: >
|
|
| | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | `-- IntConst: 15
|
|
| | | | | | | | | | |-- R_PAREN: )
|
|
| | | | | | | | | | |-- stmt
|
|
| | | | | | | | | | | `-- block
|
|
| | | | | | | | | | | |-- L_BRACE: {
|
|
| | | | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | | `-- IntConst: 0
|
|
| | | | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | | | `-- R_BRACE: }
|
|
| | | | | | | | | | |-- Else: else
|
|
| | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | `-- block
|
|
| | | | | | | | | | |-- L_BRACE: {
|
|
| | | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | | |-- 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
|
|
| | | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | | `-- Ident: x
|
|
| | | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | |-- L_PAREN: (
|
|
| | | | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | | `-- Ident: c
|
|
| | | | | | | | | | | | | `-- R_PAREN: )
|
|
| | | | | | | | | | | | |-- MulOp: *
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | |-- Ident: SHIFT_TABLE
|
|
| | | | | | | | | | | | |-- L_BRACKET: [
|
|
| | | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | | `-- IntConst: 1
|
|
| | | | | | | | | | | | `-- R_BRACKET: ]
|
|
| | | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | | `-- Ident: y
|
|
| | | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | `-- IntConst: 0xffff
|
|
| | | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | |-- While: while
|
|
| | | | | | | | | | | |-- L_PAREN: (
|
|
| | | | | | | | | | | |-- cond
|
|
| | | | | | | | | | | | `-- lOrExp
|
|
| | | | | | | | | | | | `-- lAndExp
|
|
| | | | | | | | | | | | `-- eqExp
|
|
| | | | | | | | | | | | `-- relExp
|
|
| | | | | | | | | | | | |-- relExp
|
|
| | | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | `-- Ident: i
|
|
| | | | | | | | | | | | |-- LtOp: <
|
|
| | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | `-- IntConst: 16
|
|
| | | | | | | | | | | |-- R_PAREN: )
|
|
| | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | `-- block
|
|
| | | | | | | | | | | |-- L_BRACE: {
|
|
| | | | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | | |-- If: if
|
|
| | | | | | | | | | | | |-- L_PAREN: (
|
|
| | | | | | | | | | | | |-- cond
|
|
| | | | | | | | | | | | | `-- lOrExp
|
|
| | | | | | | | | | | | | `-- lAndExp
|
|
| | | | | | | | | | | | | |-- lAndExp
|
|
| | | | | | | | | | | | | | `-- eqExp
|
|
| | | | | | | | | | | | | | `-- relExp
|
|
| | | | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | | | `-- Ident: x
|
|
| | | | | | | | | | | | | | |-- ModOp: %
|
|
| | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | | | `-- IntConst: 2
|
|
| | | | | | | | | | | | | |-- AndOp: &&
|
|
| | | | | | | | | | | | | `-- eqExp
|
|
| | | | | | | | | | | | | `-- relExp
|
|
| | | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | | `-- Ident: y
|
|
| | | | | | | | | | | | | |-- ModOp: %
|
|
| | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | | `-- IntConst: 2
|
|
| | | | | | | | | | | | |-- R_PAREN: )
|
|
| | | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | | `-- block
|
|
| | | | | | | | | | | | |-- L_BRACE: {
|
|
| | | | | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | | | |-- addExp
|
|
| | | | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | | | | | | | |-- AddOp: +
|
|
| | | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | | | | `-- IntConst: 1
|
|
| | | | | | | | | | | | | | |-- MulOp: *
|
|
| | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | | |-- Ident: SHIFT_TABLE
|
|
| | | | | | | | | | | | | | |-- L_BRACKET: [
|
|
| | | | | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | | | `-- Ident: i
|
|
| | | | | | | | | | | | | | `-- R_BRACKET: ]
|
|
| | | | | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | | | | `-- R_BRACE: }
|
|
| | | | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | | | `-- Ident: x
|
|
| | | | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | | `-- Ident: x
|
|
| | | | | | | | | | | | | |-- DivOp: /
|
|
| | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | | `-- IntConst: 2
|
|
| | | | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | | | `-- Ident: y
|
|
| | | | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | | `-- Ident: y
|
|
| | | | | | | | | | | | | |-- DivOp: /
|
|
| | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | | `-- IntConst: 2
|
|
| | | | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | | | `-- Ident: i
|
|
| | | | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | | |-- addExp
|
|
| | | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | | `-- Ident: i
|
|
| | | | | | | | | | | | | |-- AddOp: +
|
|
| | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | | `-- IntConst: 1
|
|
| | | | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | | | `-- R_BRACE: }
|
|
| | | | | | | | | | `-- R_BRACE: }
|
|
| | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | `-- Ident: c
|
|
| | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | `-- Ident: al
|
|
| | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | `-- Ident: sum
|
|
| | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | `-- R_BRACE: }
|
|
| | | | | | | | |-- blockItem
|
|
| | | | | | | | | `-- stmt
|
|
| | | | | | | | | |-- lVal
|
|
| | | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | |-- exp
|
|
| | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | `-- Ident: al
|
|
| | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | `-- R_BRACE: }
|
|
| | | | | | | |-- blockItem
|
|
| | | | | | | | `-- stmt
|
|
| | | | | | | | |-- lVal
|
|
| | | | | | | | | `-- Ident: mres
|
|
| | | | | | | | |-- Assign: =
|
|
| | | | | | | | |-- exp
|
|
| | | | | | | | | `-- addExp
|
|
| | | | | | | | | `-- mulExp
|
|
| | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | `-- lVal
|
|
| | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | `-- Semi: ;
|
|
| | | | | | | `-- R_BRACE: }
|
|
| | | | | | |-- blockItem
|
|
| | | | | | | `-- stmt
|
|
| | | | | | | `-- block
|
|
| | | | | | | |-- L_BRACE: {
|
|
| | | | | | | |-- blockItem
|
|
| | | | | | | | `-- decl
|
|
| | | | | | | | `-- varDecl
|
|
| | | | | | | | |-- bType
|
|
| | | | | | | | | `-- Int: int
|
|
| | | | | | | | |-- varDef
|
|
| | | | | | | | | |-- Ident: al
|
|
| | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | `-- initVal
|
|
| | | | | | | | | `-- exp
|
|
| | | | | | | | | `-- addExp
|
|
| | | | | | | | | `-- mulExp
|
|
| | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | `-- lVal
|
|
| | | | | | | | | `-- Ident: ml
|
|
| | | | | | | | |-- Comma: ,
|
|
| | | | | | | | |-- varDef
|
|
| | | | | | | | | |-- Ident: c
|
|
| | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | `-- initVal
|
|
| | | | | | | | | `-- exp
|
|
| | | | | | | | | `-- addExp
|
|
| | | | | | | | | `-- mulExp
|
|
| | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | `-- lVal
|
|
| | | | | | | | | `-- Ident: ml
|
|
| | | | | | | | |-- Comma: ,
|
|
| | | | | | | | |-- varDef
|
|
| | | | | | | | | `-- Ident: sum
|
|
| | | | | | | | `-- Semi: ;
|
|
| | | | | | | |-- blockItem
|
|
| | | | | | | | `-- stmt
|
|
| | | | | | | | |-- While: while
|
|
| | | | | | | | |-- L_PAREN: (
|
|
| | | | | | | | |-- cond
|
|
| | | | | | | | | `-- lOrExp
|
|
| | | | | | | | | `-- lAndExp
|
|
| | | | | | | | | `-- eqExp
|
|
| | | | | | | | | `-- relExp
|
|
| | | | | | | | | `-- addExp
|
|
| | | | | | | | | `-- mulExp
|
|
| | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | `-- lVal
|
|
| | | | | | | | | `-- Ident: c
|
|
| | | | | | | | |-- R_PAREN: )
|
|
| | | | | | | | `-- stmt
|
|
| | | | | | | | `-- block
|
|
| | | | | | | | |-- L_BRACE: {
|
|
| | | | | | | | |-- blockItem
|
|
| | | | | | | | | `-- stmt
|
|
| | | | | | | | | |-- lVal
|
|
| | | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | |-- 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
|
|
| | | | | | | | | |-- lVal
|
|
| | | | | | | | | | `-- Ident: x
|
|
| | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | |-- exp
|
|
| | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | `-- Ident: al
|
|
| | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | |-- blockItem
|
|
| | | | | | | | | `-- stmt
|
|
| | | | | | | | | |-- lVal
|
|
| | | | | | | | | | `-- Ident: y
|
|
| | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | |-- exp
|
|
| | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | `-- Ident: c
|
|
| | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | |-- blockItem
|
|
| | | | | | | | | `-- stmt
|
|
| | | | | | | | | |-- While: while
|
|
| | | | | | | | | |-- L_PAREN: (
|
|
| | | | | | | | | |-- cond
|
|
| | | | | | | | | | `-- lOrExp
|
|
| | | | | | | | | | `-- lAndExp
|
|
| | | | | | | | | | `-- eqExp
|
|
| | | | | | | | | | `-- relExp
|
|
| | | | | | | | | | |-- relExp
|
|
| | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | `-- Ident: i
|
|
| | | | | | | | | | |-- LtOp: <
|
|
| | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | `-- number
|
|
| | | | | | | | | | `-- IntConst: 16
|
|
| | | | | | | | | |-- R_PAREN: )
|
|
| | | | | | | | | `-- stmt
|
|
| | | | | | | | | `-- block
|
|
| | | | | | | | | |-- L_BRACE: {
|
|
| | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | |-- If: if
|
|
| | | | | | | | | | |-- L_PAREN: (
|
|
| | | | | | | | | | |-- cond
|
|
| | | | | | | | | | | `-- lOrExp
|
|
| | | | | | | | | | | `-- lAndExp
|
|
| | | | | | | | | | | `-- eqExp
|
|
| | | | | | | | | | | `-- relExp
|
|
| | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | `-- Ident: x
|
|
| | | | | | | | | | | |-- ModOp: %
|
|
| | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | `-- IntConst: 2
|
|
| | | | | | | | | | |-- R_PAREN: )
|
|
| | | | | | | | | | |-- stmt
|
|
| | | | | | | | | | | `-- block
|
|
| | | | | | | | | | | |-- L_BRACE: {
|
|
| | | | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | | |-- If: if
|
|
| | | | | | | | | | | | |-- L_PAREN: (
|
|
| | | | | | | | | | | | |-- cond
|
|
| | | | | | | | | | | | | `-- lOrExp
|
|
| | | | | | | | | | | | | `-- lAndExp
|
|
| | | | | | | | | | | | | `-- eqExp
|
|
| | | | | | | | | | | | | |-- eqExp
|
|
| | | | | | | | | | | | | | `-- relExp
|
|
| | | | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | | | `-- Ident: y
|
|
| | | | | | | | | | | | | | |-- ModOp: %
|
|
| | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | | | `-- IntConst: 2
|
|
| | | | | | | | | | | | | |-- EqOp: ==
|
|
| | | | | | | | | | | | | `-- relExp
|
|
| | | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | | `-- IntConst: 0
|
|
| | | | | | | | | | | | |-- R_PAREN: )
|
|
| | | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | | `-- block
|
|
| | | | | | | | | | | | |-- L_BRACE: {
|
|
| | | | | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | | | |-- addExp
|
|
| | | | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | | | | | | | |-- AddOp: +
|
|
| | | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | | | | `-- IntConst: 1
|
|
| | | | | | | | | | | | | | |-- MulOp: *
|
|
| | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | | |-- Ident: SHIFT_TABLE
|
|
| | | | | | | | | | | | | | |-- L_BRACKET: [
|
|
| | | | | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | | | `-- Ident: i
|
|
| | | | | | | | | | | | | | `-- R_BRACKET: ]
|
|
| | | | | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | | | | `-- R_BRACE: }
|
|
| | | | | | | | | | | `-- R_BRACE: }
|
|
| | | | | | | | | | |-- Else: else
|
|
| | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | |-- If: if
|
|
| | | | | | | | | | |-- L_PAREN: (
|
|
| | | | | | | | | | |-- cond
|
|
| | | | | | | | | | | `-- lOrExp
|
|
| | | | | | | | | | | `-- lAndExp
|
|
| | | | | | | | | | | `-- eqExp
|
|
| | | | | | | | | | | `-- relExp
|
|
| | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | `-- Ident: y
|
|
| | | | | | | | | | | |-- ModOp: %
|
|
| | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | `-- IntConst: 2
|
|
| | | | | | | | | | |-- R_PAREN: )
|
|
| | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | `-- block
|
|
| | | | | | | | | | |-- L_BRACE: {
|
|
| | | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | |-- addExp
|
|
| | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | | | | | |-- AddOp: +
|
|
| | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | | `-- IntConst: 1
|
|
| | | | | | | | | | | | |-- MulOp: *
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | |-- Ident: SHIFT_TABLE
|
|
| | | | | | | | | | | | |-- L_BRACKET: [
|
|
| | | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | `-- Ident: i
|
|
| | | | | | | | | | | | `-- R_BRACKET: ]
|
|
| | | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | | `-- R_BRACE: }
|
|
| | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | `-- Ident: x
|
|
| | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | `-- Ident: x
|
|
| | | | | | | | | | | |-- DivOp: /
|
|
| | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | `-- IntConst: 2
|
|
| | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | `-- Ident: y
|
|
| | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | `-- Ident: y
|
|
| | | | | | | | | | | |-- DivOp: /
|
|
| | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | `-- IntConst: 2
|
|
| | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | `-- Ident: i
|
|
| | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | |-- addExp
|
|
| | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | `-- Ident: i
|
|
| | | | | | | | | | | |-- AddOp: +
|
|
| | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | `-- IntConst: 1
|
|
| | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | `-- R_BRACE: }
|
|
| | | | | | | | |-- blockItem
|
|
| | | | | | | | | `-- stmt
|
|
| | | | | | | | | |-- lVal
|
|
| | | | | | | | | | `-- Ident: sum
|
|
| | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | |-- exp
|
|
| | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | |-- blockItem
|
|
| | | | | | | | | `-- stmt
|
|
| | | | | | | | | |-- lVal
|
|
| | | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | |-- 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
|
|
| | | | | | | | | |-- lVal
|
|
| | | | | | | | | | `-- Ident: x
|
|
| | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | |-- exp
|
|
| | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | `-- Ident: al
|
|
| | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | |-- blockItem
|
|
| | | | | | | | | `-- stmt
|
|
| | | | | | | | | |-- lVal
|
|
| | | | | | | | | | `-- Ident: y
|
|
| | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | |-- exp
|
|
| | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | `-- Ident: c
|
|
| | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | |-- blockItem
|
|
| | | | | | | | | `-- stmt
|
|
| | | | | | | | | |-- While: while
|
|
| | | | | | | | | |-- L_PAREN: (
|
|
| | | | | | | | | |-- cond
|
|
| | | | | | | | | | `-- lOrExp
|
|
| | | | | | | | | | `-- lAndExp
|
|
| | | | | | | | | | `-- eqExp
|
|
| | | | | | | | | | `-- relExp
|
|
| | | | | | | | | | |-- relExp
|
|
| | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | `-- Ident: i
|
|
| | | | | | | | | | |-- LtOp: <
|
|
| | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | `-- number
|
|
| | | | | | | | | | `-- IntConst: 16
|
|
| | | | | | | | | |-- R_PAREN: )
|
|
| | | | | | | | | `-- stmt
|
|
| | | | | | | | | `-- block
|
|
| | | | | | | | | |-- L_BRACE: {
|
|
| | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | |-- If: if
|
|
| | | | | | | | | | |-- L_PAREN: (
|
|
| | | | | | | | | | |-- cond
|
|
| | | | | | | | | | | `-- lOrExp
|
|
| | | | | | | | | | | `-- lAndExp
|
|
| | | | | | | | | | | |-- lAndExp
|
|
| | | | | | | | | | | | `-- eqExp
|
|
| | | | | | | | | | | | `-- relExp
|
|
| | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | `-- Ident: x
|
|
| | | | | | | | | | | | |-- ModOp: %
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | `-- IntConst: 2
|
|
| | | | | | | | | | | |-- AndOp: &&
|
|
| | | | | | | | | | | `-- eqExp
|
|
| | | | | | | | | | | `-- relExp
|
|
| | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | `-- Ident: y
|
|
| | | | | | | | | | | |-- ModOp: %
|
|
| | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | `-- IntConst: 2
|
|
| | | | | | | | | | |-- R_PAREN: )
|
|
| | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | `-- block
|
|
| | | | | | | | | | |-- L_BRACE: {
|
|
| | | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | |-- addExp
|
|
| | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | | | | | |-- AddOp: +
|
|
| | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | | `-- IntConst: 1
|
|
| | | | | | | | | | | | |-- MulOp: *
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | |-- Ident: SHIFT_TABLE
|
|
| | | | | | | | | | | | |-- L_BRACKET: [
|
|
| | | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | `-- Ident: i
|
|
| | | | | | | | | | | | `-- R_BRACKET: ]
|
|
| | | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | | `-- R_BRACE: }
|
|
| | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | `-- Ident: x
|
|
| | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | `-- Ident: x
|
|
| | | | | | | | | | | |-- DivOp: /
|
|
| | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | `-- IntConst: 2
|
|
| | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | `-- Ident: y
|
|
| | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | `-- Ident: y
|
|
| | | | | | | | | | | |-- DivOp: /
|
|
| | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | `-- IntConst: 2
|
|
| | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | `-- Ident: i
|
|
| | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | |-- addExp
|
|
| | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | `-- Ident: i
|
|
| | | | | | | | | | | |-- AddOp: +
|
|
| | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | `-- IntConst: 1
|
|
| | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | `-- R_BRACE: }
|
|
| | | | | | | | |-- blockItem
|
|
| | | | | | | | | `-- stmt
|
|
| | | | | | | | | |-- lVal
|
|
| | | | | | | | | | `-- Ident: c
|
|
| | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | |-- exp
|
|
| | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | |-- blockItem
|
|
| | | | | | | | | `-- stmt
|
|
| | | | | | | | | |-- If: if
|
|
| | | | | | | | | |-- L_PAREN: (
|
|
| | | | | | | | | |-- cond
|
|
| | | | | | | | | | `-- lOrExp
|
|
| | | | | | | | | | `-- lAndExp
|
|
| | | | | | | | | | `-- eqExp
|
|
| | | | | | | | | | `-- relExp
|
|
| | | | | | | | | | |-- relExp
|
|
| | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | |-- L_PAREN: (
|
|
| | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | `-- IntConst: 1
|
|
| | | | | | | | | | | `-- R_PAREN: )
|
|
| | | | | | | | | | |-- GtOp: >
|
|
| | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | `-- number
|
|
| | | | | | | | | | `-- IntConst: 15
|
|
| | | | | | | | | |-- R_PAREN: )
|
|
| | | | | | | | | |-- stmt
|
|
| | | | | | | | | | `-- block
|
|
| | | | | | | | | | |-- L_BRACE: {
|
|
| | | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | `-- IntConst: 0
|
|
| | | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | | `-- R_BRACE: }
|
|
| | | | | | | | | |-- Else: else
|
|
| | | | | | | | | `-- stmt
|
|
| | | | | | | | | `-- block
|
|
| | | | | | | | | |-- L_BRACE: {
|
|
| | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | |-- 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
|
|
| | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | `-- Ident: x
|
|
| | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | |-- L_PAREN: (
|
|
| | | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | `-- Ident: c
|
|
| | | | | | | | | | | | `-- R_PAREN: )
|
|
| | | | | | | | | | | |-- MulOp: *
|
|
| | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | |-- Ident: SHIFT_TABLE
|
|
| | | | | | | | | | | |-- L_BRACKET: [
|
|
| | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | `-- IntConst: 1
|
|
| | | | | | | | | | | `-- R_BRACKET: ]
|
|
| | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | `-- Ident: y
|
|
| | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | `-- IntConst: 0xffff
|
|
| | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | |-- While: while
|
|
| | | | | | | | | | |-- L_PAREN: (
|
|
| | | | | | | | | | |-- cond
|
|
| | | | | | | | | | | `-- lOrExp
|
|
| | | | | | | | | | | `-- lAndExp
|
|
| | | | | | | | | | | `-- eqExp
|
|
| | | | | | | | | | | `-- relExp
|
|
| | | | | | | | | | | |-- relExp
|
|
| | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | `-- Ident: i
|
|
| | | | | | | | | | | |-- LtOp: <
|
|
| | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | `-- IntConst: 16
|
|
| | | | | | | | | | |-- R_PAREN: )
|
|
| | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | `-- block
|
|
| | | | | | | | | | |-- L_BRACE: {
|
|
| | | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | |-- If: if
|
|
| | | | | | | | | | | |-- L_PAREN: (
|
|
| | | | | | | | | | | |-- cond
|
|
| | | | | | | | | | | | `-- lOrExp
|
|
| | | | | | | | | | | | `-- lAndExp
|
|
| | | | | | | | | | | | |-- lAndExp
|
|
| | | | | | | | | | | | | `-- eqExp
|
|
| | | | | | | | | | | | | `-- relExp
|
|
| | | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | | `-- Ident: x
|
|
| | | | | | | | | | | | | |-- ModOp: %
|
|
| | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | | `-- IntConst: 2
|
|
| | | | | | | | | | | | |-- AndOp: &&
|
|
| | | | | | | | | | | | `-- eqExp
|
|
| | | | | | | | | | | | `-- relExp
|
|
| | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | `-- Ident: y
|
|
| | | | | | | | | | | | |-- ModOp: %
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | `-- IntConst: 2
|
|
| | | | | | | | | | | |-- R_PAREN: )
|
|
| | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | `-- block
|
|
| | | | | | | | | | | |-- L_BRACE: {
|
|
| | | | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | | |-- addExp
|
|
| | | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | | | | | | |-- AddOp: +
|
|
| | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | | | `-- IntConst: 1
|
|
| | | | | | | | | | | | | |-- MulOp: *
|
|
| | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | |-- Ident: SHIFT_TABLE
|
|
| | | | | | | | | | | | | |-- L_BRACKET: [
|
|
| | | | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | | `-- Ident: i
|
|
| | | | | | | | | | | | | `-- R_BRACKET: ]
|
|
| | | | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | | | `-- R_BRACE: }
|
|
| | | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | | `-- Ident: x
|
|
| | | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | `-- Ident: x
|
|
| | | | | | | | | | | | |-- DivOp: /
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | `-- IntConst: 2
|
|
| | | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | | `-- Ident: y
|
|
| | | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | `-- Ident: y
|
|
| | | | | | | | | | | | |-- DivOp: /
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | `-- IntConst: 2
|
|
| | | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | | `-- Ident: i
|
|
| | | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | |-- addExp
|
|
| | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | `-- Ident: i
|
|
| | | | | | | | | | | | |-- AddOp: +
|
|
| | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | `-- IntConst: 1
|
|
| | | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | | `-- R_BRACE: }
|
|
| | | | | | | | | `-- R_BRACE: }
|
|
| | | | | | | | |-- blockItem
|
|
| | | | | | | | | `-- stmt
|
|
| | | | | | | | | |-- lVal
|
|
| | | | | | | | | | `-- Ident: c
|
|
| | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | |-- exp
|
|
| | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | |-- blockItem
|
|
| | | | | | | | | `-- stmt
|
|
| | | | | | | | | |-- lVal
|
|
| | | | | | | | | | `-- Ident: al
|
|
| | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | |-- exp
|
|
| | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | `-- Ident: sum
|
|
| | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | `-- R_BRACE: }
|
|
| | | | | | | |-- blockItem
|
|
| | | | | | | | `-- stmt
|
|
| | | | | | | | |-- lVal
|
|
| | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | |-- Assign: =
|
|
| | | | | | | | |-- exp
|
|
| | | | | | | | | `-- addExp
|
|
| | | | | | | | | `-- mulExp
|
|
| | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | `-- lVal
|
|
| | | | | | | | | `-- Ident: al
|
|
| | | | | | | | `-- Semi: ;
|
|
| | | | | | | `-- R_BRACE: }
|
|
| | | | | | |-- blockItem
|
|
| | | | | | | `-- stmt
|
|
| | | | | | | |-- lVal
|
|
| | | | | | | | `-- Ident: ml
|
|
| | | | | | | |-- Assign: =
|
|
| | | | | | | |-- exp
|
|
| | | | | | | | `-- addExp
|
|
| | | | | | | | `-- mulExp
|
|
| | | | | | | | `-- unaryExp
|
|
| | | | | | | | `-- primaryExp
|
|
| | | | | | | | `-- lVal
|
|
| | | | | | | | `-- Ident: ans
|
|
| | | | | | | `-- Semi: ;
|
|
| | | | | | |-- blockItem
|
|
| | | | | | | `-- stmt
|
|
| | | | | | | |-- lVal
|
|
| | | | | | | | `-- Ident: x
|
|
| | | | | | | |-- Assign: =
|
|
| | | | | | | |-- exp
|
|
| | | | | | | | `-- addExp
|
|
| | | | | | | | `-- mulExp
|
|
| | | | | | | | `-- unaryExp
|
|
| | | | | | | | `-- primaryExp
|
|
| | | | | | | | `-- lVal
|
|
| | | | | | | | `-- Ident: mr
|
|
| | | | | | | `-- Semi: ;
|
|
| | | | | | |-- blockItem
|
|
| | | | | | | `-- stmt
|
|
| | | | | | | |-- lVal
|
|
| | | | | | | | `-- Ident: y
|
|
| | | | | | | |-- Assign: =
|
|
| | | | | | | |-- exp
|
|
| | | | | | | | `-- addExp
|
|
| | | | | | | | `-- mulExp
|
|
| | | | | | | | `-- unaryExp
|
|
| | | | | | | | `-- primaryExp
|
|
| | | | | | | | `-- number
|
|
| | | | | | | | `-- IntConst: 1
|
|
| | | | | | | `-- Semi: ;
|
|
| | | | | | |-- blockItem
|
|
| | | | | | | `-- stmt
|
|
| | | | | | | |-- If: if
|
|
| | | | | | | |-- L_PAREN: (
|
|
| | | | | | | |-- cond
|
|
| | | | | | | | `-- lOrExp
|
|
| | | | | | | | `-- lAndExp
|
|
| | | | | | | | `-- eqExp
|
|
| | | | | | | | `-- relExp
|
|
| | | | | | | | |-- relExp
|
|
| | | | | | | | | `-- addExp
|
|
| | | | | | | | | `-- mulExp
|
|
| | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | `-- lVal
|
|
| | | | | | | | | `-- Ident: y
|
|
| | | | | | | | |-- GeOp: >=
|
|
| | | | | | | | `-- addExp
|
|
| | | | | | | | `-- mulExp
|
|
| | | | | | | | `-- unaryExp
|
|
| | | | | | | | `-- primaryExp
|
|
| | | | | | | | `-- number
|
|
| | | | | | | | `-- IntConst: 15
|
|
| | | | | | | |-- R_PAREN: )
|
|
| | | | | | | |-- stmt
|
|
| | | | | | | | `-- block
|
|
| | | | | | | | |-- L_BRACE: {
|
|
| | | | | | | | |-- blockItem
|
|
| | | | | | | | | `-- stmt
|
|
| | | | | | | | | |-- If: if
|
|
| | | | | | | | | |-- L_PAREN: (
|
|
| | | | | | | | | |-- cond
|
|
| | | | | | | | | | `-- lOrExp
|
|
| | | | | | | | | | `-- lAndExp
|
|
| | | | | | | | | | `-- eqExp
|
|
| | | | | | | | | | `-- relExp
|
|
| | | | | | | | | | |-- relExp
|
|
| | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | `-- Ident: x
|
|
| | | | | | | | | | |-- LtOp: <
|
|
| | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | `-- number
|
|
| | | | | | | | | | `-- IntConst: 0
|
|
| | | | | | | | | |-- R_PAREN: )
|
|
| | | | | | | | | |-- stmt
|
|
| | | | | | | | | | `-- block
|
|
| | | | | | | | | | |-- L_BRACE: {
|
|
| | | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | `-- IntConst: 0xffff
|
|
| | | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | | `-- R_BRACE: }
|
|
| | | | | | | | | |-- Else: else
|
|
| | | | | | | | | `-- stmt
|
|
| | | | | | | | | `-- block
|
|
| | | | | | | | | |-- L_BRACE: {
|
|
| | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | `-- IntConst: 0
|
|
| | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | `-- R_BRACE: }
|
|
| | | | | | | | `-- R_BRACE: }
|
|
| | | | | | | |-- Else: else
|
|
| | | | | | | `-- stmt
|
|
| | | | | | | |-- If: if
|
|
| | | | | | | |-- L_PAREN: (
|
|
| | | | | | | |-- cond
|
|
| | | | | | | | `-- lOrExp
|
|
| | | | | | | | `-- lAndExp
|
|
| | | | | | | | `-- eqExp
|
|
| | | | | | | | `-- relExp
|
|
| | | | | | | | |-- relExp
|
|
| | | | | | | | | `-- addExp
|
|
| | | | | | | | | `-- mulExp
|
|
| | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | `-- lVal
|
|
| | | | | | | | | `-- Ident: y
|
|
| | | | | | | | |-- GtOp: >
|
|
| | | | | | | | `-- addExp
|
|
| | | | | | | | `-- mulExp
|
|
| | | | | | | | `-- unaryExp
|
|
| | | | | | | | `-- primaryExp
|
|
| | | | | | | | `-- number
|
|
| | | | | | | | `-- IntConst: 0
|
|
| | | | | | | |-- R_PAREN: )
|
|
| | | | | | | |-- stmt
|
|
| | | | | | | | `-- block
|
|
| | | | | | | | |-- L_BRACE: {
|
|
| | | | | | | | |-- blockItem
|
|
| | | | | | | | | `-- stmt
|
|
| | | | | | | | | |-- If: if
|
|
| | | | | | | | | |-- L_PAREN: (
|
|
| | | | | | | | | |-- cond
|
|
| | | | | | | | | | `-- lOrExp
|
|
| | | | | | | | | | `-- lAndExp
|
|
| | | | | | | | | | `-- eqExp
|
|
| | | | | | | | | | `-- relExp
|
|
| | | | | | | | | | |-- relExp
|
|
| | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | `-- Ident: x
|
|
| | | | | | | | | | |-- GtOp: >
|
|
| | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | `-- number
|
|
| | | | | | | | | | `-- IntConst: 0x7fff
|
|
| | | | | | | | | |-- R_PAREN: )
|
|
| | | | | | | | | |-- stmt
|
|
| | | | | | | | | | `-- block
|
|
| | | | | | | | | | |-- L_BRACE: {
|
|
| | | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | | `-- Ident: x
|
|
| | | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | `-- Ident: x
|
|
| | | | | | | | | | | | |-- DivOp: /
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | |-- Ident: SHIFT_TABLE
|
|
| | | | | | | | | | | | |-- L_BRACKET: [
|
|
| | | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | `-- Ident: y
|
|
| | | | | | | | | | | | `-- R_BRACKET: ]
|
|
| | | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | |-- addExp
|
|
| | | | | | | | | | | | | |-- addExp
|
|
| | | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | | `-- Ident: x
|
|
| | | | | | | | | | | | | |-- AddOp: +
|
|
| | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | | `-- IntConst: 65536
|
|
| | | | | | | | | | | | |-- SubOp: -
|
|
| | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | |-- Ident: SHIFT_TABLE
|
|
| | | | | | | | | | | | |-- L_BRACKET: [
|
|
| | | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | | |-- addExp
|
|
| | | | | | | | | | | | | | |-- addExp
|
|
| | | | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | | | | `-- IntConst: 15
|
|
| | | | | | | | | | | | | | |-- SubOp: -
|
|
| | | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | | `-- Ident: y
|
|
| | | | | | | | | | | | | |-- AddOp: +
|
|
| | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | | `-- IntConst: 1
|
|
| | | | | | | | | | | | `-- R_BRACKET: ]
|
|
| | | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | | `-- R_BRACE: }
|
|
| | | | | | | | | |-- Else: else
|
|
| | | | | | | | | `-- stmt
|
|
| | | | | | | | | `-- block
|
|
| | | | | | | | | |-- L_BRACE: {
|
|
| | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | `-- Ident: x
|
|
| | | | | | | | | | | |-- DivOp: /
|
|
| | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | |-- Ident: SHIFT_TABLE
|
|
| | | | | | | | | | | |-- L_BRACKET: [
|
|
| | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | `-- Ident: y
|
|
| | | | | | | | | | | `-- R_BRACKET: ]
|
|
| | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | `-- R_BRACE: }
|
|
| | | | | | | | `-- R_BRACE: }
|
|
| | | | | | | |-- Else: else
|
|
| | | | | | | `-- stmt
|
|
| | | | | | | `-- block
|
|
| | | | | | | |-- L_BRACE: {
|
|
| | | | | | | |-- blockItem
|
|
| | | | | | | | `-- stmt
|
|
| | | | | | | | |-- lVal
|
|
| | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | |-- Assign: =
|
|
| | | | | | | | |-- exp
|
|
| | | | | | | | | `-- addExp
|
|
| | | | | | | | | `-- mulExp
|
|
| | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | `-- lVal
|
|
| | | | | | | | | `-- Ident: x
|
|
| | | | | | | | `-- Semi: ;
|
|
| | | | | | | `-- R_BRACE: }
|
|
| | | | | | |-- blockItem
|
|
| | | | | | | `-- stmt
|
|
| | | | | | | |-- lVal
|
|
| | | | | | | | `-- Ident: mr
|
|
| | | | | | | |-- Assign: =
|
|
| | | | | | | |-- exp
|
|
| | | | | | | | `-- addExp
|
|
| | | | | | | | `-- mulExp
|
|
| | | | | | | | `-- unaryExp
|
|
| | | | | | | | `-- primaryExp
|
|
| | | | | | | | `-- lVal
|
|
| | | | | | | | `-- Ident: ans
|
|
| | | | | | | `-- Semi: ;
|
|
| | | | | | `-- R_BRACE: }
|
|
| | | | | |-- blockItem
|
|
| | | | | | `-- stmt
|
|
| | | | | | |-- lVal
|
|
| | | | | | | `-- Ident: ans
|
|
| | | | | | |-- Assign: =
|
|
| | | | | | |-- exp
|
|
| | | | | | | `-- addExp
|
|
| | | | | | | `-- mulExp
|
|
| | | | | | | `-- unaryExp
|
|
| | | | | | | `-- primaryExp
|
|
| | | | | | | `-- lVal
|
|
| | | | | | | `-- Ident: mres
|
|
| | | | | | `-- Semi: ;
|
|
| | | | | `-- R_BRACE: }
|
|
| | | | |-- blockItem
|
|
| | | | | `-- stmt
|
|
| | | | | |-- lVal
|
|
| | | | | | `-- Ident: pres
|
|
| | | | | |-- Assign: =
|
|
| | | | | |-- exp
|
|
| | | | | | `-- addExp
|
|
| | | | | | `-- mulExp
|
|
| | | | | | `-- unaryExp
|
|
| | | | | | `-- primaryExp
|
|
| | | | | | `-- lVal
|
|
| | | | | | `-- Ident: ans
|
|
| | | | | `-- Semi: ;
|
|
| | | | `-- R_BRACE: }
|
|
| | | |-- blockItem
|
|
| | | | `-- stmt
|
|
| | | | `-- block
|
|
| | | | |-- L_BRACE: {
|
|
| | | | |-- blockItem
|
|
| | | | | `-- decl
|
|
| | | | | `-- varDecl
|
|
| | | | | |-- bType
|
|
| | | | | | `-- Int: int
|
|
| | | | | |-- varDef
|
|
| | | | | | |-- Ident: ml
|
|
| | | | | | |-- Assign: =
|
|
| | | | | | `-- initVal
|
|
| | | | | | `-- exp
|
|
| | | | | | `-- addExp
|
|
| | | | | | `-- mulExp
|
|
| | | | | | `-- unaryExp
|
|
| | | | | | `-- primaryExp
|
|
| | | | | | `-- lVal
|
|
| | | | | | `-- Ident: pl
|
|
| | | | | |-- Comma: ,
|
|
| | | | | |-- varDef
|
|
| | | | | | |-- Ident: mr
|
|
| | | | | | |-- Assign: =
|
|
| | | | | | `-- initVal
|
|
| | | | | | `-- exp
|
|
| | | | | | `-- addExp
|
|
| | | | | | `-- mulExp
|
|
| | | | | | `-- unaryExp
|
|
| | | | | | `-- primaryExp
|
|
| | | | | | `-- lVal
|
|
| | | | | | `-- Ident: pl
|
|
| | | | | |-- Comma: ,
|
|
| | | | | |-- varDef
|
|
| | | | | | |-- Ident: mres
|
|
| | | | | | |-- Assign: =
|
|
| | | | | | `-- initVal
|
|
| | | | | | `-- exp
|
|
| | | | | | `-- addExp
|
|
| | | | | | `-- mulExp
|
|
| | | | | | `-- unaryExp
|
|
| | | | | | `-- primaryExp
|
|
| | | | | | `-- number
|
|
| | | | | | `-- IntConst: 0
|
|
| | | | | `-- Semi: ;
|
|
| | | | |-- blockItem
|
|
| | | | | `-- stmt
|
|
| | | | | |-- While: while
|
|
| | | | | |-- L_PAREN: (
|
|
| | | | | |-- cond
|
|
| | | | | | `-- lOrExp
|
|
| | | | | | `-- lAndExp
|
|
| | | | | | `-- eqExp
|
|
| | | | | | `-- relExp
|
|
| | | | | | `-- addExp
|
|
| | | | | | `-- mulExp
|
|
| | | | | | `-- unaryExp
|
|
| | | | | | `-- primaryExp
|
|
| | | | | | `-- lVal
|
|
| | | | | | `-- Ident: mr
|
|
| | | | | |-- R_PAREN: )
|
|
| | | | | `-- stmt
|
|
| | | | | `-- block
|
|
| | | | | |-- L_BRACE: {
|
|
| | | | | |-- blockItem
|
|
| | | | | | `-- stmt
|
|
| | | | | | |-- lVal
|
|
| | | | | | | `-- Ident: ans
|
|
| | | | | | |-- Assign: =
|
|
| | | | | | |-- 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
|
|
| | | | | | |-- lVal
|
|
| | | | | | | `-- Ident: x
|
|
| | | | | | |-- Assign: =
|
|
| | | | | | |-- exp
|
|
| | | | | | | `-- addExp
|
|
| | | | | | | `-- mulExp
|
|
| | | | | | | `-- unaryExp
|
|
| | | | | | | `-- primaryExp
|
|
| | | | | | | `-- lVal
|
|
| | | | | | | `-- Ident: mr
|
|
| | | | | | `-- Semi: ;
|
|
| | | | | |-- blockItem
|
|
| | | | | | `-- stmt
|
|
| | | | | | |-- lVal
|
|
| | | | | | | `-- Ident: y
|
|
| | | | | | |-- Assign: =
|
|
| | | | | | |-- exp
|
|
| | | | | | | `-- addExp
|
|
| | | | | | | `-- mulExp
|
|
| | | | | | | `-- unaryExp
|
|
| | | | | | | `-- primaryExp
|
|
| | | | | | | `-- number
|
|
| | | | | | | `-- IntConst: 1
|
|
| | | | | | `-- Semi: ;
|
|
| | | | | |-- blockItem
|
|
| | | | | | `-- stmt
|
|
| | | | | | |-- While: while
|
|
| | | | | | |-- L_PAREN: (
|
|
| | | | | | |-- cond
|
|
| | | | | | | `-- lOrExp
|
|
| | | | | | | `-- lAndExp
|
|
| | | | | | | `-- eqExp
|
|
| | | | | | | `-- relExp
|
|
| | | | | | | |-- relExp
|
|
| | | | | | | | `-- addExp
|
|
| | | | | | | | `-- mulExp
|
|
| | | | | | | | `-- unaryExp
|
|
| | | | | | | | `-- primaryExp
|
|
| | | | | | | | `-- lVal
|
|
| | | | | | | | `-- Ident: i
|
|
| | | | | | | |-- LtOp: <
|
|
| | | | | | | `-- addExp
|
|
| | | | | | | `-- mulExp
|
|
| | | | | | | `-- unaryExp
|
|
| | | | | | | `-- primaryExp
|
|
| | | | | | | `-- number
|
|
| | | | | | | `-- IntConst: 16
|
|
| | | | | | |-- R_PAREN: )
|
|
| | | | | | `-- stmt
|
|
| | | | | | `-- block
|
|
| | | | | | |-- L_BRACE: {
|
|
| | | | | | |-- blockItem
|
|
| | | | | | | `-- stmt
|
|
| | | | | | | |-- If: if
|
|
| | | | | | | |-- L_PAREN: (
|
|
| | | | | | | |-- cond
|
|
| | | | | | | | `-- lOrExp
|
|
| | | | | | | | `-- lAndExp
|
|
| | | | | | | | |-- lAndExp
|
|
| | | | | | | | | `-- eqExp
|
|
| | | | | | | | | `-- relExp
|
|
| | | | | | | | | `-- addExp
|
|
| | | | | | | | | `-- mulExp
|
|
| | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | `-- Ident: x
|
|
| | | | | | | | | |-- ModOp: %
|
|
| | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | `-- number
|
|
| | | | | | | | | `-- IntConst: 2
|
|
| | | | | | | | |-- AndOp: &&
|
|
| | | | | | | | `-- eqExp
|
|
| | | | | | | | `-- relExp
|
|
| | | | | | | | `-- addExp
|
|
| | | | | | | | `-- mulExp
|
|
| | | | | | | | |-- mulExp
|
|
| | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | `-- lVal
|
|
| | | | | | | | | `-- Ident: y
|
|
| | | | | | | | |-- ModOp: %
|
|
| | | | | | | | `-- unaryExp
|
|
| | | | | | | | `-- primaryExp
|
|
| | | | | | | | `-- number
|
|
| | | | | | | | `-- IntConst: 2
|
|
| | | | | | | |-- R_PAREN: )
|
|
| | | | | | | `-- stmt
|
|
| | | | | | | `-- block
|
|
| | | | | | | |-- L_BRACE: {
|
|
| | | | | | | |-- blockItem
|
|
| | | | | | | | `-- stmt
|
|
| | | | | | | | |-- lVal
|
|
| | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | |-- Assign: =
|
|
| | | | | | | | |-- exp
|
|
| | | | | | | | | `-- addExp
|
|
| | | | | | | | | |-- addExp
|
|
| | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | | |-- AddOp: +
|
|
| | | | | | | | | `-- mulExp
|
|
| | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | `-- number
|
|
| | | | | | | | | | `-- IntConst: 1
|
|
| | | | | | | | | |-- MulOp: *
|
|
| | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | `-- lVal
|
|
| | | | | | | | | |-- Ident: SHIFT_TABLE
|
|
| | | | | | | | | |-- L_BRACKET: [
|
|
| | | | | | | | | |-- exp
|
|
| | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | `-- Ident: i
|
|
| | | | | | | | | `-- R_BRACKET: ]
|
|
| | | | | | | | `-- Semi: ;
|
|
| | | | | | | `-- R_BRACE: }
|
|
| | | | | | |-- blockItem
|
|
| | | | | | | `-- stmt
|
|
| | | | | | | |-- lVal
|
|
| | | | | | | | `-- Ident: x
|
|
| | | | | | | |-- Assign: =
|
|
| | | | | | | |-- exp
|
|
| | | | | | | | `-- addExp
|
|
| | | | | | | | `-- mulExp
|
|
| | | | | | | | |-- mulExp
|
|
| | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | `-- lVal
|
|
| | | | | | | | | `-- Ident: x
|
|
| | | | | | | | |-- DivOp: /
|
|
| | | | | | | | `-- unaryExp
|
|
| | | | | | | | `-- primaryExp
|
|
| | | | | | | | `-- number
|
|
| | | | | | | | `-- IntConst: 2
|
|
| | | | | | | `-- Semi: ;
|
|
| | | | | | |-- blockItem
|
|
| | | | | | | `-- stmt
|
|
| | | | | | | |-- lVal
|
|
| | | | | | | | `-- Ident: y
|
|
| | | | | | | |-- Assign: =
|
|
| | | | | | | |-- exp
|
|
| | | | | | | | `-- addExp
|
|
| | | | | | | | `-- mulExp
|
|
| | | | | | | | |-- mulExp
|
|
| | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | `-- lVal
|
|
| | | | | | | | | `-- Ident: y
|
|
| | | | | | | | |-- DivOp: /
|
|
| | | | | | | | `-- unaryExp
|
|
| | | | | | | | `-- primaryExp
|
|
| | | | | | | | `-- number
|
|
| | | | | | | | `-- IntConst: 2
|
|
| | | | | | | `-- Semi: ;
|
|
| | | | | | |-- blockItem
|
|
| | | | | | | `-- stmt
|
|
| | | | | | | |-- lVal
|
|
| | | | | | | | `-- Ident: i
|
|
| | | | | | | |-- Assign: =
|
|
| | | | | | | |-- exp
|
|
| | | | | | | | `-- addExp
|
|
| | | | | | | | |-- addExp
|
|
| | | | | | | | | `-- mulExp
|
|
| | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | `-- lVal
|
|
| | | | | | | | | `-- Ident: i
|
|
| | | | | | | | |-- AddOp: +
|
|
| | | | | | | | `-- mulExp
|
|
| | | | | | | | `-- unaryExp
|
|
| | | | | | | | `-- primaryExp
|
|
| | | | | | | | `-- number
|
|
| | | | | | | | `-- IntConst: 1
|
|
| | | | | | | `-- Semi: ;
|
|
| | | | | | `-- R_BRACE: }
|
|
| | | | | |-- blockItem
|
|
| | | | | | `-- stmt
|
|
| | | | | | |-- If: if
|
|
| | | | | | |-- L_PAREN: (
|
|
| | | | | | |-- cond
|
|
| | | | | | | `-- lOrExp
|
|
| | | | | | | `-- lAndExp
|
|
| | | | | | | `-- eqExp
|
|
| | | | | | | `-- relExp
|
|
| | | | | | | `-- addExp
|
|
| | | | | | | `-- mulExp
|
|
| | | | | | | `-- unaryExp
|
|
| | | | | | | `-- primaryExp
|
|
| | | | | | | `-- lVal
|
|
| | | | | | | `-- Ident: ans
|
|
| | | | | | |-- R_PAREN: )
|
|
| | | | | | `-- stmt
|
|
| | | | | | `-- block
|
|
| | | | | | |-- L_BRACE: {
|
|
| | | | | | |-- blockItem
|
|
| | | | | | | `-- stmt
|
|
| | | | | | | `-- block
|
|
| | | | | | | |-- L_BRACE: {
|
|
| | | | | | | |-- blockItem
|
|
| | | | | | | | `-- decl
|
|
| | | | | | | | `-- varDecl
|
|
| | | | | | | | |-- bType
|
|
| | | | | | | | | `-- Int: int
|
|
| | | | | | | | |-- varDef
|
|
| | | | | | | | | |-- Ident: al
|
|
| | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | `-- initVal
|
|
| | | | | | | | | `-- exp
|
|
| | | | | | | | | `-- addExp
|
|
| | | | | | | | | `-- mulExp
|
|
| | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | `-- lVal
|
|
| | | | | | | | | `-- Ident: mres
|
|
| | | | | | | | |-- Comma: ,
|
|
| | | | | | | | |-- varDef
|
|
| | | | | | | | | |-- Ident: c
|
|
| | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | `-- initVal
|
|
| | | | | | | | | `-- exp
|
|
| | | | | | | | | `-- addExp
|
|
| | | | | | | | | `-- mulExp
|
|
| | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | `-- lVal
|
|
| | | | | | | | | `-- Ident: ml
|
|
| | | | | | | | |-- Comma: ,
|
|
| | | | | | | | |-- varDef
|
|
| | | | | | | | | `-- Ident: sum
|
|
| | | | | | | | `-- Semi: ;
|
|
| | | | | | | |-- blockItem
|
|
| | | | | | | | `-- stmt
|
|
| | | | | | | | |-- While: while
|
|
| | | | | | | | |-- L_PAREN: (
|
|
| | | | | | | | |-- cond
|
|
| | | | | | | | | `-- lOrExp
|
|
| | | | | | | | | `-- lAndExp
|
|
| | | | | | | | | `-- eqExp
|
|
| | | | | | | | | `-- relExp
|
|
| | | | | | | | | `-- addExp
|
|
| | | | | | | | | `-- mulExp
|
|
| | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | `-- lVal
|
|
| | | | | | | | | `-- Ident: c
|
|
| | | | | | | | |-- R_PAREN: )
|
|
| | | | | | | | `-- stmt
|
|
| | | | | | | | `-- block
|
|
| | | | | | | | |-- L_BRACE: {
|
|
| | | | | | | | |-- blockItem
|
|
| | | | | | | | | `-- stmt
|
|
| | | | | | | | | |-- lVal
|
|
| | | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | |-- 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
|
|
| | | | | | | | | |-- lVal
|
|
| | | | | | | | | | `-- Ident: x
|
|
| | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | |-- exp
|
|
| | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | `-- Ident: al
|
|
| | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | |-- blockItem
|
|
| | | | | | | | | `-- stmt
|
|
| | | | | | | | | |-- lVal
|
|
| | | | | | | | | | `-- Ident: y
|
|
| | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | |-- exp
|
|
| | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | `-- Ident: c
|
|
| | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | |-- blockItem
|
|
| | | | | | | | | `-- stmt
|
|
| | | | | | | | | |-- While: while
|
|
| | | | | | | | | |-- L_PAREN: (
|
|
| | | | | | | | | |-- cond
|
|
| | | | | | | | | | `-- lOrExp
|
|
| | | | | | | | | | `-- lAndExp
|
|
| | | | | | | | | | `-- eqExp
|
|
| | | | | | | | | | `-- relExp
|
|
| | | | | | | | | | |-- relExp
|
|
| | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | `-- Ident: i
|
|
| | | | | | | | | | |-- LtOp: <
|
|
| | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | `-- number
|
|
| | | | | | | | | | `-- IntConst: 16
|
|
| | | | | | | | | |-- R_PAREN: )
|
|
| | | | | | | | | `-- stmt
|
|
| | | | | | | | | `-- block
|
|
| | | | | | | | | |-- L_BRACE: {
|
|
| | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | |-- If: if
|
|
| | | | | | | | | | |-- L_PAREN: (
|
|
| | | | | | | | | | |-- cond
|
|
| | | | | | | | | | | `-- lOrExp
|
|
| | | | | | | | | | | `-- lAndExp
|
|
| | | | | | | | | | | `-- eqExp
|
|
| | | | | | | | | | | `-- relExp
|
|
| | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | `-- Ident: x
|
|
| | | | | | | | | | | |-- ModOp: %
|
|
| | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | `-- IntConst: 2
|
|
| | | | | | | | | | |-- R_PAREN: )
|
|
| | | | | | | | | | |-- stmt
|
|
| | | | | | | | | | | `-- block
|
|
| | | | | | | | | | | |-- L_BRACE: {
|
|
| | | | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | | |-- If: if
|
|
| | | | | | | | | | | | |-- L_PAREN: (
|
|
| | | | | | | | | | | | |-- cond
|
|
| | | | | | | | | | | | | `-- lOrExp
|
|
| | | | | | | | | | | | | `-- lAndExp
|
|
| | | | | | | | | | | | | `-- eqExp
|
|
| | | | | | | | | | | | | |-- eqExp
|
|
| | | | | | | | | | | | | | `-- relExp
|
|
| | | | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | | | `-- Ident: y
|
|
| | | | | | | | | | | | | | |-- ModOp: %
|
|
| | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | | | `-- IntConst: 2
|
|
| | | | | | | | | | | | | |-- EqOp: ==
|
|
| | | | | | | | | | | | | `-- relExp
|
|
| | | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | | `-- IntConst: 0
|
|
| | | | | | | | | | | | |-- R_PAREN: )
|
|
| | | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | | `-- block
|
|
| | | | | | | | | | | | |-- L_BRACE: {
|
|
| | | | | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | | | |-- addExp
|
|
| | | | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | | | | | | | |-- AddOp: +
|
|
| | | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | | | | `-- IntConst: 1
|
|
| | | | | | | | | | | | | | |-- MulOp: *
|
|
| | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | | |-- Ident: SHIFT_TABLE
|
|
| | | | | | | | | | | | | | |-- L_BRACKET: [
|
|
| | | | | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | | | `-- Ident: i
|
|
| | | | | | | | | | | | | | `-- R_BRACKET: ]
|
|
| | | | | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | | | | `-- R_BRACE: }
|
|
| | | | | | | | | | | `-- R_BRACE: }
|
|
| | | | | | | | | | |-- Else: else
|
|
| | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | |-- If: if
|
|
| | | | | | | | | | |-- L_PAREN: (
|
|
| | | | | | | | | | |-- cond
|
|
| | | | | | | | | | | `-- lOrExp
|
|
| | | | | | | | | | | `-- lAndExp
|
|
| | | | | | | | | | | `-- eqExp
|
|
| | | | | | | | | | | `-- relExp
|
|
| | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | `-- Ident: y
|
|
| | | | | | | | | | | |-- ModOp: %
|
|
| | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | `-- IntConst: 2
|
|
| | | | | | | | | | |-- R_PAREN: )
|
|
| | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | `-- block
|
|
| | | | | | | | | | |-- L_BRACE: {
|
|
| | | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | |-- addExp
|
|
| | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | | | | | |-- AddOp: +
|
|
| | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | | `-- IntConst: 1
|
|
| | | | | | | | | | | | |-- MulOp: *
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | |-- Ident: SHIFT_TABLE
|
|
| | | | | | | | | | | | |-- L_BRACKET: [
|
|
| | | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | `-- Ident: i
|
|
| | | | | | | | | | | | `-- R_BRACKET: ]
|
|
| | | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | | `-- R_BRACE: }
|
|
| | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | `-- Ident: x
|
|
| | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | `-- Ident: x
|
|
| | | | | | | | | | | |-- DivOp: /
|
|
| | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | `-- IntConst: 2
|
|
| | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | `-- Ident: y
|
|
| | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | `-- Ident: y
|
|
| | | | | | | | | | | |-- DivOp: /
|
|
| | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | `-- IntConst: 2
|
|
| | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | `-- Ident: i
|
|
| | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | |-- addExp
|
|
| | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | `-- Ident: i
|
|
| | | | | | | | | | | |-- AddOp: +
|
|
| | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | `-- IntConst: 1
|
|
| | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | `-- R_BRACE: }
|
|
| | | | | | | | |-- blockItem
|
|
| | | | | | | | | `-- stmt
|
|
| | | | | | | | | |-- lVal
|
|
| | | | | | | | | | `-- Ident: sum
|
|
| | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | |-- exp
|
|
| | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | |-- blockItem
|
|
| | | | | | | | | `-- stmt
|
|
| | | | | | | | | |-- lVal
|
|
| | | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | |-- 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
|
|
| | | | | | | | | |-- lVal
|
|
| | | | | | | | | | `-- Ident: x
|
|
| | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | |-- exp
|
|
| | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | `-- Ident: al
|
|
| | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | |-- blockItem
|
|
| | | | | | | | | `-- stmt
|
|
| | | | | | | | | |-- lVal
|
|
| | | | | | | | | | `-- Ident: y
|
|
| | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | |-- exp
|
|
| | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | `-- Ident: c
|
|
| | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | |-- blockItem
|
|
| | | | | | | | | `-- stmt
|
|
| | | | | | | | | |-- While: while
|
|
| | | | | | | | | |-- L_PAREN: (
|
|
| | | | | | | | | |-- cond
|
|
| | | | | | | | | | `-- lOrExp
|
|
| | | | | | | | | | `-- lAndExp
|
|
| | | | | | | | | | `-- eqExp
|
|
| | | | | | | | | | `-- relExp
|
|
| | | | | | | | | | |-- relExp
|
|
| | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | `-- Ident: i
|
|
| | | | | | | | | | |-- LtOp: <
|
|
| | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | `-- number
|
|
| | | | | | | | | | `-- IntConst: 16
|
|
| | | | | | | | | |-- R_PAREN: )
|
|
| | | | | | | | | `-- stmt
|
|
| | | | | | | | | `-- block
|
|
| | | | | | | | | |-- L_BRACE: {
|
|
| | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | |-- If: if
|
|
| | | | | | | | | | |-- L_PAREN: (
|
|
| | | | | | | | | | |-- cond
|
|
| | | | | | | | | | | `-- lOrExp
|
|
| | | | | | | | | | | `-- lAndExp
|
|
| | | | | | | | | | | |-- lAndExp
|
|
| | | | | | | | | | | | `-- eqExp
|
|
| | | | | | | | | | | | `-- relExp
|
|
| | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | `-- Ident: x
|
|
| | | | | | | | | | | | |-- ModOp: %
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | `-- IntConst: 2
|
|
| | | | | | | | | | | |-- AndOp: &&
|
|
| | | | | | | | | | | `-- eqExp
|
|
| | | | | | | | | | | `-- relExp
|
|
| | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | `-- Ident: y
|
|
| | | | | | | | | | | |-- ModOp: %
|
|
| | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | `-- IntConst: 2
|
|
| | | | | | | | | | |-- R_PAREN: )
|
|
| | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | `-- block
|
|
| | | | | | | | | | |-- L_BRACE: {
|
|
| | | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | |-- addExp
|
|
| | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | | | | | |-- AddOp: +
|
|
| | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | | `-- IntConst: 1
|
|
| | | | | | | | | | | | |-- MulOp: *
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | |-- Ident: SHIFT_TABLE
|
|
| | | | | | | | | | | | |-- L_BRACKET: [
|
|
| | | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | `-- Ident: i
|
|
| | | | | | | | | | | | `-- R_BRACKET: ]
|
|
| | | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | | `-- R_BRACE: }
|
|
| | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | `-- Ident: x
|
|
| | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | `-- Ident: x
|
|
| | | | | | | | | | | |-- DivOp: /
|
|
| | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | `-- IntConst: 2
|
|
| | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | `-- Ident: y
|
|
| | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | `-- Ident: y
|
|
| | | | | | | | | | | |-- DivOp: /
|
|
| | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | `-- IntConst: 2
|
|
| | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | `-- Ident: i
|
|
| | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | |-- addExp
|
|
| | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | `-- Ident: i
|
|
| | | | | | | | | | | |-- AddOp: +
|
|
| | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | `-- IntConst: 1
|
|
| | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | `-- R_BRACE: }
|
|
| | | | | | | | |-- blockItem
|
|
| | | | | | | | | `-- stmt
|
|
| | | | | | | | | |-- lVal
|
|
| | | | | | | | | | `-- Ident: c
|
|
| | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | |-- exp
|
|
| | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | |-- blockItem
|
|
| | | | | | | | | `-- stmt
|
|
| | | | | | | | | |-- If: if
|
|
| | | | | | | | | |-- L_PAREN: (
|
|
| | | | | | | | | |-- cond
|
|
| | | | | | | | | | `-- lOrExp
|
|
| | | | | | | | | | `-- lAndExp
|
|
| | | | | | | | | | `-- eqExp
|
|
| | | | | | | | | | `-- relExp
|
|
| | | | | | | | | | |-- relExp
|
|
| | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | |-- L_PAREN: (
|
|
| | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | `-- IntConst: 1
|
|
| | | | | | | | | | | `-- R_PAREN: )
|
|
| | | | | | | | | | |-- GtOp: >
|
|
| | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | `-- number
|
|
| | | | | | | | | | `-- IntConst: 15
|
|
| | | | | | | | | |-- R_PAREN: )
|
|
| | | | | | | | | |-- stmt
|
|
| | | | | | | | | | `-- block
|
|
| | | | | | | | | | |-- L_BRACE: {
|
|
| | | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | `-- IntConst: 0
|
|
| | | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | | `-- R_BRACE: }
|
|
| | | | | | | | | |-- Else: else
|
|
| | | | | | | | | `-- stmt
|
|
| | | | | | | | | `-- block
|
|
| | | | | | | | | |-- L_BRACE: {
|
|
| | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | |-- 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
|
|
| | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | `-- Ident: x
|
|
| | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | |-- L_PAREN: (
|
|
| | | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | `-- Ident: c
|
|
| | | | | | | | | | | | `-- R_PAREN: )
|
|
| | | | | | | | | | | |-- MulOp: *
|
|
| | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | |-- Ident: SHIFT_TABLE
|
|
| | | | | | | | | | | |-- L_BRACKET: [
|
|
| | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | `-- IntConst: 1
|
|
| | | | | | | | | | | `-- R_BRACKET: ]
|
|
| | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | `-- Ident: y
|
|
| | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | `-- IntConst: 0xffff
|
|
| | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | |-- While: while
|
|
| | | | | | | | | | |-- L_PAREN: (
|
|
| | | | | | | | | | |-- cond
|
|
| | | | | | | | | | | `-- lOrExp
|
|
| | | | | | | | | | | `-- lAndExp
|
|
| | | | | | | | | | | `-- eqExp
|
|
| | | | | | | | | | | `-- relExp
|
|
| | | | | | | | | | | |-- relExp
|
|
| | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | `-- Ident: i
|
|
| | | | | | | | | | | |-- LtOp: <
|
|
| | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | `-- IntConst: 16
|
|
| | | | | | | | | | |-- R_PAREN: )
|
|
| | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | `-- block
|
|
| | | | | | | | | | |-- L_BRACE: {
|
|
| | | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | |-- If: if
|
|
| | | | | | | | | | | |-- L_PAREN: (
|
|
| | | | | | | | | | | |-- cond
|
|
| | | | | | | | | | | | `-- lOrExp
|
|
| | | | | | | | | | | | `-- lAndExp
|
|
| | | | | | | | | | | | |-- lAndExp
|
|
| | | | | | | | | | | | | `-- eqExp
|
|
| | | | | | | | | | | | | `-- relExp
|
|
| | | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | | `-- Ident: x
|
|
| | | | | | | | | | | | | |-- ModOp: %
|
|
| | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | | `-- IntConst: 2
|
|
| | | | | | | | | | | | |-- AndOp: &&
|
|
| | | | | | | | | | | | `-- eqExp
|
|
| | | | | | | | | | | | `-- relExp
|
|
| | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | `-- Ident: y
|
|
| | | | | | | | | | | | |-- ModOp: %
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | `-- IntConst: 2
|
|
| | | | | | | | | | | |-- R_PAREN: )
|
|
| | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | `-- block
|
|
| | | | | | | | | | | |-- L_BRACE: {
|
|
| | | | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | | |-- addExp
|
|
| | | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | | | | | | |-- AddOp: +
|
|
| | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | | | `-- IntConst: 1
|
|
| | | | | | | | | | | | | |-- MulOp: *
|
|
| | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | |-- Ident: SHIFT_TABLE
|
|
| | | | | | | | | | | | | |-- L_BRACKET: [
|
|
| | | | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | | `-- Ident: i
|
|
| | | | | | | | | | | | | `-- R_BRACKET: ]
|
|
| | | | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | | | `-- R_BRACE: }
|
|
| | | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | | `-- Ident: x
|
|
| | | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | `-- Ident: x
|
|
| | | | | | | | | | | | |-- DivOp: /
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | `-- IntConst: 2
|
|
| | | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | | `-- Ident: y
|
|
| | | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | `-- Ident: y
|
|
| | | | | | | | | | | | |-- DivOp: /
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | `-- IntConst: 2
|
|
| | | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | | `-- Ident: i
|
|
| | | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | |-- addExp
|
|
| | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | `-- Ident: i
|
|
| | | | | | | | | | | | |-- AddOp: +
|
|
| | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | `-- IntConst: 1
|
|
| | | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | | `-- R_BRACE: }
|
|
| | | | | | | | | `-- R_BRACE: }
|
|
| | | | | | | | |-- blockItem
|
|
| | | | | | | | | `-- stmt
|
|
| | | | | | | | | |-- lVal
|
|
| | | | | | | | | | `-- Ident: c
|
|
| | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | |-- exp
|
|
| | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | |-- blockItem
|
|
| | | | | | | | | `-- stmt
|
|
| | | | | | | | | |-- lVal
|
|
| | | | | | | | | | `-- Ident: al
|
|
| | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | |-- exp
|
|
| | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | `-- Ident: sum
|
|
| | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | `-- R_BRACE: }
|
|
| | | | | | | |-- blockItem
|
|
| | | | | | | | `-- stmt
|
|
| | | | | | | | |-- lVal
|
|
| | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | |-- Assign: =
|
|
| | | | | | | | |-- exp
|
|
| | | | | | | | | `-- addExp
|
|
| | | | | | | | | `-- mulExp
|
|
| | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | `-- lVal
|
|
| | | | | | | | | `-- Ident: al
|
|
| | | | | | | | `-- Semi: ;
|
|
| | | | | | | `-- R_BRACE: }
|
|
| | | | | | |-- blockItem
|
|
| | | | | | | `-- stmt
|
|
| | | | | | | |-- lVal
|
|
| | | | | | | | `-- Ident: mres
|
|
| | | | | | | |-- Assign: =
|
|
| | | | | | | |-- exp
|
|
| | | | | | | | `-- addExp
|
|
| | | | | | | | `-- mulExp
|
|
| | | | | | | | `-- unaryExp
|
|
| | | | | | | | `-- primaryExp
|
|
| | | | | | | | `-- lVal
|
|
| | | | | | | | `-- Ident: ans
|
|
| | | | | | | `-- Semi: ;
|
|
| | | | | | `-- R_BRACE: }
|
|
| | | | | |-- blockItem
|
|
| | | | | | `-- stmt
|
|
| | | | | | `-- block
|
|
| | | | | | |-- L_BRACE: {
|
|
| | | | | | |-- blockItem
|
|
| | | | | | | `-- decl
|
|
| | | | | | | `-- varDecl
|
|
| | | | | | | |-- bType
|
|
| | | | | | | | `-- Int: int
|
|
| | | | | | | |-- varDef
|
|
| | | | | | | | |-- Ident: al
|
|
| | | | | | | | |-- Assign: =
|
|
| | | | | | | | `-- initVal
|
|
| | | | | | | | `-- exp
|
|
| | | | | | | | `-- addExp
|
|
| | | | | | | | `-- mulExp
|
|
| | | | | | | | `-- unaryExp
|
|
| | | | | | | | `-- primaryExp
|
|
| | | | | | | | `-- lVal
|
|
| | | | | | | | `-- Ident: ml
|
|
| | | | | | | |-- Comma: ,
|
|
| | | | | | | |-- varDef
|
|
| | | | | | | | |-- Ident: c
|
|
| | | | | | | | |-- Assign: =
|
|
| | | | | | | | `-- initVal
|
|
| | | | | | | | `-- exp
|
|
| | | | | | | | `-- addExp
|
|
| | | | | | | | `-- mulExp
|
|
| | | | | | | | `-- unaryExp
|
|
| | | | | | | | `-- primaryExp
|
|
| | | | | | | | `-- lVal
|
|
| | | | | | | | `-- Ident: ml
|
|
| | | | | | | |-- Comma: ,
|
|
| | | | | | | |-- varDef
|
|
| | | | | | | | `-- Ident: sum
|
|
| | | | | | | `-- Semi: ;
|
|
| | | | | | |-- blockItem
|
|
| | | | | | | `-- stmt
|
|
| | | | | | | |-- While: while
|
|
| | | | | | | |-- L_PAREN: (
|
|
| | | | | | | |-- cond
|
|
| | | | | | | | `-- lOrExp
|
|
| | | | | | | | `-- lAndExp
|
|
| | | | | | | | `-- eqExp
|
|
| | | | | | | | `-- relExp
|
|
| | | | | | | | `-- addExp
|
|
| | | | | | | | `-- mulExp
|
|
| | | | | | | | `-- unaryExp
|
|
| | | | | | | | `-- primaryExp
|
|
| | | | | | | | `-- lVal
|
|
| | | | | | | | `-- Ident: c
|
|
| | | | | | | |-- R_PAREN: )
|
|
| | | | | | | `-- stmt
|
|
| | | | | | | `-- block
|
|
| | | | | | | |-- L_BRACE: {
|
|
| | | | | | | |-- blockItem
|
|
| | | | | | | | `-- stmt
|
|
| | | | | | | | |-- lVal
|
|
| | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | |-- Assign: =
|
|
| | | | | | | | |-- 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
|
|
| | | | | | | | |-- lVal
|
|
| | | | | | | | | `-- Ident: x
|
|
| | | | | | | | |-- Assign: =
|
|
| | | | | | | | |-- exp
|
|
| | | | | | | | | `-- addExp
|
|
| | | | | | | | | `-- mulExp
|
|
| | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | `-- lVal
|
|
| | | | | | | | | `-- Ident: al
|
|
| | | | | | | | `-- Semi: ;
|
|
| | | | | | | |-- blockItem
|
|
| | | | | | | | `-- stmt
|
|
| | | | | | | | |-- lVal
|
|
| | | | | | | | | `-- Ident: y
|
|
| | | | | | | | |-- Assign: =
|
|
| | | | | | | | |-- exp
|
|
| | | | | | | | | `-- addExp
|
|
| | | | | | | | | `-- mulExp
|
|
| | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | `-- lVal
|
|
| | | | | | | | | `-- Ident: c
|
|
| | | | | | | | `-- Semi: ;
|
|
| | | | | | | |-- blockItem
|
|
| | | | | | | | `-- stmt
|
|
| | | | | | | | |-- While: while
|
|
| | | | | | | | |-- L_PAREN: (
|
|
| | | | | | | | |-- cond
|
|
| | | | | | | | | `-- lOrExp
|
|
| | | | | | | | | `-- lAndExp
|
|
| | | | | | | | | `-- eqExp
|
|
| | | | | | | | | `-- relExp
|
|
| | | | | | | | | |-- relExp
|
|
| | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | `-- Ident: i
|
|
| | | | | | | | | |-- LtOp: <
|
|
| | | | | | | | | `-- addExp
|
|
| | | | | | | | | `-- mulExp
|
|
| | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | `-- number
|
|
| | | | | | | | | `-- IntConst: 16
|
|
| | | | | | | | |-- R_PAREN: )
|
|
| | | | | | | | `-- stmt
|
|
| | | | | | | | `-- block
|
|
| | | | | | | | |-- L_BRACE: {
|
|
| | | | | | | | |-- blockItem
|
|
| | | | | | | | | `-- stmt
|
|
| | | | | | | | | |-- If: if
|
|
| | | | | | | | | |-- L_PAREN: (
|
|
| | | | | | | | | |-- cond
|
|
| | | | | | | | | | `-- lOrExp
|
|
| | | | | | | | | | `-- lAndExp
|
|
| | | | | | | | | | `-- eqExp
|
|
| | | | | | | | | | `-- relExp
|
|
| | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | `-- Ident: x
|
|
| | | | | | | | | | |-- ModOp: %
|
|
| | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | `-- number
|
|
| | | | | | | | | | `-- IntConst: 2
|
|
| | | | | | | | | |-- R_PAREN: )
|
|
| | | | | | | | | |-- stmt
|
|
| | | | | | | | | | `-- block
|
|
| | | | | | | | | | |-- L_BRACE: {
|
|
| | | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | |-- If: if
|
|
| | | | | | | | | | | |-- L_PAREN: (
|
|
| | | | | | | | | | | |-- cond
|
|
| | | | | | | | | | | | `-- lOrExp
|
|
| | | | | | | | | | | | `-- lAndExp
|
|
| | | | | | | | | | | | `-- eqExp
|
|
| | | | | | | | | | | | |-- eqExp
|
|
| | | | | | | | | | | | | `-- relExp
|
|
| | | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | | `-- Ident: y
|
|
| | | | | | | | | | | | | |-- ModOp: %
|
|
| | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | | `-- IntConst: 2
|
|
| | | | | | | | | | | | |-- EqOp: ==
|
|
| | | | | | | | | | | | `-- relExp
|
|
| | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | `-- IntConst: 0
|
|
| | | | | | | | | | | |-- R_PAREN: )
|
|
| | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | `-- block
|
|
| | | | | | | | | | | |-- L_BRACE: {
|
|
| | | | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | | |-- addExp
|
|
| | | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | | | | | | |-- AddOp: +
|
|
| | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | | | `-- IntConst: 1
|
|
| | | | | | | | | | | | | |-- MulOp: *
|
|
| | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | |-- Ident: SHIFT_TABLE
|
|
| | | | | | | | | | | | | |-- L_BRACKET: [
|
|
| | | | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | | `-- Ident: i
|
|
| | | | | | | | | | | | | `-- R_BRACKET: ]
|
|
| | | | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | | | `-- R_BRACE: }
|
|
| | | | | | | | | | `-- R_BRACE: }
|
|
| | | | | | | | | |-- Else: else
|
|
| | | | | | | | | `-- stmt
|
|
| | | | | | | | | |-- If: if
|
|
| | | | | | | | | |-- L_PAREN: (
|
|
| | | | | | | | | |-- cond
|
|
| | | | | | | | | | `-- lOrExp
|
|
| | | | | | | | | | `-- lAndExp
|
|
| | | | | | | | | | `-- eqExp
|
|
| | | | | | | | | | `-- relExp
|
|
| | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | `-- Ident: y
|
|
| | | | | | | | | | |-- ModOp: %
|
|
| | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | `-- number
|
|
| | | | | | | | | | `-- IntConst: 2
|
|
| | | | | | | | | |-- R_PAREN: )
|
|
| | | | | | | | | `-- stmt
|
|
| | | | | | | | | `-- block
|
|
| | | | | | | | | |-- L_BRACE: {
|
|
| | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | |-- addExp
|
|
| | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | | | | |-- AddOp: +
|
|
| | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | `-- IntConst: 1
|
|
| | | | | | | | | | | |-- MulOp: *
|
|
| | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | |-- Ident: SHIFT_TABLE
|
|
| | | | | | | | | | | |-- L_BRACKET: [
|
|
| | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | `-- Ident: i
|
|
| | | | | | | | | | | `-- R_BRACKET: ]
|
|
| | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | `-- R_BRACE: }
|
|
| | | | | | | | |-- blockItem
|
|
| | | | | | | | | `-- stmt
|
|
| | | | | | | | | |-- lVal
|
|
| | | | | | | | | | `-- Ident: x
|
|
| | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | |-- exp
|
|
| | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | `-- Ident: x
|
|
| | | | | | | | | | |-- DivOp: /
|
|
| | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | `-- number
|
|
| | | | | | | | | | `-- IntConst: 2
|
|
| | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | |-- blockItem
|
|
| | | | | | | | | `-- stmt
|
|
| | | | | | | | | |-- lVal
|
|
| | | | | | | | | | `-- Ident: y
|
|
| | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | |-- exp
|
|
| | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | `-- Ident: y
|
|
| | | | | | | | | | |-- DivOp: /
|
|
| | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | `-- number
|
|
| | | | | | | | | | `-- IntConst: 2
|
|
| | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | |-- blockItem
|
|
| | | | | | | | | `-- stmt
|
|
| | | | | | | | | |-- lVal
|
|
| | | | | | | | | | `-- Ident: i
|
|
| | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | |-- exp
|
|
| | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | |-- addExp
|
|
| | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | `-- Ident: i
|
|
| | | | | | | | | | |-- AddOp: +
|
|
| | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | `-- number
|
|
| | | | | | | | | | `-- IntConst: 1
|
|
| | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | `-- R_BRACE: }
|
|
| | | | | | | |-- blockItem
|
|
| | | | | | | | `-- stmt
|
|
| | | | | | | | |-- lVal
|
|
| | | | | | | | | `-- Ident: sum
|
|
| | | | | | | | |-- Assign: =
|
|
| | | | | | | | |-- exp
|
|
| | | | | | | | | `-- addExp
|
|
| | | | | | | | | `-- mulExp
|
|
| | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | `-- lVal
|
|
| | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | `-- Semi: ;
|
|
| | | | | | | |-- blockItem
|
|
| | | | | | | | `-- stmt
|
|
| | | | | | | | |-- lVal
|
|
| | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | |-- Assign: =
|
|
| | | | | | | | |-- 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
|
|
| | | | | | | | |-- lVal
|
|
| | | | | | | | | `-- Ident: x
|
|
| | | | | | | | |-- Assign: =
|
|
| | | | | | | | |-- exp
|
|
| | | | | | | | | `-- addExp
|
|
| | | | | | | | | `-- mulExp
|
|
| | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | `-- lVal
|
|
| | | | | | | | | `-- Ident: al
|
|
| | | | | | | | `-- Semi: ;
|
|
| | | | | | | |-- blockItem
|
|
| | | | | | | | `-- stmt
|
|
| | | | | | | | |-- lVal
|
|
| | | | | | | | | `-- Ident: y
|
|
| | | | | | | | |-- Assign: =
|
|
| | | | | | | | |-- exp
|
|
| | | | | | | | | `-- addExp
|
|
| | | | | | | | | `-- mulExp
|
|
| | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | `-- lVal
|
|
| | | | | | | | | `-- Ident: c
|
|
| | | | | | | | `-- Semi: ;
|
|
| | | | | | | |-- blockItem
|
|
| | | | | | | | `-- stmt
|
|
| | | | | | | | |-- While: while
|
|
| | | | | | | | |-- L_PAREN: (
|
|
| | | | | | | | |-- cond
|
|
| | | | | | | | | `-- lOrExp
|
|
| | | | | | | | | `-- lAndExp
|
|
| | | | | | | | | `-- eqExp
|
|
| | | | | | | | | `-- relExp
|
|
| | | | | | | | | |-- relExp
|
|
| | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | `-- Ident: i
|
|
| | | | | | | | | |-- LtOp: <
|
|
| | | | | | | | | `-- addExp
|
|
| | | | | | | | | `-- mulExp
|
|
| | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | `-- number
|
|
| | | | | | | | | `-- IntConst: 16
|
|
| | | | | | | | |-- R_PAREN: )
|
|
| | | | | | | | `-- stmt
|
|
| | | | | | | | `-- block
|
|
| | | | | | | | |-- L_BRACE: {
|
|
| | | | | | | | |-- blockItem
|
|
| | | | | | | | | `-- stmt
|
|
| | | | | | | | | |-- If: if
|
|
| | | | | | | | | |-- L_PAREN: (
|
|
| | | | | | | | | |-- cond
|
|
| | | | | | | | | | `-- lOrExp
|
|
| | | | | | | | | | `-- lAndExp
|
|
| | | | | | | | | | |-- lAndExp
|
|
| | | | | | | | | | | `-- eqExp
|
|
| | | | | | | | | | | `-- relExp
|
|
| | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | `-- Ident: x
|
|
| | | | | | | | | | | |-- ModOp: %
|
|
| | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | `-- IntConst: 2
|
|
| | | | | | | | | | |-- AndOp: &&
|
|
| | | | | | | | | | `-- eqExp
|
|
| | | | | | | | | | `-- relExp
|
|
| | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | `-- Ident: y
|
|
| | | | | | | | | | |-- ModOp: %
|
|
| | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | `-- number
|
|
| | | | | | | | | | `-- IntConst: 2
|
|
| | | | | | | | | |-- R_PAREN: )
|
|
| | | | | | | | | `-- stmt
|
|
| | | | | | | | | `-- block
|
|
| | | | | | | | | |-- L_BRACE: {
|
|
| | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | |-- addExp
|
|
| | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | | | | |-- AddOp: +
|
|
| | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | `-- IntConst: 1
|
|
| | | | | | | | | | | |-- MulOp: *
|
|
| | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | |-- Ident: SHIFT_TABLE
|
|
| | | | | | | | | | | |-- L_BRACKET: [
|
|
| | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | `-- Ident: i
|
|
| | | | | | | | | | | `-- R_BRACKET: ]
|
|
| | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | `-- R_BRACE: }
|
|
| | | | | | | | |-- blockItem
|
|
| | | | | | | | | `-- stmt
|
|
| | | | | | | | | |-- lVal
|
|
| | | | | | | | | | `-- Ident: x
|
|
| | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | |-- exp
|
|
| | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | `-- Ident: x
|
|
| | | | | | | | | | |-- DivOp: /
|
|
| | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | `-- number
|
|
| | | | | | | | | | `-- IntConst: 2
|
|
| | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | |-- blockItem
|
|
| | | | | | | | | `-- stmt
|
|
| | | | | | | | | |-- lVal
|
|
| | | | | | | | | | `-- Ident: y
|
|
| | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | |-- exp
|
|
| | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | `-- Ident: y
|
|
| | | | | | | | | | |-- DivOp: /
|
|
| | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | `-- number
|
|
| | | | | | | | | | `-- IntConst: 2
|
|
| | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | |-- blockItem
|
|
| | | | | | | | | `-- stmt
|
|
| | | | | | | | | |-- lVal
|
|
| | | | | | | | | | `-- Ident: i
|
|
| | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | |-- exp
|
|
| | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | |-- addExp
|
|
| | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | `-- Ident: i
|
|
| | | | | | | | | | |-- AddOp: +
|
|
| | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | `-- number
|
|
| | | | | | | | | | `-- IntConst: 1
|
|
| | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | `-- R_BRACE: }
|
|
| | | | | | | |-- blockItem
|
|
| | | | | | | | `-- stmt
|
|
| | | | | | | | |-- lVal
|
|
| | | | | | | | | `-- Ident: c
|
|
| | | | | | | | |-- Assign: =
|
|
| | | | | | | | |-- exp
|
|
| | | | | | | | | `-- addExp
|
|
| | | | | | | | | `-- mulExp
|
|
| | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | `-- lVal
|
|
| | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | `-- Semi: ;
|
|
| | | | | | | |-- blockItem
|
|
| | | | | | | | `-- stmt
|
|
| | | | | | | | |-- If: if
|
|
| | | | | | | | |-- L_PAREN: (
|
|
| | | | | | | | |-- cond
|
|
| | | | | | | | | `-- lOrExp
|
|
| | | | | | | | | `-- lAndExp
|
|
| | | | | | | | | `-- eqExp
|
|
| | | | | | | | | `-- relExp
|
|
| | | | | | | | | |-- relExp
|
|
| | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | |-- L_PAREN: (
|
|
| | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | `-- IntConst: 1
|
|
| | | | | | | | | | `-- R_PAREN: )
|
|
| | | | | | | | | |-- GtOp: >
|
|
| | | | | | | | | `-- addExp
|
|
| | | | | | | | | `-- mulExp
|
|
| | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | `-- number
|
|
| | | | | | | | | `-- IntConst: 15
|
|
| | | | | | | | |-- R_PAREN: )
|
|
| | | | | | | | |-- stmt
|
|
| | | | | | | | | `-- block
|
|
| | | | | | | | | |-- L_BRACE: {
|
|
| | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | `-- IntConst: 0
|
|
| | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | `-- R_BRACE: }
|
|
| | | | | | | | |-- Else: else
|
|
| | | | | | | | `-- stmt
|
|
| | | | | | | | `-- block
|
|
| | | | | | | | |-- L_BRACE: {
|
|
| | | | | | | | |-- blockItem
|
|
| | | | | | | | | `-- stmt
|
|
| | | | | | | | | |-- lVal
|
|
| | | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | |-- 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
|
|
| | | | | | | | | |-- lVal
|
|
| | | | | | | | | | `-- Ident: x
|
|
| | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | |-- exp
|
|
| | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | |-- L_PAREN: (
|
|
| | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | `-- Ident: c
|
|
| | | | | | | | | | | `-- R_PAREN: )
|
|
| | | | | | | | | | |-- MulOp: *
|
|
| | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | |-- Ident: SHIFT_TABLE
|
|
| | | | | | | | | | |-- L_BRACKET: [
|
|
| | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | `-- IntConst: 1
|
|
| | | | | | | | | | `-- R_BRACKET: ]
|
|
| | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | |-- blockItem
|
|
| | | | | | | | | `-- stmt
|
|
| | | | | | | | | |-- lVal
|
|
| | | | | | | | | | `-- Ident: y
|
|
| | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | |-- exp
|
|
| | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | `-- number
|
|
| | | | | | | | | | `-- IntConst: 0xffff
|
|
| | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | |-- blockItem
|
|
| | | | | | | | | `-- stmt
|
|
| | | | | | | | | |-- While: while
|
|
| | | | | | | | | |-- L_PAREN: (
|
|
| | | | | | | | | |-- cond
|
|
| | | | | | | | | | `-- lOrExp
|
|
| | | | | | | | | | `-- lAndExp
|
|
| | | | | | | | | | `-- eqExp
|
|
| | | | | | | | | | `-- relExp
|
|
| | | | | | | | | | |-- relExp
|
|
| | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | `-- Ident: i
|
|
| | | | | | | | | | |-- LtOp: <
|
|
| | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | `-- number
|
|
| | | | | | | | | | `-- IntConst: 16
|
|
| | | | | | | | | |-- R_PAREN: )
|
|
| | | | | | | | | `-- stmt
|
|
| | | | | | | | | `-- block
|
|
| | | | | | | | | |-- L_BRACE: {
|
|
| | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | |-- If: if
|
|
| | | | | | | | | | |-- L_PAREN: (
|
|
| | | | | | | | | | |-- cond
|
|
| | | | | | | | | | | `-- lOrExp
|
|
| | | | | | | | | | | `-- lAndExp
|
|
| | | | | | | | | | | |-- lAndExp
|
|
| | | | | | | | | | | | `-- eqExp
|
|
| | | | | | | | | | | | `-- relExp
|
|
| | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | `-- Ident: x
|
|
| | | | | | | | | | | | |-- ModOp: %
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | `-- IntConst: 2
|
|
| | | | | | | | | | | |-- AndOp: &&
|
|
| | | | | | | | | | | `-- eqExp
|
|
| | | | | | | | | | | `-- relExp
|
|
| | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | `-- Ident: y
|
|
| | | | | | | | | | | |-- ModOp: %
|
|
| | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | `-- IntConst: 2
|
|
| | | | | | | | | | |-- R_PAREN: )
|
|
| | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | `-- block
|
|
| | | | | | | | | | |-- L_BRACE: {
|
|
| | | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | |-- addExp
|
|
| | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | | | | | |-- AddOp: +
|
|
| | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | | `-- IntConst: 1
|
|
| | | | | | | | | | | | |-- MulOp: *
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | |-- Ident: SHIFT_TABLE
|
|
| | | | | | | | | | | | |-- L_BRACKET: [
|
|
| | | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | `-- Ident: i
|
|
| | | | | | | | | | | | `-- R_BRACKET: ]
|
|
| | | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | | `-- R_BRACE: }
|
|
| | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | `-- Ident: x
|
|
| | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | `-- Ident: x
|
|
| | | | | | | | | | | |-- DivOp: /
|
|
| | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | `-- IntConst: 2
|
|
| | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | `-- Ident: y
|
|
| | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | `-- Ident: y
|
|
| | | | | | | | | | | |-- DivOp: /
|
|
| | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | `-- IntConst: 2
|
|
| | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | `-- Ident: i
|
|
| | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | |-- addExp
|
|
| | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | `-- Ident: i
|
|
| | | | | | | | | | | |-- AddOp: +
|
|
| | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | `-- IntConst: 1
|
|
| | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | `-- R_BRACE: }
|
|
| | | | | | | | `-- R_BRACE: }
|
|
| | | | | | | |-- blockItem
|
|
| | | | | | | | `-- stmt
|
|
| | | | | | | | |-- lVal
|
|
| | | | | | | | | `-- Ident: c
|
|
| | | | | | | | |-- Assign: =
|
|
| | | | | | | | |-- exp
|
|
| | | | | | | | | `-- addExp
|
|
| | | | | | | | | `-- mulExp
|
|
| | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | `-- lVal
|
|
| | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | `-- Semi: ;
|
|
| | | | | | | |-- blockItem
|
|
| | | | | | | | `-- stmt
|
|
| | | | | | | | |-- lVal
|
|
| | | | | | | | | `-- Ident: al
|
|
| | | | | | | | |-- Assign: =
|
|
| | | | | | | | |-- exp
|
|
| | | | | | | | | `-- addExp
|
|
| | | | | | | | | `-- mulExp
|
|
| | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | `-- lVal
|
|
| | | | | | | | | `-- Ident: sum
|
|
| | | | | | | | `-- Semi: ;
|
|
| | | | | | | `-- R_BRACE: }
|
|
| | | | | | |-- blockItem
|
|
| | | | | | | `-- stmt
|
|
| | | | | | | |-- lVal
|
|
| | | | | | | | `-- Ident: ans
|
|
| | | | | | | |-- Assign: =
|
|
| | | | | | | |-- exp
|
|
| | | | | | | | `-- addExp
|
|
| | | | | | | | `-- mulExp
|
|
| | | | | | | | `-- unaryExp
|
|
| | | | | | | | `-- primaryExp
|
|
| | | | | | | | `-- lVal
|
|
| | | | | | | | `-- Ident: al
|
|
| | | | | | | `-- Semi: ;
|
|
| | | | | | `-- R_BRACE: }
|
|
| | | | | |-- blockItem
|
|
| | | | | | `-- stmt
|
|
| | | | | | |-- lVal
|
|
| | | | | | | `-- Ident: ml
|
|
| | | | | | |-- Assign: =
|
|
| | | | | | |-- exp
|
|
| | | | | | | `-- addExp
|
|
| | | | | | | `-- mulExp
|
|
| | | | | | | `-- unaryExp
|
|
| | | | | | | `-- primaryExp
|
|
| | | | | | | `-- lVal
|
|
| | | | | | | `-- Ident: ans
|
|
| | | | | | `-- Semi: ;
|
|
| | | | | |-- blockItem
|
|
| | | | | | `-- stmt
|
|
| | | | | | |-- lVal
|
|
| | | | | | | `-- Ident: x
|
|
| | | | | | |-- Assign: =
|
|
| | | | | | |-- exp
|
|
| | | | | | | `-- addExp
|
|
| | | | | | | `-- mulExp
|
|
| | | | | | | `-- unaryExp
|
|
| | | | | | | `-- primaryExp
|
|
| | | | | | | `-- lVal
|
|
| | | | | | | `-- Ident: mr
|
|
| | | | | | `-- Semi: ;
|
|
| | | | | |-- blockItem
|
|
| | | | | | `-- stmt
|
|
| | | | | | |-- lVal
|
|
| | | | | | | `-- Ident: y
|
|
| | | | | | |-- Assign: =
|
|
| | | | | | |-- exp
|
|
| | | | | | | `-- addExp
|
|
| | | | | | | `-- mulExp
|
|
| | | | | | | `-- unaryExp
|
|
| | | | | | | `-- primaryExp
|
|
| | | | | | | `-- number
|
|
| | | | | | | `-- IntConst: 1
|
|
| | | | | | `-- Semi: ;
|
|
| | | | | |-- blockItem
|
|
| | | | | | `-- stmt
|
|
| | | | | | |-- If: if
|
|
| | | | | | |-- L_PAREN: (
|
|
| | | | | | |-- cond
|
|
| | | | | | | `-- lOrExp
|
|
| | | | | | | `-- lAndExp
|
|
| | | | | | | `-- eqExp
|
|
| | | | | | | `-- relExp
|
|
| | | | | | | |-- relExp
|
|
| | | | | | | | `-- addExp
|
|
| | | | | | | | `-- mulExp
|
|
| | | | | | | | `-- unaryExp
|
|
| | | | | | | | `-- primaryExp
|
|
| | | | | | | | `-- lVal
|
|
| | | | | | | | `-- Ident: y
|
|
| | | | | | | |-- GeOp: >=
|
|
| | | | | | | `-- addExp
|
|
| | | | | | | `-- mulExp
|
|
| | | | | | | `-- unaryExp
|
|
| | | | | | | `-- primaryExp
|
|
| | | | | | | `-- number
|
|
| | | | | | | `-- IntConst: 15
|
|
| | | | | | |-- R_PAREN: )
|
|
| | | | | | |-- stmt
|
|
| | | | | | | `-- block
|
|
| | | | | | | |-- L_BRACE: {
|
|
| | | | | | | |-- blockItem
|
|
| | | | | | | | `-- stmt
|
|
| | | | | | | | |-- If: if
|
|
| | | | | | | | |-- L_PAREN: (
|
|
| | | | | | | | |-- cond
|
|
| | | | | | | | | `-- lOrExp
|
|
| | | | | | | | | `-- lAndExp
|
|
| | | | | | | | | `-- eqExp
|
|
| | | | | | | | | `-- relExp
|
|
| | | | | | | | | |-- relExp
|
|
| | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | `-- Ident: x
|
|
| | | | | | | | | |-- LtOp: <
|
|
| | | | | | | | | `-- addExp
|
|
| | | | | | | | | `-- mulExp
|
|
| | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | `-- number
|
|
| | | | | | | | | `-- IntConst: 0
|
|
| | | | | | | | |-- R_PAREN: )
|
|
| | | | | | | | |-- stmt
|
|
| | | | | | | | | `-- block
|
|
| | | | | | | | | |-- L_BRACE: {
|
|
| | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | `-- IntConst: 0xffff
|
|
| | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | `-- R_BRACE: }
|
|
| | | | | | | | |-- Else: else
|
|
| | | | | | | | `-- stmt
|
|
| | | | | | | | `-- block
|
|
| | | | | | | | |-- L_BRACE: {
|
|
| | | | | | | | |-- blockItem
|
|
| | | | | | | | | `-- stmt
|
|
| | | | | | | | | |-- lVal
|
|
| | | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | |-- exp
|
|
| | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | `-- number
|
|
| | | | | | | | | | `-- IntConst: 0
|
|
| | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | `-- R_BRACE: }
|
|
| | | | | | | `-- R_BRACE: }
|
|
| | | | | | |-- Else: else
|
|
| | | | | | `-- stmt
|
|
| | | | | | |-- If: if
|
|
| | | | | | |-- L_PAREN: (
|
|
| | | | | | |-- cond
|
|
| | | | | | | `-- lOrExp
|
|
| | | | | | | `-- lAndExp
|
|
| | | | | | | `-- eqExp
|
|
| | | | | | | `-- relExp
|
|
| | | | | | | |-- relExp
|
|
| | | | | | | | `-- addExp
|
|
| | | | | | | | `-- mulExp
|
|
| | | | | | | | `-- unaryExp
|
|
| | | | | | | | `-- primaryExp
|
|
| | | | | | | | `-- lVal
|
|
| | | | | | | | `-- Ident: y
|
|
| | | | | | | |-- GtOp: >
|
|
| | | | | | | `-- addExp
|
|
| | | | | | | `-- mulExp
|
|
| | | | | | | `-- unaryExp
|
|
| | | | | | | `-- primaryExp
|
|
| | | | | | | `-- number
|
|
| | | | | | | `-- IntConst: 0
|
|
| | | | | | |-- R_PAREN: )
|
|
| | | | | | |-- stmt
|
|
| | | | | | | `-- block
|
|
| | | | | | | |-- L_BRACE: {
|
|
| | | | | | | |-- blockItem
|
|
| | | | | | | | `-- stmt
|
|
| | | | | | | | |-- If: if
|
|
| | | | | | | | |-- L_PAREN: (
|
|
| | | | | | | | |-- cond
|
|
| | | | | | | | | `-- lOrExp
|
|
| | | | | | | | | `-- lAndExp
|
|
| | | | | | | | | `-- eqExp
|
|
| | | | | | | | | `-- relExp
|
|
| | | | | | | | | |-- relExp
|
|
| | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | `-- Ident: x
|
|
| | | | | | | | | |-- GtOp: >
|
|
| | | | | | | | | `-- addExp
|
|
| | | | | | | | | `-- mulExp
|
|
| | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | `-- number
|
|
| | | | | | | | | `-- IntConst: 0x7fff
|
|
| | | | | | | | |-- R_PAREN: )
|
|
| | | | | | | | |-- stmt
|
|
| | | | | | | | | `-- block
|
|
| | | | | | | | | |-- L_BRACE: {
|
|
| | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | `-- Ident: x
|
|
| | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | `-- Ident: x
|
|
| | | | | | | | | | | |-- DivOp: /
|
|
| | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | |-- Ident: SHIFT_TABLE
|
|
| | | | | | | | | | | |-- L_BRACKET: [
|
|
| | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | `-- Ident: y
|
|
| | | | | | | | | | | `-- R_BRACKET: ]
|
|
| | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | |-- addExp
|
|
| | | | | | | | | | | | |-- addExp
|
|
| | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | `-- Ident: x
|
|
| | | | | | | | | | | | |-- AddOp: +
|
|
| | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | `-- IntConst: 65536
|
|
| | | | | | | | | | | |-- SubOp: -
|
|
| | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | |-- Ident: SHIFT_TABLE
|
|
| | | | | | | | | | | |-- L_BRACKET: [
|
|
| | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | |-- addExp
|
|
| | | | | | | | | | | | | |-- addExp
|
|
| | | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | | | `-- IntConst: 15
|
|
| | | | | | | | | | | | | |-- SubOp: -
|
|
| | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | `-- Ident: y
|
|
| | | | | | | | | | | | |-- AddOp: +
|
|
| | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | `-- IntConst: 1
|
|
| | | | | | | | | | | `-- R_BRACKET: ]
|
|
| | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | `-- R_BRACE: }
|
|
| | | | | | | | |-- Else: else
|
|
| | | | | | | | `-- stmt
|
|
| | | | | | | | `-- block
|
|
| | | | | | | | |-- L_BRACE: {
|
|
| | | | | | | | |-- blockItem
|
|
| | | | | | | | | `-- stmt
|
|
| | | | | | | | | |-- lVal
|
|
| | | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | |-- exp
|
|
| | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | `-- Ident: x
|
|
| | | | | | | | | | |-- DivOp: /
|
|
| | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | |-- Ident: SHIFT_TABLE
|
|
| | | | | | | | | | |-- L_BRACKET: [
|
|
| | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | `-- Ident: y
|
|
| | | | | | | | | | `-- R_BRACKET: ]
|
|
| | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | `-- R_BRACE: }
|
|
| | | | | | | `-- R_BRACE: }
|
|
| | | | | | |-- Else: else
|
|
| | | | | | `-- stmt
|
|
| | | | | | `-- block
|
|
| | | | | | |-- L_BRACE: {
|
|
| | | | | | |-- blockItem
|
|
| | | | | | | `-- stmt
|
|
| | | | | | | |-- lVal
|
|
| | | | | | | | `-- Ident: ans
|
|
| | | | | | | |-- Assign: =
|
|
| | | | | | | |-- exp
|
|
| | | | | | | | `-- addExp
|
|
| | | | | | | | `-- mulExp
|
|
| | | | | | | | `-- unaryExp
|
|
| | | | | | | | `-- primaryExp
|
|
| | | | | | | | `-- lVal
|
|
| | | | | | | | `-- Ident: x
|
|
| | | | | | | `-- Semi: ;
|
|
| | | | | | `-- R_BRACE: }
|
|
| | | | | |-- blockItem
|
|
| | | | | | `-- stmt
|
|
| | | | | | |-- lVal
|
|
| | | | | | | `-- Ident: mr
|
|
| | | | | | |-- Assign: =
|
|
| | | | | | |-- exp
|
|
| | | | | | | `-- addExp
|
|
| | | | | | | `-- mulExp
|
|
| | | | | | | `-- unaryExp
|
|
| | | | | | | `-- primaryExp
|
|
| | | | | | | `-- lVal
|
|
| | | | | | | `-- Ident: ans
|
|
| | | | | | `-- Semi: ;
|
|
| | | | | `-- R_BRACE: }
|
|
| | | | |-- blockItem
|
|
| | | | | `-- stmt
|
|
| | | | | |-- lVal
|
|
| | | | | | `-- Ident: ans
|
|
| | | | | |-- Assign: =
|
|
| | | | | |-- exp
|
|
| | | | | | `-- addExp
|
|
| | | | | | `-- mulExp
|
|
| | | | | | `-- unaryExp
|
|
| | | | | | `-- primaryExp
|
|
| | | | | | `-- lVal
|
|
| | | | | | `-- Ident: mres
|
|
| | | | | `-- Semi: ;
|
|
| | | | `-- R_BRACE: }
|
|
| | | |-- blockItem
|
|
| | | | `-- stmt
|
|
| | | | |-- lVal
|
|
| | | | | `-- Ident: pl
|
|
| | | | |-- Assign: =
|
|
| | | | |-- exp
|
|
| | | | | `-- addExp
|
|
| | | | | `-- mulExp
|
|
| | | | | `-- unaryExp
|
|
| | | | | `-- primaryExp
|
|
| | | | | `-- lVal
|
|
| | | | | `-- Ident: ans
|
|
| | | | `-- Semi: ;
|
|
| | | |-- blockItem
|
|
| | | | `-- stmt
|
|
| | | | |-- lVal
|
|
| | | | | `-- Ident: x
|
|
| | | | |-- Assign: =
|
|
| | | | |-- exp
|
|
| | | | | `-- addExp
|
|
| | | | | `-- mulExp
|
|
| | | | | `-- unaryExp
|
|
| | | | | `-- primaryExp
|
|
| | | | | `-- lVal
|
|
| | | | | `-- Ident: pr
|
|
| | | | `-- Semi: ;
|
|
| | | |-- blockItem
|
|
| | | | `-- stmt
|
|
| | | | |-- lVal
|
|
| | | | | `-- Ident: y
|
|
| | | | |-- Assign: =
|
|
| | | | |-- exp
|
|
| | | | | `-- addExp
|
|
| | | | | `-- mulExp
|
|
| | | | | `-- unaryExp
|
|
| | | | | `-- primaryExp
|
|
| | | | | `-- number
|
|
| | | | | `-- IntConst: 1
|
|
| | | | `-- Semi: ;
|
|
| | | |-- blockItem
|
|
| | | | `-- stmt
|
|
| | | | |-- If: if
|
|
| | | | |-- L_PAREN: (
|
|
| | | | |-- cond
|
|
| | | | | `-- lOrExp
|
|
| | | | | `-- lAndExp
|
|
| | | | | `-- eqExp
|
|
| | | | | `-- relExp
|
|
| | | | | |-- relExp
|
|
| | | | | | `-- addExp
|
|
| | | | | | `-- mulExp
|
|
| | | | | | `-- unaryExp
|
|
| | | | | | `-- primaryExp
|
|
| | | | | | `-- lVal
|
|
| | | | | | `-- Ident: y
|
|
| | | | | |-- GeOp: >=
|
|
| | | | | `-- addExp
|
|
| | | | | `-- mulExp
|
|
| | | | | `-- unaryExp
|
|
| | | | | `-- primaryExp
|
|
| | | | | `-- number
|
|
| | | | | `-- IntConst: 15
|
|
| | | | |-- R_PAREN: )
|
|
| | | | |-- stmt
|
|
| | | | | `-- block
|
|
| | | | | |-- L_BRACE: {
|
|
| | | | | |-- blockItem
|
|
| | | | | | `-- stmt
|
|
| | | | | | |-- If: if
|
|
| | | | | | |-- L_PAREN: (
|
|
| | | | | | |-- cond
|
|
| | | | | | | `-- lOrExp
|
|
| | | | | | | `-- lAndExp
|
|
| | | | | | | `-- eqExp
|
|
| | | | | | | `-- relExp
|
|
| | | | | | | |-- relExp
|
|
| | | | | | | | `-- addExp
|
|
| | | | | | | | `-- mulExp
|
|
| | | | | | | | `-- unaryExp
|
|
| | | | | | | | `-- primaryExp
|
|
| | | | | | | | `-- lVal
|
|
| | | | | | | | `-- Ident: x
|
|
| | | | | | | |-- LtOp: <
|
|
| | | | | | | `-- addExp
|
|
| | | | | | | `-- mulExp
|
|
| | | | | | | `-- unaryExp
|
|
| | | | | | | `-- primaryExp
|
|
| | | | | | | `-- number
|
|
| | | | | | | `-- IntConst: 0
|
|
| | | | | | |-- R_PAREN: )
|
|
| | | | | | |-- stmt
|
|
| | | | | | | `-- block
|
|
| | | | | | | |-- L_BRACE: {
|
|
| | | | | | | |-- blockItem
|
|
| | | | | | | | `-- stmt
|
|
| | | | | | | | |-- lVal
|
|
| | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | |-- Assign: =
|
|
| | | | | | | | |-- exp
|
|
| | | | | | | | | `-- addExp
|
|
| | | | | | | | | `-- mulExp
|
|
| | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | `-- number
|
|
| | | | | | | | | `-- IntConst: 0xffff
|
|
| | | | | | | | `-- Semi: ;
|
|
| | | | | | | `-- R_BRACE: }
|
|
| | | | | | |-- Else: else
|
|
| | | | | | `-- stmt
|
|
| | | | | | `-- block
|
|
| | | | | | |-- L_BRACE: {
|
|
| | | | | | |-- blockItem
|
|
| | | | | | | `-- stmt
|
|
| | | | | | | |-- lVal
|
|
| | | | | | | | `-- Ident: ans
|
|
| | | | | | | |-- Assign: =
|
|
| | | | | | | |-- exp
|
|
| | | | | | | | `-- addExp
|
|
| | | | | | | | `-- mulExp
|
|
| | | | | | | | `-- unaryExp
|
|
| | | | | | | | `-- primaryExp
|
|
| | | | | | | | `-- number
|
|
| | | | | | | | `-- IntConst: 0
|
|
| | | | | | | `-- Semi: ;
|
|
| | | | | | `-- R_BRACE: }
|
|
| | | | | `-- R_BRACE: }
|
|
| | | | |-- Else: else
|
|
| | | | `-- stmt
|
|
| | | | |-- If: if
|
|
| | | | |-- L_PAREN: (
|
|
| | | | |-- cond
|
|
| | | | | `-- lOrExp
|
|
| | | | | `-- lAndExp
|
|
| | | | | `-- eqExp
|
|
| | | | | `-- relExp
|
|
| | | | | |-- relExp
|
|
| | | | | | `-- addExp
|
|
| | | | | | `-- mulExp
|
|
| | | | | | `-- unaryExp
|
|
| | | | | | `-- primaryExp
|
|
| | | | | | `-- lVal
|
|
| | | | | | `-- Ident: y
|
|
| | | | | |-- GtOp: >
|
|
| | | | | `-- addExp
|
|
| | | | | `-- mulExp
|
|
| | | | | `-- unaryExp
|
|
| | | | | `-- primaryExp
|
|
| | | | | `-- number
|
|
| | | | | `-- IntConst: 0
|
|
| | | | |-- R_PAREN: )
|
|
| | | | |-- stmt
|
|
| | | | | `-- block
|
|
| | | | | |-- L_BRACE: {
|
|
| | | | | |-- blockItem
|
|
| | | | | | `-- stmt
|
|
| | | | | | |-- If: if
|
|
| | | | | | |-- L_PAREN: (
|
|
| | | | | | |-- cond
|
|
| | | | | | | `-- lOrExp
|
|
| | | | | | | `-- lAndExp
|
|
| | | | | | | `-- eqExp
|
|
| | | | | | | `-- relExp
|
|
| | | | | | | |-- relExp
|
|
| | | | | | | | `-- addExp
|
|
| | | | | | | | `-- mulExp
|
|
| | | | | | | | `-- unaryExp
|
|
| | | | | | | | `-- primaryExp
|
|
| | | | | | | | `-- lVal
|
|
| | | | | | | | `-- Ident: x
|
|
| | | | | | | |-- GtOp: >
|
|
| | | | | | | `-- addExp
|
|
| | | | | | | `-- mulExp
|
|
| | | | | | | `-- unaryExp
|
|
| | | | | | | `-- primaryExp
|
|
| | | | | | | `-- number
|
|
| | | | | | | `-- IntConst: 0x7fff
|
|
| | | | | | |-- R_PAREN: )
|
|
| | | | | | |-- stmt
|
|
| | | | | | | `-- block
|
|
| | | | | | | |-- L_BRACE: {
|
|
| | | | | | | |-- blockItem
|
|
| | | | | | | | `-- stmt
|
|
| | | | | | | | |-- lVal
|
|
| | | | | | | | | `-- Ident: x
|
|
| | | | | | | | |-- Assign: =
|
|
| | | | | | | | |-- exp
|
|
| | | | | | | | | `-- addExp
|
|
| | | | | | | | | `-- mulExp
|
|
| | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | `-- Ident: x
|
|
| | | | | | | | | |-- DivOp: /
|
|
| | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | `-- lVal
|
|
| | | | | | | | | |-- Ident: SHIFT_TABLE
|
|
| | | | | | | | | |-- L_BRACKET: [
|
|
| | | | | | | | | |-- exp
|
|
| | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | `-- Ident: y
|
|
| | | | | | | | | `-- R_BRACKET: ]
|
|
| | | | | | | | `-- Semi: ;
|
|
| | | | | | | |-- blockItem
|
|
| | | | | | | | `-- stmt
|
|
| | | | | | | | |-- lVal
|
|
| | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | |-- Assign: =
|
|
| | | | | | | | |-- exp
|
|
| | | | | | | | | `-- addExp
|
|
| | | | | | | | | |-- addExp
|
|
| | | | | | | | | | |-- addExp
|
|
| | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | `-- Ident: x
|
|
| | | | | | | | | | |-- AddOp: +
|
|
| | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | `-- number
|
|
| | | | | | | | | | `-- IntConst: 65536
|
|
| | | | | | | | | |-- SubOp: -
|
|
| | | | | | | | | `-- mulExp
|
|
| | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | `-- lVal
|
|
| | | | | | | | | |-- Ident: SHIFT_TABLE
|
|
| | | | | | | | | |-- L_BRACKET: [
|
|
| | | | | | | | | |-- exp
|
|
| | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | |-- addExp
|
|
| | | | | | | | | | | |-- addExp
|
|
| | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | `-- IntConst: 15
|
|
| | | | | | | | | | | |-- SubOp: -
|
|
| | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | `-- Ident: y
|
|
| | | | | | | | | | |-- AddOp: +
|
|
| | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | `-- number
|
|
| | | | | | | | | | `-- IntConst: 1
|
|
| | | | | | | | | `-- R_BRACKET: ]
|
|
| | | | | | | | `-- Semi: ;
|
|
| | | | | | | `-- R_BRACE: }
|
|
| | | | | | |-- Else: else
|
|
| | | | | | `-- stmt
|
|
| | | | | | `-- block
|
|
| | | | | | |-- L_BRACE: {
|
|
| | | | | | |-- blockItem
|
|
| | | | | | | `-- stmt
|
|
| | | | | | | |-- lVal
|
|
| | | | | | | | `-- Ident: ans
|
|
| | | | | | | |-- Assign: =
|
|
| | | | | | | |-- exp
|
|
| | | | | | | | `-- addExp
|
|
| | | | | | | | `-- mulExp
|
|
| | | | | | | | |-- mulExp
|
|
| | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | `-- lVal
|
|
| | | | | | | | | `-- Ident: x
|
|
| | | | | | | | |-- DivOp: /
|
|
| | | | | | | | `-- unaryExp
|
|
| | | | | | | | `-- primaryExp
|
|
| | | | | | | | `-- lVal
|
|
| | | | | | | | |-- Ident: SHIFT_TABLE
|
|
| | | | | | | | |-- L_BRACKET: [
|
|
| | | | | | | | |-- exp
|
|
| | | | | | | | | `-- addExp
|
|
| | | | | | | | | `-- mulExp
|
|
| | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | `-- lVal
|
|
| | | | | | | | | `-- Ident: y
|
|
| | | | | | | | `-- R_BRACKET: ]
|
|
| | | | | | | `-- Semi: ;
|
|
| | | | | | `-- R_BRACE: }
|
|
| | | | | `-- R_BRACE: }
|
|
| | | | |-- Else: else
|
|
| | | | `-- stmt
|
|
| | | | `-- block
|
|
| | | | |-- L_BRACE: {
|
|
| | | | |-- blockItem
|
|
| | | | | `-- stmt
|
|
| | | | | |-- lVal
|
|
| | | | | | `-- Ident: ans
|
|
| | | | | |-- Assign: =
|
|
| | | | | |-- exp
|
|
| | | | | | `-- addExp
|
|
| | | | | | `-- mulExp
|
|
| | | | | | `-- unaryExp
|
|
| | | | | | `-- primaryExp
|
|
| | | | | | `-- lVal
|
|
| | | | | | `-- Ident: x
|
|
| | | | | `-- Semi: ;
|
|
| | | | `-- R_BRACE: }
|
|
| | | |-- blockItem
|
|
| | | | `-- stmt
|
|
| | | | |-- lVal
|
|
| | | | | `-- Ident: pr
|
|
| | | | |-- Assign: =
|
|
| | | | |-- exp
|
|
| | | | | `-- addExp
|
|
| | | | | `-- mulExp
|
|
| | | | | `-- unaryExp
|
|
| | | | | `-- primaryExp
|
|
| | | | | `-- lVal
|
|
| | | | | `-- Ident: ans
|
|
| | | | `-- Semi: ;
|
|
| | | `-- R_BRACE: }
|
|
| | |-- blockItem
|
|
| | | `-- stmt
|
|
| | | |-- lVal
|
|
| | | | `-- Ident: ans
|
|
| | | |-- Assign: =
|
|
| | | |-- exp
|
|
| | | | `-- addExp
|
|
| | | | `-- mulExp
|
|
| | | | `-- unaryExp
|
|
| | | | `-- primaryExp
|
|
| | | | `-- lVal
|
|
| | | | `-- Ident: pres
|
|
| | | `-- Semi: ;
|
|
| | `-- R_BRACE: }
|
|
| |-- blockItem
|
|
| | `-- stmt
|
|
| | |-- exp
|
|
| | | `-- addExp
|
|
| | | `-- mulExp
|
|
| | | `-- unaryExp
|
|
| | | |-- Ident: putint
|
|
| | | |-- L_PAREN: (
|
|
| | | |-- funcRParams
|
|
| | | | `-- exp
|
|
| | | | `-- addExp
|
|
| | | | `-- mulExp
|
|
| | | | `-- unaryExp
|
|
| | | | `-- primaryExp
|
|
| | | | `-- lVal
|
|
| | | | `-- Ident: ans
|
|
| | | `-- R_PAREN: )
|
|
| | `-- Semi: ;
|
|
| |-- blockItem
|
|
| | `-- stmt
|
|
| | |-- exp
|
|
| | | `-- addExp
|
|
| | | `-- mulExp
|
|
| | | `-- unaryExp
|
|
| | | |-- Ident: putch
|
|
| | | |-- L_PAREN: (
|
|
| | | |-- funcRParams
|
|
| | | | `-- exp
|
|
| | | | `-- addExp
|
|
| | | | `-- mulExp
|
|
| | | | `-- unaryExp
|
|
| | | | `-- primaryExp
|
|
| | | | `-- number
|
|
| | | | `-- IntConst: 10
|
|
| | | `-- R_PAREN: )
|
|
| | `-- Semi: ;
|
|
| |-- blockItem
|
|
| | `-- stmt
|
|
| | |-- lVal
|
|
| | | `-- Ident: cur
|
|
| | |-- Assign: =
|
|
| | |-- exp
|
|
| | | `-- addExp
|
|
| | | `-- mulExp
|
|
| | | `-- unaryExp
|
|
| | | `-- primaryExp
|
|
| | | `-- number
|
|
| | | `-- IntConst: 2
|
|
| | `-- Semi: ;
|
|
| |-- blockItem
|
|
| | `-- stmt
|
|
| | |-- While: while
|
|
| | |-- L_PAREN: (
|
|
| | |-- cond
|
|
| | | `-- lOrExp
|
|
| | | `-- lAndExp
|
|
| | | `-- eqExp
|
|
| | | `-- relExp
|
|
| | | |-- relExp
|
|
| | | | `-- addExp
|
|
| | | | `-- mulExp
|
|
| | | | `-- unaryExp
|
|
| | | | `-- primaryExp
|
|
| | | | `-- lVal
|
|
| | | | `-- Ident: cur
|
|
| | | |-- LtOp: <
|
|
| | | `-- addExp
|
|
| | | `-- mulExp
|
|
| | | `-- unaryExp
|
|
| | | `-- primaryExp
|
|
| | | `-- number
|
|
| | | `-- IntConst: 16
|
|
| | |-- R_PAREN: )
|
|
| | `-- stmt
|
|
| | `-- block
|
|
| | |-- L_BRACE: {
|
|
| | |-- blockItem
|
|
| | | `-- stmt
|
|
| | | `-- block
|
|
| | | |-- L_BRACE: {
|
|
| | | |-- blockItem
|
|
| | | | `-- decl
|
|
| | | | `-- varDecl
|
|
| | | | |-- bType
|
|
| | | | | `-- Int: int
|
|
| | | | |-- varDef
|
|
| | | | | |-- Ident: pl
|
|
| | | | | |-- Assign: =
|
|
| | | | | `-- initVal
|
|
| | | | | `-- exp
|
|
| | | | | `-- addExp
|
|
| | | | | `-- mulExp
|
|
| | | | | `-- unaryExp
|
|
| | | | | `-- primaryExp
|
|
| | | | | `-- number
|
|
| | | | | `-- IntConst: 2
|
|
| | | | |-- Comma: ,
|
|
| | | | |-- varDef
|
|
| | | | | |-- Ident: pr
|
|
| | | | | |-- Assign: =
|
|
| | | | | `-- initVal
|
|
| | | | | `-- exp
|
|
| | | | | `-- addExp
|
|
| | | | | `-- mulExp
|
|
| | | | | `-- unaryExp
|
|
| | | | | `-- primaryExp
|
|
| | | | | `-- lVal
|
|
| | | | | `-- Ident: cur
|
|
| | | | |-- Comma: ,
|
|
| | | | |-- varDef
|
|
| | | | | |-- Ident: pres
|
|
| | | | | |-- Assign: =
|
|
| | | | | `-- initVal
|
|
| | | | | `-- exp
|
|
| | | | | `-- addExp
|
|
| | | | | `-- mulExp
|
|
| | | | | `-- unaryExp
|
|
| | | | | `-- primaryExp
|
|
| | | | | `-- number
|
|
| | | | | `-- IntConst: 1
|
|
| | | | `-- Semi: ;
|
|
| | | |-- blockItem
|
|
| | | | `-- stmt
|
|
| | | | |-- While: while
|
|
| | | | |-- L_PAREN: (
|
|
| | | | |-- cond
|
|
| | | | | `-- lOrExp
|
|
| | | | | `-- lAndExp
|
|
| | | | | `-- eqExp
|
|
| | | | | `-- relExp
|
|
| | | | | |-- relExp
|
|
| | | | | | `-- addExp
|
|
| | | | | | `-- mulExp
|
|
| | | | | | `-- unaryExp
|
|
| | | | | | `-- primaryExp
|
|
| | | | | | `-- lVal
|
|
| | | | | | `-- Ident: pr
|
|
| | | | | |-- GtOp: >
|
|
| | | | | `-- addExp
|
|
| | | | | `-- mulExp
|
|
| | | | | `-- unaryExp
|
|
| | | | | `-- primaryExp
|
|
| | | | | `-- number
|
|
| | | | | `-- IntConst: 0
|
|
| | | | |-- R_PAREN: )
|
|
| | | | `-- stmt
|
|
| | | | `-- block
|
|
| | | | |-- L_BRACE: {
|
|
| | | | |-- blockItem
|
|
| | | | | `-- stmt
|
|
| | | | | |-- lVal
|
|
| | | | | | `-- Ident: ans
|
|
| | | | | |-- Assign: =
|
|
| | | | | |-- 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
|
|
| | | | | |-- lVal
|
|
| | | | | | `-- Ident: x
|
|
| | | | | |-- Assign: =
|
|
| | | | | |-- exp
|
|
| | | | | | `-- addExp
|
|
| | | | | | `-- mulExp
|
|
| | | | | | `-- unaryExp
|
|
| | | | | | `-- primaryExp
|
|
| | | | | | `-- lVal
|
|
| | | | | | `-- Ident: pr
|
|
| | | | | `-- Semi: ;
|
|
| | | | |-- blockItem
|
|
| | | | | `-- stmt
|
|
| | | | | |-- lVal
|
|
| | | | | | `-- Ident: y
|
|
| | | | | |-- Assign: =
|
|
| | | | | |-- exp
|
|
| | | | | | `-- addExp
|
|
| | | | | | `-- mulExp
|
|
| | | | | | `-- unaryExp
|
|
| | | | | | `-- primaryExp
|
|
| | | | | | `-- number
|
|
| | | | | | `-- IntConst: 1
|
|
| | | | | `-- Semi: ;
|
|
| | | | |-- blockItem
|
|
| | | | | `-- stmt
|
|
| | | | | |-- While: while
|
|
| | | | | |-- L_PAREN: (
|
|
| | | | | |-- cond
|
|
| | | | | | `-- lOrExp
|
|
| | | | | | `-- lAndExp
|
|
| | | | | | `-- eqExp
|
|
| | | | | | `-- relExp
|
|
| | | | | | |-- relExp
|
|
| | | | | | | `-- addExp
|
|
| | | | | | | `-- mulExp
|
|
| | | | | | | `-- unaryExp
|
|
| | | | | | | `-- primaryExp
|
|
| | | | | | | `-- lVal
|
|
| | | | | | | `-- Ident: i
|
|
| | | | | | |-- LtOp: <
|
|
| | | | | | `-- addExp
|
|
| | | | | | `-- mulExp
|
|
| | | | | | `-- unaryExp
|
|
| | | | | | `-- primaryExp
|
|
| | | | | | `-- number
|
|
| | | | | | `-- IntConst: 16
|
|
| | | | | |-- R_PAREN: )
|
|
| | | | | `-- stmt
|
|
| | | | | `-- block
|
|
| | | | | |-- L_BRACE: {
|
|
| | | | | |-- blockItem
|
|
| | | | | | `-- stmt
|
|
| | | | | | |-- If: if
|
|
| | | | | | |-- L_PAREN: (
|
|
| | | | | | |-- cond
|
|
| | | | | | | `-- lOrExp
|
|
| | | | | | | `-- lAndExp
|
|
| | | | | | | |-- lAndExp
|
|
| | | | | | | | `-- eqExp
|
|
| | | | | | | | `-- relExp
|
|
| | | | | | | | `-- addExp
|
|
| | | | | | | | `-- mulExp
|
|
| | | | | | | | |-- mulExp
|
|
| | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | `-- lVal
|
|
| | | | | | | | | `-- Ident: x
|
|
| | | | | | | | |-- ModOp: %
|
|
| | | | | | | | `-- unaryExp
|
|
| | | | | | | | `-- primaryExp
|
|
| | | | | | | | `-- number
|
|
| | | | | | | | `-- IntConst: 2
|
|
| | | | | | | |-- AndOp: &&
|
|
| | | | | | | `-- eqExp
|
|
| | | | | | | `-- relExp
|
|
| | | | | | | `-- addExp
|
|
| | | | | | | `-- mulExp
|
|
| | | | | | | |-- mulExp
|
|
| | | | | | | | `-- unaryExp
|
|
| | | | | | | | `-- primaryExp
|
|
| | | | | | | | `-- lVal
|
|
| | | | | | | | `-- Ident: y
|
|
| | | | | | | |-- ModOp: %
|
|
| | | | | | | `-- unaryExp
|
|
| | | | | | | `-- primaryExp
|
|
| | | | | | | `-- number
|
|
| | | | | | | `-- IntConst: 2
|
|
| | | | | | |-- R_PAREN: )
|
|
| | | | | | `-- stmt
|
|
| | | | | | `-- block
|
|
| | | | | | |-- L_BRACE: {
|
|
| | | | | | |-- blockItem
|
|
| | | | | | | `-- stmt
|
|
| | | | | | | |-- lVal
|
|
| | | | | | | | `-- Ident: ans
|
|
| | | | | | | |-- Assign: =
|
|
| | | | | | | |-- exp
|
|
| | | | | | | | `-- addExp
|
|
| | | | | | | | |-- addExp
|
|
| | | | | | | | | `-- mulExp
|
|
| | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | `-- lVal
|
|
| | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | |-- AddOp: +
|
|
| | | | | | | | `-- mulExp
|
|
| | | | | | | | |-- mulExp
|
|
| | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | `-- number
|
|
| | | | | | | | | `-- IntConst: 1
|
|
| | | | | | | | |-- MulOp: *
|
|
| | | | | | | | `-- unaryExp
|
|
| | | | | | | | `-- primaryExp
|
|
| | | | | | | | `-- lVal
|
|
| | | | | | | | |-- Ident: SHIFT_TABLE
|
|
| | | | | | | | |-- L_BRACKET: [
|
|
| | | | | | | | |-- exp
|
|
| | | | | | | | | `-- addExp
|
|
| | | | | | | | | `-- mulExp
|
|
| | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | `-- lVal
|
|
| | | | | | | | | `-- Ident: i
|
|
| | | | | | | | `-- R_BRACKET: ]
|
|
| | | | | | | `-- Semi: ;
|
|
| | | | | | `-- R_BRACE: }
|
|
| | | | | |-- blockItem
|
|
| | | | | | `-- stmt
|
|
| | | | | | |-- lVal
|
|
| | | | | | | `-- Ident: x
|
|
| | | | | | |-- Assign: =
|
|
| | | | | | |-- exp
|
|
| | | | | | | `-- addExp
|
|
| | | | | | | `-- mulExp
|
|
| | | | | | | |-- mulExp
|
|
| | | | | | | | `-- unaryExp
|
|
| | | | | | | | `-- primaryExp
|
|
| | | | | | | | `-- lVal
|
|
| | | | | | | | `-- Ident: x
|
|
| | | | | | | |-- DivOp: /
|
|
| | | | | | | `-- unaryExp
|
|
| | | | | | | `-- primaryExp
|
|
| | | | | | | `-- number
|
|
| | | | | | | `-- IntConst: 2
|
|
| | | | | | `-- Semi: ;
|
|
| | | | | |-- blockItem
|
|
| | | | | | `-- stmt
|
|
| | | | | | |-- lVal
|
|
| | | | | | | `-- Ident: y
|
|
| | | | | | |-- Assign: =
|
|
| | | | | | |-- exp
|
|
| | | | | | | `-- addExp
|
|
| | | | | | | `-- mulExp
|
|
| | | | | | | |-- mulExp
|
|
| | | | | | | | `-- unaryExp
|
|
| | | | | | | | `-- primaryExp
|
|
| | | | | | | | `-- lVal
|
|
| | | | | | | | `-- Ident: y
|
|
| | | | | | | |-- DivOp: /
|
|
| | | | | | | `-- unaryExp
|
|
| | | | | | | `-- primaryExp
|
|
| | | | | | | `-- number
|
|
| | | | | | | `-- IntConst: 2
|
|
| | | | | | `-- Semi: ;
|
|
| | | | | |-- blockItem
|
|
| | | | | | `-- stmt
|
|
| | | | | | |-- lVal
|
|
| | | | | | | `-- Ident: i
|
|
| | | | | | |-- Assign: =
|
|
| | | | | | |-- exp
|
|
| | | | | | | `-- addExp
|
|
| | | | | | | |-- addExp
|
|
| | | | | | | | `-- mulExp
|
|
| | | | | | | | `-- unaryExp
|
|
| | | | | | | | `-- primaryExp
|
|
| | | | | | | | `-- lVal
|
|
| | | | | | | | `-- Ident: i
|
|
| | | | | | | |-- AddOp: +
|
|
| | | | | | | `-- mulExp
|
|
| | | | | | | `-- unaryExp
|
|
| | | | | | | `-- primaryExp
|
|
| | | | | | | `-- number
|
|
| | | | | | | `-- IntConst: 1
|
|
| | | | | | `-- Semi: ;
|
|
| | | | | `-- R_BRACE: }
|
|
| | | | |-- blockItem
|
|
| | | | | `-- stmt
|
|
| | | | | |-- If: if
|
|
| | | | | |-- L_PAREN: (
|
|
| | | | | |-- cond
|
|
| | | | | | `-- lOrExp
|
|
| | | | | | `-- lAndExp
|
|
| | | | | | `-- eqExp
|
|
| | | | | | `-- relExp
|
|
| | | | | | `-- addExp
|
|
| | | | | | `-- mulExp
|
|
| | | | | | `-- unaryExp
|
|
| | | | | | `-- primaryExp
|
|
| | | | | | `-- lVal
|
|
| | | | | | `-- Ident: ans
|
|
| | | | | |-- R_PAREN: )
|
|
| | | | | `-- stmt
|
|
| | | | | `-- block
|
|
| | | | | |-- L_BRACE: {
|
|
| | | | | |-- blockItem
|
|
| | | | | | `-- stmt
|
|
| | | | | | `-- block
|
|
| | | | | | |-- L_BRACE: {
|
|
| | | | | | |-- blockItem
|
|
| | | | | | | `-- decl
|
|
| | | | | | | `-- varDecl
|
|
| | | | | | | |-- bType
|
|
| | | | | | | | `-- Int: int
|
|
| | | | | | | |-- varDef
|
|
| | | | | | | | |-- Ident: ml
|
|
| | | | | | | | |-- Assign: =
|
|
| | | | | | | | `-- initVal
|
|
| | | | | | | | `-- exp
|
|
| | | | | | | | `-- addExp
|
|
| | | | | | | | `-- mulExp
|
|
| | | | | | | | `-- unaryExp
|
|
| | | | | | | | `-- primaryExp
|
|
| | | | | | | | `-- lVal
|
|
| | | | | | | | `-- Ident: pres
|
|
| | | | | | | |-- Comma: ,
|
|
| | | | | | | |-- varDef
|
|
| | | | | | | | |-- Ident: mr
|
|
| | | | | | | | |-- Assign: =
|
|
| | | | | | | | `-- initVal
|
|
| | | | | | | | `-- exp
|
|
| | | | | | | | `-- addExp
|
|
| | | | | | | | `-- mulExp
|
|
| | | | | | | | `-- unaryExp
|
|
| | | | | | | | `-- primaryExp
|
|
| | | | | | | | `-- lVal
|
|
| | | | | | | | `-- Ident: pl
|
|
| | | | | | | |-- Comma: ,
|
|
| | | | | | | |-- varDef
|
|
| | | | | | | | |-- Ident: mres
|
|
| | | | | | | | |-- Assign: =
|
|
| | | | | | | | `-- initVal
|
|
| | | | | | | | `-- exp
|
|
| | | | | | | | `-- addExp
|
|
| | | | | | | | `-- mulExp
|
|
| | | | | | | | `-- unaryExp
|
|
| | | | | | | | `-- primaryExp
|
|
| | | | | | | | `-- number
|
|
| | | | | | | | `-- IntConst: 0
|
|
| | | | | | | `-- Semi: ;
|
|
| | | | | | |-- blockItem
|
|
| | | | | | | `-- stmt
|
|
| | | | | | | |-- While: while
|
|
| | | | | | | |-- L_PAREN: (
|
|
| | | | | | | |-- cond
|
|
| | | | | | | | `-- lOrExp
|
|
| | | | | | | | `-- lAndExp
|
|
| | | | | | | | `-- eqExp
|
|
| | | | | | | | `-- relExp
|
|
| | | | | | | | `-- addExp
|
|
| | | | | | | | `-- mulExp
|
|
| | | | | | | | `-- unaryExp
|
|
| | | | | | | | `-- primaryExp
|
|
| | | | | | | | `-- lVal
|
|
| | | | | | | | `-- Ident: mr
|
|
| | | | | | | |-- R_PAREN: )
|
|
| | | | | | | `-- stmt
|
|
| | | | | | | `-- block
|
|
| | | | | | | |-- L_BRACE: {
|
|
| | | | | | | |-- blockItem
|
|
| | | | | | | | `-- stmt
|
|
| | | | | | | | |-- lVal
|
|
| | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | |-- Assign: =
|
|
| | | | | | | | |-- 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
|
|
| | | | | | | | |-- lVal
|
|
| | | | | | | | | `-- Ident: x
|
|
| | | | | | | | |-- Assign: =
|
|
| | | | | | | | |-- exp
|
|
| | | | | | | | | `-- addExp
|
|
| | | | | | | | | `-- mulExp
|
|
| | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | `-- lVal
|
|
| | | | | | | | | `-- Ident: mr
|
|
| | | | | | | | `-- Semi: ;
|
|
| | | | | | | |-- blockItem
|
|
| | | | | | | | `-- stmt
|
|
| | | | | | | | |-- lVal
|
|
| | | | | | | | | `-- Ident: y
|
|
| | | | | | | | |-- Assign: =
|
|
| | | | | | | | |-- exp
|
|
| | | | | | | | | `-- addExp
|
|
| | | | | | | | | `-- mulExp
|
|
| | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | `-- number
|
|
| | | | | | | | | `-- IntConst: 1
|
|
| | | | | | | | `-- Semi: ;
|
|
| | | | | | | |-- blockItem
|
|
| | | | | | | | `-- stmt
|
|
| | | | | | | | |-- While: while
|
|
| | | | | | | | |-- L_PAREN: (
|
|
| | | | | | | | |-- cond
|
|
| | | | | | | | | `-- lOrExp
|
|
| | | | | | | | | `-- lAndExp
|
|
| | | | | | | | | `-- eqExp
|
|
| | | | | | | | | `-- relExp
|
|
| | | | | | | | | |-- relExp
|
|
| | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | `-- Ident: i
|
|
| | | | | | | | | |-- LtOp: <
|
|
| | | | | | | | | `-- addExp
|
|
| | | | | | | | | `-- mulExp
|
|
| | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | `-- number
|
|
| | | | | | | | | `-- IntConst: 16
|
|
| | | | | | | | |-- R_PAREN: )
|
|
| | | | | | | | `-- stmt
|
|
| | | | | | | | `-- block
|
|
| | | | | | | | |-- L_BRACE: {
|
|
| | | | | | | | |-- blockItem
|
|
| | | | | | | | | `-- stmt
|
|
| | | | | | | | | |-- If: if
|
|
| | | | | | | | | |-- L_PAREN: (
|
|
| | | | | | | | | |-- cond
|
|
| | | | | | | | | | `-- lOrExp
|
|
| | | | | | | | | | `-- lAndExp
|
|
| | | | | | | | | | |-- lAndExp
|
|
| | | | | | | | | | | `-- eqExp
|
|
| | | | | | | | | | | `-- relExp
|
|
| | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | `-- Ident: x
|
|
| | | | | | | | | | | |-- ModOp: %
|
|
| | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | `-- IntConst: 2
|
|
| | | | | | | | | | |-- AndOp: &&
|
|
| | | | | | | | | | `-- eqExp
|
|
| | | | | | | | | | `-- relExp
|
|
| | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | `-- Ident: y
|
|
| | | | | | | | | | |-- ModOp: %
|
|
| | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | `-- number
|
|
| | | | | | | | | | `-- IntConst: 2
|
|
| | | | | | | | | |-- R_PAREN: )
|
|
| | | | | | | | | `-- stmt
|
|
| | | | | | | | | `-- block
|
|
| | | | | | | | | |-- L_BRACE: {
|
|
| | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | |-- addExp
|
|
| | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | | | | |-- AddOp: +
|
|
| | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | `-- IntConst: 1
|
|
| | | | | | | | | | | |-- MulOp: *
|
|
| | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | |-- Ident: SHIFT_TABLE
|
|
| | | | | | | | | | | |-- L_BRACKET: [
|
|
| | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | `-- Ident: i
|
|
| | | | | | | | | | | `-- R_BRACKET: ]
|
|
| | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | `-- R_BRACE: }
|
|
| | | | | | | | |-- blockItem
|
|
| | | | | | | | | `-- stmt
|
|
| | | | | | | | | |-- lVal
|
|
| | | | | | | | | | `-- Ident: x
|
|
| | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | |-- exp
|
|
| | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | `-- Ident: x
|
|
| | | | | | | | | | |-- DivOp: /
|
|
| | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | `-- number
|
|
| | | | | | | | | | `-- IntConst: 2
|
|
| | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | |-- blockItem
|
|
| | | | | | | | | `-- stmt
|
|
| | | | | | | | | |-- lVal
|
|
| | | | | | | | | | `-- Ident: y
|
|
| | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | |-- exp
|
|
| | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | `-- Ident: y
|
|
| | | | | | | | | | |-- DivOp: /
|
|
| | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | `-- number
|
|
| | | | | | | | | | `-- IntConst: 2
|
|
| | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | |-- blockItem
|
|
| | | | | | | | | `-- stmt
|
|
| | | | | | | | | |-- lVal
|
|
| | | | | | | | | | `-- Ident: i
|
|
| | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | |-- exp
|
|
| | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | |-- addExp
|
|
| | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | `-- Ident: i
|
|
| | | | | | | | | | |-- AddOp: +
|
|
| | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | `-- number
|
|
| | | | | | | | | | `-- IntConst: 1
|
|
| | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | `-- R_BRACE: }
|
|
| | | | | | | |-- blockItem
|
|
| | | | | | | | `-- stmt
|
|
| | | | | | | | |-- If: if
|
|
| | | | | | | | |-- L_PAREN: (
|
|
| | | | | | | | |-- cond
|
|
| | | | | | | | | `-- lOrExp
|
|
| | | | | | | | | `-- lAndExp
|
|
| | | | | | | | | `-- eqExp
|
|
| | | | | | | | | `-- relExp
|
|
| | | | | | | | | `-- addExp
|
|
| | | | | | | | | `-- mulExp
|
|
| | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | `-- lVal
|
|
| | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | |-- R_PAREN: )
|
|
| | | | | | | | `-- stmt
|
|
| | | | | | | | `-- block
|
|
| | | | | | | | |-- L_BRACE: {
|
|
| | | | | | | | |-- blockItem
|
|
| | | | | | | | | `-- stmt
|
|
| | | | | | | | | `-- block
|
|
| | | | | | | | | |-- L_BRACE: {
|
|
| | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | `-- decl
|
|
| | | | | | | | | | `-- varDecl
|
|
| | | | | | | | | | |-- bType
|
|
| | | | | | | | | | | `-- Int: int
|
|
| | | | | | | | | | |-- varDef
|
|
| | | | | | | | | | | |-- Ident: al
|
|
| | | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | | `-- initVal
|
|
| | | | | | | | | | | `-- exp
|
|
| | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | `-- Ident: mres
|
|
| | | | | | | | | | |-- Comma: ,
|
|
| | | | | | | | | | |-- varDef
|
|
| | | | | | | | | | | |-- Ident: c
|
|
| | | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | | `-- initVal
|
|
| | | | | | | | | | | `-- exp
|
|
| | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | `-- Ident: ml
|
|
| | | | | | | | | | |-- Comma: ,
|
|
| | | | | | | | | | |-- varDef
|
|
| | | | | | | | | | | `-- Ident: sum
|
|
| | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | |-- While: while
|
|
| | | | | | | | | | |-- L_PAREN: (
|
|
| | | | | | | | | | |-- cond
|
|
| | | | | | | | | | | `-- lOrExp
|
|
| | | | | | | | | | | `-- lAndExp
|
|
| | | | | | | | | | | `-- eqExp
|
|
| | | | | | | | | | | `-- relExp
|
|
| | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | `-- Ident: c
|
|
| | | | | | | | | | |-- R_PAREN: )
|
|
| | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | `-- block
|
|
| | | | | | | | | | |-- L_BRACE: {
|
|
| | | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | | |-- 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
|
|
| | | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | | `-- Ident: x
|
|
| | | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | `-- Ident: al
|
|
| | | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | | `-- Ident: y
|
|
| | | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | `-- Ident: c
|
|
| | | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | |-- While: while
|
|
| | | | | | | | | | | |-- L_PAREN: (
|
|
| | | | | | | | | | | |-- cond
|
|
| | | | | | | | | | | | `-- lOrExp
|
|
| | | | | | | | | | | | `-- lAndExp
|
|
| | | | | | | | | | | | `-- eqExp
|
|
| | | | | | | | | | | | `-- relExp
|
|
| | | | | | | | | | | | |-- relExp
|
|
| | | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | `-- Ident: i
|
|
| | | | | | | | | | | | |-- LtOp: <
|
|
| | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | `-- IntConst: 16
|
|
| | | | | | | | | | | |-- R_PAREN: )
|
|
| | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | `-- block
|
|
| | | | | | | | | | | |-- L_BRACE: {
|
|
| | | | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | | |-- If: if
|
|
| | | | | | | | | | | | |-- L_PAREN: (
|
|
| | | | | | | | | | | | |-- cond
|
|
| | | | | | | | | | | | | `-- lOrExp
|
|
| | | | | | | | | | | | | `-- lAndExp
|
|
| | | | | | | | | | | | | `-- eqExp
|
|
| | | | | | | | | | | | | `-- relExp
|
|
| | | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | | `-- Ident: x
|
|
| | | | | | | | | | | | | |-- ModOp: %
|
|
| | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | | `-- IntConst: 2
|
|
| | | | | | | | | | | | |-- R_PAREN: )
|
|
| | | | | | | | | | | | |-- stmt
|
|
| | | | | | | | | | | | | `-- block
|
|
| | | | | | | | | | | | | |-- L_BRACE: {
|
|
| | | | | | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | | | | |-- If: if
|
|
| | | | | | | | | | | | | | |-- L_PAREN: (
|
|
| | | | | | | | | | | | | | |-- cond
|
|
| | | | | | | | | | | | | | | `-- lOrExp
|
|
| | | | | | | | | | | | | | | `-- lAndExp
|
|
| | | | | | | | | | | | | | | `-- eqExp
|
|
| | | | | | | | | | | | | | | |-- eqExp
|
|
| | | | | | | | | | | | | | | | `-- relExp
|
|
| | | | | | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | | | | | `-- Ident: y
|
|
| | | | | | | | | | | | | | | | |-- ModOp: %
|
|
| | | | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | | | | | `-- IntConst: 2
|
|
| | | | | | | | | | | | | | | |-- EqOp: ==
|
|
| | | | | | | | | | | | | | | `-- relExp
|
|
| | | | | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | | | | `-- IntConst: 0
|
|
| | | | | | | | | | | | | | |-- R_PAREN: )
|
|
| | | | | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | | | | `-- block
|
|
| | | | | | | | | | | | | | |-- L_BRACE: {
|
|
| | | | | | | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | | | | | |-- addExp
|
|
| | | | | | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | | | | | | | | | |-- AddOp: +
|
|
| | | | | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | | | | | | `-- IntConst: 1
|
|
| | | | | | | | | | | | | | | | |-- MulOp: *
|
|
| | | | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | | | | |-- Ident: SHIFT_TABLE
|
|
| | | | | | | | | | | | | | | | |-- L_BRACKET: [
|
|
| | | | | | | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | | | | | `-- Ident: i
|
|
| | | | | | | | | | | | | | | | `-- R_BRACKET: ]
|
|
| | | | | | | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | | | | | | `-- R_BRACE: }
|
|
| | | | | | | | | | | | | `-- R_BRACE: }
|
|
| | | | | | | | | | | | |-- Else: else
|
|
| | | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | | |-- If: if
|
|
| | | | | | | | | | | | |-- L_PAREN: (
|
|
| | | | | | | | | | | | |-- cond
|
|
| | | | | | | | | | | | | `-- lOrExp
|
|
| | | | | | | | | | | | | `-- lAndExp
|
|
| | | | | | | | | | | | | `-- eqExp
|
|
| | | | | | | | | | | | | `-- relExp
|
|
| | | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | | `-- Ident: y
|
|
| | | | | | | | | | | | | |-- ModOp: %
|
|
| | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | | `-- IntConst: 2
|
|
| | | | | | | | | | | | |-- R_PAREN: )
|
|
| | | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | | `-- block
|
|
| | | | | | | | | | | | |-- L_BRACE: {
|
|
| | | | | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | | | |-- addExp
|
|
| | | | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | | | | | | | |-- AddOp: +
|
|
| | | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | | | | `-- IntConst: 1
|
|
| | | | | | | | | | | | | | |-- MulOp: *
|
|
| | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | | |-- Ident: SHIFT_TABLE
|
|
| | | | | | | | | | | | | | |-- L_BRACKET: [
|
|
| | | | | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | | | `-- Ident: i
|
|
| | | | | | | | | | | | | | `-- R_BRACKET: ]
|
|
| | | | | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | | | | `-- R_BRACE: }
|
|
| | | | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | | | `-- Ident: x
|
|
| | | | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | | `-- Ident: x
|
|
| | | | | | | | | | | | | |-- DivOp: /
|
|
| | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | | `-- IntConst: 2
|
|
| | | | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | | | `-- Ident: y
|
|
| | | | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | | `-- Ident: y
|
|
| | | | | | | | | | | | | |-- DivOp: /
|
|
| | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | | `-- IntConst: 2
|
|
| | | | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | | | `-- Ident: i
|
|
| | | | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | | |-- addExp
|
|
| | | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | | `-- Ident: i
|
|
| | | | | | | | | | | | | |-- AddOp: +
|
|
| | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | | `-- IntConst: 1
|
|
| | | | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | | | `-- R_BRACE: }
|
|
| | | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | | `-- Ident: sum
|
|
| | | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | | |-- 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
|
|
| | | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | | `-- Ident: x
|
|
| | | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | `-- Ident: al
|
|
| | | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | | `-- Ident: y
|
|
| | | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | `-- Ident: c
|
|
| | | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | |-- While: while
|
|
| | | | | | | | | | | |-- L_PAREN: (
|
|
| | | | | | | | | | | |-- cond
|
|
| | | | | | | | | | | | `-- lOrExp
|
|
| | | | | | | | | | | | `-- lAndExp
|
|
| | | | | | | | | | | | `-- eqExp
|
|
| | | | | | | | | | | | `-- relExp
|
|
| | | | | | | | | | | | |-- relExp
|
|
| | | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | `-- Ident: i
|
|
| | | | | | | | | | | | |-- LtOp: <
|
|
| | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | `-- IntConst: 16
|
|
| | | | | | | | | | | |-- R_PAREN: )
|
|
| | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | `-- block
|
|
| | | | | | | | | | | |-- L_BRACE: {
|
|
| | | | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | | |-- If: if
|
|
| | | | | | | | | | | | |-- L_PAREN: (
|
|
| | | | | | | | | | | | |-- cond
|
|
| | | | | | | | | | | | | `-- lOrExp
|
|
| | | | | | | | | | | | | `-- lAndExp
|
|
| | | | | | | | | | | | | |-- lAndExp
|
|
| | | | | | | | | | | | | | `-- eqExp
|
|
| | | | | | | | | | | | | | `-- relExp
|
|
| | | | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | | | `-- Ident: x
|
|
| | | | | | | | | | | | | | |-- ModOp: %
|
|
| | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | | | `-- IntConst: 2
|
|
| | | | | | | | | | | | | |-- AndOp: &&
|
|
| | | | | | | | | | | | | `-- eqExp
|
|
| | | | | | | | | | | | | `-- relExp
|
|
| | | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | | `-- Ident: y
|
|
| | | | | | | | | | | | | |-- ModOp: %
|
|
| | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | | `-- IntConst: 2
|
|
| | | | | | | | | | | | |-- R_PAREN: )
|
|
| | | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | | `-- block
|
|
| | | | | | | | | | | | |-- L_BRACE: {
|
|
| | | | | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | | | |-- addExp
|
|
| | | | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | | | | | | | |-- AddOp: +
|
|
| | | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | | | | `-- IntConst: 1
|
|
| | | | | | | | | | | | | | |-- MulOp: *
|
|
| | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | | |-- Ident: SHIFT_TABLE
|
|
| | | | | | | | | | | | | | |-- L_BRACKET: [
|
|
| | | | | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | | | `-- Ident: i
|
|
| | | | | | | | | | | | | | `-- R_BRACKET: ]
|
|
| | | | | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | | | | `-- R_BRACE: }
|
|
| | | | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | | | `-- Ident: x
|
|
| | | | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | | `-- Ident: x
|
|
| | | | | | | | | | | | | |-- DivOp: /
|
|
| | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | | `-- IntConst: 2
|
|
| | | | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | | | `-- Ident: y
|
|
| | | | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | | `-- Ident: y
|
|
| | | | | | | | | | | | | |-- DivOp: /
|
|
| | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | | `-- IntConst: 2
|
|
| | | | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | | | `-- Ident: i
|
|
| | | | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | | |-- addExp
|
|
| | | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | | `-- Ident: i
|
|
| | | | | | | | | | | | | |-- AddOp: +
|
|
| | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | | `-- IntConst: 1
|
|
| | | | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | | | `-- R_BRACE: }
|
|
| | | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | | `-- Ident: c
|
|
| | | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | |-- If: if
|
|
| | | | | | | | | | | |-- L_PAREN: (
|
|
| | | | | | | | | | | |-- cond
|
|
| | | | | | | | | | | | `-- lOrExp
|
|
| | | | | | | | | | | | `-- lAndExp
|
|
| | | | | | | | | | | | `-- eqExp
|
|
| | | | | | | | | | | | `-- relExp
|
|
| | | | | | | | | | | | |-- relExp
|
|
| | | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | |-- L_PAREN: (
|
|
| | | | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | | | `-- IntConst: 1
|
|
| | | | | | | | | | | | | `-- R_PAREN: )
|
|
| | | | | | | | | | | | |-- GtOp: >
|
|
| | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | `-- IntConst: 15
|
|
| | | | | | | | | | | |-- R_PAREN: )
|
|
| | | | | | | | | | | |-- stmt
|
|
| | | | | | | | | | | | `-- block
|
|
| | | | | | | | | | | | |-- L_BRACE: {
|
|
| | | | | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | | | `-- IntConst: 0
|
|
| | | | | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | | | | `-- R_BRACE: }
|
|
| | | | | | | | | | | |-- Else: else
|
|
| | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | `-- block
|
|
| | | | | | | | | | | |-- L_BRACE: {
|
|
| | | | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | | | |-- 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
|
|
| | | | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | | | `-- Ident: x
|
|
| | | | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | |-- L_PAREN: (
|
|
| | | | | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | | | `-- Ident: c
|
|
| | | | | | | | | | | | | | `-- R_PAREN: )
|
|
| | | | | | | | | | | | | |-- MulOp: *
|
|
| | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | |-- Ident: SHIFT_TABLE
|
|
| | | | | | | | | | | | | |-- L_BRACKET: [
|
|
| | | | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | | | `-- IntConst: 1
|
|
| | | | | | | | | | | | | `-- R_BRACKET: ]
|
|
| | | | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | | | `-- Ident: y
|
|
| | | | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | | `-- IntConst: 0xffff
|
|
| | | | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | | |-- While: while
|
|
| | | | | | | | | | | | |-- L_PAREN: (
|
|
| | | | | | | | | | | | |-- cond
|
|
| | | | | | | | | | | | | `-- lOrExp
|
|
| | | | | | | | | | | | | `-- lAndExp
|
|
| | | | | | | | | | | | | `-- eqExp
|
|
| | | | | | | | | | | | | `-- relExp
|
|
| | | | | | | | | | | | | |-- relExp
|
|
| | | | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | | `-- Ident: i
|
|
| | | | | | | | | | | | | |-- LtOp: <
|
|
| | | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | | `-- IntConst: 16
|
|
| | | | | | | | | | | | |-- R_PAREN: )
|
|
| | | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | | `-- block
|
|
| | | | | | | | | | | | |-- L_BRACE: {
|
|
| | | | | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | | | |-- If: if
|
|
| | | | | | | | | | | | | |-- L_PAREN: (
|
|
| | | | | | | | | | | | | |-- cond
|
|
| | | | | | | | | | | | | | `-- lOrExp
|
|
| | | | | | | | | | | | | | `-- lAndExp
|
|
| | | | | | | | | | | | | | |-- lAndExp
|
|
| | | | | | | | | | | | | | | `-- eqExp
|
|
| | | | | | | | | | | | | | | `-- relExp
|
|
| | | | | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | | | | `-- Ident: x
|
|
| | | | | | | | | | | | | | | |-- ModOp: %
|
|
| | | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | | | | `-- IntConst: 2
|
|
| | | | | | | | | | | | | | |-- AndOp: &&
|
|
| | | | | | | | | | | | | | `-- eqExp
|
|
| | | | | | | | | | | | | | `-- relExp
|
|
| | | | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | | | `-- Ident: y
|
|
| | | | | | | | | | | | | | |-- ModOp: %
|
|
| | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | | | `-- IntConst: 2
|
|
| | | | | | | | | | | | | |-- R_PAREN: )
|
|
| | | | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | | | `-- block
|
|
| | | | | | | | | | | | | |-- L_BRACE: {
|
|
| | | | | | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | | | | |-- addExp
|
|
| | | | | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | | | | | | | | |-- AddOp: +
|
|
| | | | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | | | | | `-- IntConst: 1
|
|
| | | | | | | | | | | | | | | |-- MulOp: *
|
|
| | | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | | | |-- Ident: SHIFT_TABLE
|
|
| | | | | | | | | | | | | | | |-- L_BRACKET: [
|
|
| | | | | | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | | | | `-- Ident: i
|
|
| | | | | | | | | | | | | | | `-- R_BRACKET: ]
|
|
| | | | | | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | | | | | `-- R_BRACE: }
|
|
| | | | | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | | | | `-- Ident: x
|
|
| | | | | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | | | `-- Ident: x
|
|
| | | | | | | | | | | | | | |-- DivOp: /
|
|
| | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | | | `-- IntConst: 2
|
|
| | | | | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | | | | `-- Ident: y
|
|
| | | | | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | | | `-- Ident: y
|
|
| | | | | | | | | | | | | | |-- DivOp: /
|
|
| | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | | | `-- IntConst: 2
|
|
| | | | | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | | | | `-- Ident: i
|
|
| | | | | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | | | |-- addExp
|
|
| | | | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | | | `-- Ident: i
|
|
| | | | | | | | | | | | | | |-- AddOp: +
|
|
| | | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | | | `-- IntConst: 1
|
|
| | | | | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | | | | `-- R_BRACE: }
|
|
| | | | | | | | | | | `-- R_BRACE: }
|
|
| | | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | | `-- Ident: c
|
|
| | | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | | `-- Ident: al
|
|
| | | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | `-- Ident: sum
|
|
| | | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | | `-- R_BRACE: }
|
|
| | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | `-- Ident: al
|
|
| | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | `-- R_BRACE: }
|
|
| | | | | | | | |-- blockItem
|
|
| | | | | | | | | `-- stmt
|
|
| | | | | | | | | |-- lVal
|
|
| | | | | | | | | | `-- Ident: mres
|
|
| | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | |-- exp
|
|
| | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | `-- R_BRACE: }
|
|
| | | | | | | |-- blockItem
|
|
| | | | | | | | `-- stmt
|
|
| | | | | | | | `-- block
|
|
| | | | | | | | |-- L_BRACE: {
|
|
| | | | | | | | |-- blockItem
|
|
| | | | | | | | | `-- decl
|
|
| | | | | | | | | `-- varDecl
|
|
| | | | | | | | | |-- bType
|
|
| | | | | | | | | | `-- Int: int
|
|
| | | | | | | | | |-- varDef
|
|
| | | | | | | | | | |-- Ident: al
|
|
| | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | `-- initVal
|
|
| | | | | | | | | | `-- exp
|
|
| | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | `-- Ident: ml
|
|
| | | | | | | | | |-- Comma: ,
|
|
| | | | | | | | | |-- varDef
|
|
| | | | | | | | | | |-- Ident: c
|
|
| | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | `-- initVal
|
|
| | | | | | | | | | `-- exp
|
|
| | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | `-- Ident: ml
|
|
| | | | | | | | | |-- Comma: ,
|
|
| | | | | | | | | |-- varDef
|
|
| | | | | | | | | | `-- Ident: sum
|
|
| | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | |-- blockItem
|
|
| | | | | | | | | `-- stmt
|
|
| | | | | | | | | |-- While: while
|
|
| | | | | | | | | |-- L_PAREN: (
|
|
| | | | | | | | | |-- cond
|
|
| | | | | | | | | | `-- lOrExp
|
|
| | | | | | | | | | `-- lAndExp
|
|
| | | | | | | | | | `-- eqExp
|
|
| | | | | | | | | | `-- relExp
|
|
| | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | `-- Ident: c
|
|
| | | | | | | | | |-- R_PAREN: )
|
|
| | | | | | | | | `-- stmt
|
|
| | | | | | | | | `-- block
|
|
| | | | | | | | | |-- L_BRACE: {
|
|
| | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | |-- 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
|
|
| | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | `-- Ident: x
|
|
| | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | `-- Ident: al
|
|
| | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | `-- Ident: y
|
|
| | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | `-- Ident: c
|
|
| | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | |-- While: while
|
|
| | | | | | | | | | |-- L_PAREN: (
|
|
| | | | | | | | | | |-- cond
|
|
| | | | | | | | | | | `-- lOrExp
|
|
| | | | | | | | | | | `-- lAndExp
|
|
| | | | | | | | | | | `-- eqExp
|
|
| | | | | | | | | | | `-- relExp
|
|
| | | | | | | | | | | |-- relExp
|
|
| | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | `-- Ident: i
|
|
| | | | | | | | | | | |-- LtOp: <
|
|
| | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | `-- IntConst: 16
|
|
| | | | | | | | | | |-- R_PAREN: )
|
|
| | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | `-- block
|
|
| | | | | | | | | | |-- L_BRACE: {
|
|
| | | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | |-- If: if
|
|
| | | | | | | | | | | |-- L_PAREN: (
|
|
| | | | | | | | | | | |-- cond
|
|
| | | | | | | | | | | | `-- lOrExp
|
|
| | | | | | | | | | | | `-- lAndExp
|
|
| | | | | | | | | | | | `-- eqExp
|
|
| | | | | | | | | | | | `-- relExp
|
|
| | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | `-- Ident: x
|
|
| | | | | | | | | | | | |-- ModOp: %
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | `-- IntConst: 2
|
|
| | | | | | | | | | | |-- R_PAREN: )
|
|
| | | | | | | | | | | |-- stmt
|
|
| | | | | | | | | | | | `-- block
|
|
| | | | | | | | | | | | |-- L_BRACE: {
|
|
| | | | | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | | | |-- If: if
|
|
| | | | | | | | | | | | | |-- L_PAREN: (
|
|
| | | | | | | | | | | | | |-- cond
|
|
| | | | | | | | | | | | | | `-- lOrExp
|
|
| | | | | | | | | | | | | | `-- lAndExp
|
|
| | | | | | | | | | | | | | `-- eqExp
|
|
| | | | | | | | | | | | | | |-- eqExp
|
|
| | | | | | | | | | | | | | | `-- relExp
|
|
| | | | | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | | | | `-- Ident: y
|
|
| | | | | | | | | | | | | | | |-- ModOp: %
|
|
| | | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | | | | `-- IntConst: 2
|
|
| | | | | | | | | | | | | | |-- EqOp: ==
|
|
| | | | | | | | | | | | | | `-- relExp
|
|
| | | | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | | | `-- IntConst: 0
|
|
| | | | | | | | | | | | | |-- R_PAREN: )
|
|
| | | | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | | | `-- block
|
|
| | | | | | | | | | | | | |-- L_BRACE: {
|
|
| | | | | | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | | | | |-- addExp
|
|
| | | | | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | | | | | | | | |-- AddOp: +
|
|
| | | | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | | | | | `-- IntConst: 1
|
|
| | | | | | | | | | | | | | | |-- MulOp: *
|
|
| | | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | | | |-- Ident: SHIFT_TABLE
|
|
| | | | | | | | | | | | | | | |-- L_BRACKET: [
|
|
| | | | | | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | | | | `-- Ident: i
|
|
| | | | | | | | | | | | | | | `-- R_BRACKET: ]
|
|
| | | | | | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | | | | | `-- R_BRACE: }
|
|
| | | | | | | | | | | | `-- R_BRACE: }
|
|
| | | | | | | | | | | |-- Else: else
|
|
| | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | |-- If: if
|
|
| | | | | | | | | | | |-- L_PAREN: (
|
|
| | | | | | | | | | | |-- cond
|
|
| | | | | | | | | | | | `-- lOrExp
|
|
| | | | | | | | | | | | `-- lAndExp
|
|
| | | | | | | | | | | | `-- eqExp
|
|
| | | | | | | | | | | | `-- relExp
|
|
| | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | `-- Ident: y
|
|
| | | | | | | | | | | | |-- ModOp: %
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | `-- IntConst: 2
|
|
| | | | | | | | | | | |-- R_PAREN: )
|
|
| | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | `-- block
|
|
| | | | | | | | | | | |-- L_BRACE: {
|
|
| | | | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | | |-- addExp
|
|
| | | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | | | | | | |-- AddOp: +
|
|
| | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | | | `-- IntConst: 1
|
|
| | | | | | | | | | | | | |-- MulOp: *
|
|
| | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | |-- Ident: SHIFT_TABLE
|
|
| | | | | | | | | | | | | |-- L_BRACKET: [
|
|
| | | | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | | `-- Ident: i
|
|
| | | | | | | | | | | | | `-- R_BRACKET: ]
|
|
| | | | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | | | `-- R_BRACE: }
|
|
| | | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | | `-- Ident: x
|
|
| | | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | `-- Ident: x
|
|
| | | | | | | | | | | | |-- DivOp: /
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | `-- IntConst: 2
|
|
| | | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | | `-- Ident: y
|
|
| | | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | `-- Ident: y
|
|
| | | | | | | | | | | | |-- DivOp: /
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | `-- IntConst: 2
|
|
| | | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | | `-- Ident: i
|
|
| | | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | |-- addExp
|
|
| | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | `-- Ident: i
|
|
| | | | | | | | | | | | |-- AddOp: +
|
|
| | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | `-- IntConst: 1
|
|
| | | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | | `-- R_BRACE: }
|
|
| | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | `-- Ident: sum
|
|
| | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | |-- 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
|
|
| | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | `-- Ident: x
|
|
| | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | `-- Ident: al
|
|
| | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | `-- Ident: y
|
|
| | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | `-- Ident: c
|
|
| | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | |-- While: while
|
|
| | | | | | | | | | |-- L_PAREN: (
|
|
| | | | | | | | | | |-- cond
|
|
| | | | | | | | | | | `-- lOrExp
|
|
| | | | | | | | | | | `-- lAndExp
|
|
| | | | | | | | | | | `-- eqExp
|
|
| | | | | | | | | | | `-- relExp
|
|
| | | | | | | | | | | |-- relExp
|
|
| | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | `-- Ident: i
|
|
| | | | | | | | | | | |-- LtOp: <
|
|
| | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | `-- IntConst: 16
|
|
| | | | | | | | | | |-- R_PAREN: )
|
|
| | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | `-- block
|
|
| | | | | | | | | | |-- L_BRACE: {
|
|
| | | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | |-- If: if
|
|
| | | | | | | | | | | |-- L_PAREN: (
|
|
| | | | | | | | | | | |-- cond
|
|
| | | | | | | | | | | | `-- lOrExp
|
|
| | | | | | | | | | | | `-- lAndExp
|
|
| | | | | | | | | | | | |-- lAndExp
|
|
| | | | | | | | | | | | | `-- eqExp
|
|
| | | | | | | | | | | | | `-- relExp
|
|
| | | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | | `-- Ident: x
|
|
| | | | | | | | | | | | | |-- ModOp: %
|
|
| | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | | `-- IntConst: 2
|
|
| | | | | | | | | | | | |-- AndOp: &&
|
|
| | | | | | | | | | | | `-- eqExp
|
|
| | | | | | | | | | | | `-- relExp
|
|
| | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | `-- Ident: y
|
|
| | | | | | | | | | | | |-- ModOp: %
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | `-- IntConst: 2
|
|
| | | | | | | | | | | |-- R_PAREN: )
|
|
| | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | `-- block
|
|
| | | | | | | | | | | |-- L_BRACE: {
|
|
| | | | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | | |-- addExp
|
|
| | | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | | | | | | |-- AddOp: +
|
|
| | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | | | `-- IntConst: 1
|
|
| | | | | | | | | | | | | |-- MulOp: *
|
|
| | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | |-- Ident: SHIFT_TABLE
|
|
| | | | | | | | | | | | | |-- L_BRACKET: [
|
|
| | | | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | | `-- Ident: i
|
|
| | | | | | | | | | | | | `-- R_BRACKET: ]
|
|
| | | | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | | | `-- R_BRACE: }
|
|
| | | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | | `-- Ident: x
|
|
| | | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | `-- Ident: x
|
|
| | | | | | | | | | | | |-- DivOp: /
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | `-- IntConst: 2
|
|
| | | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | | `-- Ident: y
|
|
| | | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | `-- Ident: y
|
|
| | | | | | | | | | | | |-- DivOp: /
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | `-- IntConst: 2
|
|
| | | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | | `-- Ident: i
|
|
| | | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | |-- addExp
|
|
| | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | `-- Ident: i
|
|
| | | | | | | | | | | | |-- AddOp: +
|
|
| | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | `-- IntConst: 1
|
|
| | | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | | `-- R_BRACE: }
|
|
| | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | `-- Ident: c
|
|
| | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | |-- If: if
|
|
| | | | | | | | | | |-- L_PAREN: (
|
|
| | | | | | | | | | |-- cond
|
|
| | | | | | | | | | | `-- lOrExp
|
|
| | | | | | | | | | | `-- lAndExp
|
|
| | | | | | | | | | | `-- eqExp
|
|
| | | | | | | | | | | `-- relExp
|
|
| | | | | | | | | | | |-- relExp
|
|
| | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | |-- L_PAREN: (
|
|
| | | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | | `-- IntConst: 1
|
|
| | | | | | | | | | | | `-- R_PAREN: )
|
|
| | | | | | | | | | | |-- GtOp: >
|
|
| | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | `-- IntConst: 15
|
|
| | | | | | | | | | |-- R_PAREN: )
|
|
| | | | | | | | | | |-- stmt
|
|
| | | | | | | | | | | `-- block
|
|
| | | | | | | | | | | |-- L_BRACE: {
|
|
| | | | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | | `-- IntConst: 0
|
|
| | | | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | | | `-- R_BRACE: }
|
|
| | | | | | | | | | |-- Else: else
|
|
| | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | `-- block
|
|
| | | | | | | | | | |-- L_BRACE: {
|
|
| | | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | | |-- 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
|
|
| | | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | | `-- Ident: x
|
|
| | | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | |-- L_PAREN: (
|
|
| | | | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | | `-- Ident: c
|
|
| | | | | | | | | | | | | `-- R_PAREN: )
|
|
| | | | | | | | | | | | |-- MulOp: *
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | |-- Ident: SHIFT_TABLE
|
|
| | | | | | | | | | | | |-- L_BRACKET: [
|
|
| | | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | | `-- IntConst: 1
|
|
| | | | | | | | | | | | `-- R_BRACKET: ]
|
|
| | | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | | `-- Ident: y
|
|
| | | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | `-- IntConst: 0xffff
|
|
| | | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | |-- While: while
|
|
| | | | | | | | | | | |-- L_PAREN: (
|
|
| | | | | | | | | | | |-- cond
|
|
| | | | | | | | | | | | `-- lOrExp
|
|
| | | | | | | | | | | | `-- lAndExp
|
|
| | | | | | | | | | | | `-- eqExp
|
|
| | | | | | | | | | | | `-- relExp
|
|
| | | | | | | | | | | | |-- relExp
|
|
| | | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | `-- Ident: i
|
|
| | | | | | | | | | | | |-- LtOp: <
|
|
| | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | `-- IntConst: 16
|
|
| | | | | | | | | | | |-- R_PAREN: )
|
|
| | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | `-- block
|
|
| | | | | | | | | | | |-- L_BRACE: {
|
|
| | | | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | | |-- If: if
|
|
| | | | | | | | | | | | |-- L_PAREN: (
|
|
| | | | | | | | | | | | |-- cond
|
|
| | | | | | | | | | | | | `-- lOrExp
|
|
| | | | | | | | | | | | | `-- lAndExp
|
|
| | | | | | | | | | | | | |-- lAndExp
|
|
| | | | | | | | | | | | | | `-- eqExp
|
|
| | | | | | | | | | | | | | `-- relExp
|
|
| | | | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | | | `-- Ident: x
|
|
| | | | | | | | | | | | | | |-- ModOp: %
|
|
| | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | | | `-- IntConst: 2
|
|
| | | | | | | | | | | | | |-- AndOp: &&
|
|
| | | | | | | | | | | | | `-- eqExp
|
|
| | | | | | | | | | | | | `-- relExp
|
|
| | | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | | `-- Ident: y
|
|
| | | | | | | | | | | | | |-- ModOp: %
|
|
| | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | | `-- IntConst: 2
|
|
| | | | | | | | | | | | |-- R_PAREN: )
|
|
| | | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | | `-- block
|
|
| | | | | | | | | | | | |-- L_BRACE: {
|
|
| | | | | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | | | |-- addExp
|
|
| | | | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | | | | | | | |-- AddOp: +
|
|
| | | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | | | | `-- IntConst: 1
|
|
| | | | | | | | | | | | | | |-- MulOp: *
|
|
| | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | | |-- Ident: SHIFT_TABLE
|
|
| | | | | | | | | | | | | | |-- L_BRACKET: [
|
|
| | | | | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | | | `-- Ident: i
|
|
| | | | | | | | | | | | | | `-- R_BRACKET: ]
|
|
| | | | | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | | | | `-- R_BRACE: }
|
|
| | | | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | | | `-- Ident: x
|
|
| | | | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | | `-- Ident: x
|
|
| | | | | | | | | | | | | |-- DivOp: /
|
|
| | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | | `-- IntConst: 2
|
|
| | | | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | | | `-- Ident: y
|
|
| | | | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | | `-- Ident: y
|
|
| | | | | | | | | | | | | |-- DivOp: /
|
|
| | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | | `-- IntConst: 2
|
|
| | | | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | | | `-- Ident: i
|
|
| | | | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | | |-- addExp
|
|
| | | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | | `-- Ident: i
|
|
| | | | | | | | | | | | | |-- AddOp: +
|
|
| | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | | `-- IntConst: 1
|
|
| | | | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | | | `-- R_BRACE: }
|
|
| | | | | | | | | | `-- R_BRACE: }
|
|
| | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | `-- Ident: c
|
|
| | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | `-- Ident: al
|
|
| | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | `-- Ident: sum
|
|
| | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | `-- R_BRACE: }
|
|
| | | | | | | | |-- blockItem
|
|
| | | | | | | | | `-- stmt
|
|
| | | | | | | | | |-- lVal
|
|
| | | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | |-- exp
|
|
| | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | `-- Ident: al
|
|
| | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | `-- R_BRACE: }
|
|
| | | | | | | |-- blockItem
|
|
| | | | | | | | `-- stmt
|
|
| | | | | | | | |-- lVal
|
|
| | | | | | | | | `-- Ident: ml
|
|
| | | | | | | | |-- Assign: =
|
|
| | | | | | | | |-- exp
|
|
| | | | | | | | | `-- addExp
|
|
| | | | | | | | | `-- mulExp
|
|
| | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | `-- lVal
|
|
| | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | `-- Semi: ;
|
|
| | | | | | | |-- blockItem
|
|
| | | | | | | | `-- stmt
|
|
| | | | | | | | |-- lVal
|
|
| | | | | | | | | `-- Ident: x
|
|
| | | | | | | | |-- Assign: =
|
|
| | | | | | | | |-- exp
|
|
| | | | | | | | | `-- addExp
|
|
| | | | | | | | | `-- mulExp
|
|
| | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | `-- lVal
|
|
| | | | | | | | | `-- Ident: mr
|
|
| | | | | | | | `-- Semi: ;
|
|
| | | | | | | |-- blockItem
|
|
| | | | | | | | `-- stmt
|
|
| | | | | | | | |-- lVal
|
|
| | | | | | | | | `-- Ident: y
|
|
| | | | | | | | |-- Assign: =
|
|
| | | | | | | | |-- exp
|
|
| | | | | | | | | `-- addExp
|
|
| | | | | | | | | `-- mulExp
|
|
| | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | `-- number
|
|
| | | | | | | | | `-- IntConst: 1
|
|
| | | | | | | | `-- Semi: ;
|
|
| | | | | | | |-- blockItem
|
|
| | | | | | | | `-- stmt
|
|
| | | | | | | | |-- If: if
|
|
| | | | | | | | |-- L_PAREN: (
|
|
| | | | | | | | |-- cond
|
|
| | | | | | | | | `-- lOrExp
|
|
| | | | | | | | | `-- lAndExp
|
|
| | | | | | | | | `-- eqExp
|
|
| | | | | | | | | `-- relExp
|
|
| | | | | | | | | |-- relExp
|
|
| | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | `-- Ident: y
|
|
| | | | | | | | | |-- GeOp: >=
|
|
| | | | | | | | | `-- addExp
|
|
| | | | | | | | | `-- mulExp
|
|
| | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | `-- number
|
|
| | | | | | | | | `-- IntConst: 15
|
|
| | | | | | | | |-- R_PAREN: )
|
|
| | | | | | | | |-- stmt
|
|
| | | | | | | | | `-- block
|
|
| | | | | | | | | |-- L_BRACE: {
|
|
| | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | |-- If: if
|
|
| | | | | | | | | | |-- L_PAREN: (
|
|
| | | | | | | | | | |-- cond
|
|
| | | | | | | | | | | `-- lOrExp
|
|
| | | | | | | | | | | `-- lAndExp
|
|
| | | | | | | | | | | `-- eqExp
|
|
| | | | | | | | | | | `-- relExp
|
|
| | | | | | | | | | | |-- relExp
|
|
| | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | `-- Ident: x
|
|
| | | | | | | | | | | |-- LtOp: <
|
|
| | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | `-- IntConst: 0
|
|
| | | | | | | | | | |-- R_PAREN: )
|
|
| | | | | | | | | | |-- stmt
|
|
| | | | | | | | | | | `-- block
|
|
| | | | | | | | | | | |-- L_BRACE: {
|
|
| | | | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | | `-- IntConst: 0xffff
|
|
| | | | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | | | `-- R_BRACE: }
|
|
| | | | | | | | | | |-- Else: else
|
|
| | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | `-- block
|
|
| | | | | | | | | | |-- L_BRACE: {
|
|
| | | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | `-- IntConst: 0
|
|
| | | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | | `-- R_BRACE: }
|
|
| | | | | | | | | `-- R_BRACE: }
|
|
| | | | | | | | |-- Else: else
|
|
| | | | | | | | `-- stmt
|
|
| | | | | | | | |-- If: if
|
|
| | | | | | | | |-- L_PAREN: (
|
|
| | | | | | | | |-- cond
|
|
| | | | | | | | | `-- lOrExp
|
|
| | | | | | | | | `-- lAndExp
|
|
| | | | | | | | | `-- eqExp
|
|
| | | | | | | | | `-- relExp
|
|
| | | | | | | | | |-- relExp
|
|
| | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | `-- Ident: y
|
|
| | | | | | | | | |-- GtOp: >
|
|
| | | | | | | | | `-- addExp
|
|
| | | | | | | | | `-- mulExp
|
|
| | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | `-- number
|
|
| | | | | | | | | `-- IntConst: 0
|
|
| | | | | | | | |-- R_PAREN: )
|
|
| | | | | | | | |-- stmt
|
|
| | | | | | | | | `-- block
|
|
| | | | | | | | | |-- L_BRACE: {
|
|
| | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | |-- If: if
|
|
| | | | | | | | | | |-- L_PAREN: (
|
|
| | | | | | | | | | |-- cond
|
|
| | | | | | | | | | | `-- lOrExp
|
|
| | | | | | | | | | | `-- lAndExp
|
|
| | | | | | | | | | | `-- eqExp
|
|
| | | | | | | | | | | `-- relExp
|
|
| | | | | | | | | | | |-- relExp
|
|
| | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | `-- Ident: x
|
|
| | | | | | | | | | | |-- GtOp: >
|
|
| | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | `-- IntConst: 0x7fff
|
|
| | | | | | | | | | |-- R_PAREN: )
|
|
| | | | | | | | | | |-- stmt
|
|
| | | | | | | | | | | `-- block
|
|
| | | | | | | | | | | |-- L_BRACE: {
|
|
| | | | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | | | `-- Ident: x
|
|
| | | | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | | `-- Ident: x
|
|
| | | | | | | | | | | | | |-- DivOp: /
|
|
| | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | |-- Ident: SHIFT_TABLE
|
|
| | | | | | | | | | | | | |-- L_BRACKET: [
|
|
| | | | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | | `-- Ident: y
|
|
| | | | | | | | | | | | | `-- R_BRACKET: ]
|
|
| | | | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | | |-- addExp
|
|
| | | | | | | | | | | | | | |-- addExp
|
|
| | | | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | | | `-- Ident: x
|
|
| | | | | | | | | | | | | | |-- AddOp: +
|
|
| | | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | | | `-- IntConst: 65536
|
|
| | | | | | | | | | | | | |-- SubOp: -
|
|
| | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | |-- Ident: SHIFT_TABLE
|
|
| | | | | | | | | | | | | |-- L_BRACKET: [
|
|
| | | | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | | | |-- addExp
|
|
| | | | | | | | | | | | | | | |-- addExp
|
|
| | | | | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | | | | | `-- IntConst: 15
|
|
| | | | | | | | | | | | | | | |-- SubOp: -
|
|
| | | | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | | | `-- Ident: y
|
|
| | | | | | | | | | | | | | |-- AddOp: +
|
|
| | | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | | | `-- IntConst: 1
|
|
| | | | | | | | | | | | | `-- R_BRACKET: ]
|
|
| | | | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | | | `-- R_BRACE: }
|
|
| | | | | | | | | | |-- Else: else
|
|
| | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | `-- block
|
|
| | | | | | | | | | |-- L_BRACE: {
|
|
| | | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | `-- Ident: x
|
|
| | | | | | | | | | | | |-- DivOp: /
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | |-- Ident: SHIFT_TABLE
|
|
| | | | | | | | | | | | |-- L_BRACKET: [
|
|
| | | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | `-- Ident: y
|
|
| | | | | | | | | | | | `-- R_BRACKET: ]
|
|
| | | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | | `-- R_BRACE: }
|
|
| | | | | | | | | `-- R_BRACE: }
|
|
| | | | | | | | |-- Else: else
|
|
| | | | | | | | `-- stmt
|
|
| | | | | | | | `-- block
|
|
| | | | | | | | |-- L_BRACE: {
|
|
| | | | | | | | |-- blockItem
|
|
| | | | | | | | | `-- stmt
|
|
| | | | | | | | | |-- lVal
|
|
| | | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | |-- exp
|
|
| | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | `-- Ident: x
|
|
| | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | `-- R_BRACE: }
|
|
| | | | | | | |-- blockItem
|
|
| | | | | | | | `-- stmt
|
|
| | | | | | | | |-- lVal
|
|
| | | | | | | | | `-- Ident: mr
|
|
| | | | | | | | |-- Assign: =
|
|
| | | | | | | | |-- exp
|
|
| | | | | | | | | `-- addExp
|
|
| | | | | | | | | `-- mulExp
|
|
| | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | `-- lVal
|
|
| | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | `-- Semi: ;
|
|
| | | | | | | `-- R_BRACE: }
|
|
| | | | | | |-- blockItem
|
|
| | | | | | | `-- stmt
|
|
| | | | | | | |-- lVal
|
|
| | | | | | | | `-- Ident: ans
|
|
| | | | | | | |-- Assign: =
|
|
| | | | | | | |-- exp
|
|
| | | | | | | | `-- addExp
|
|
| | | | | | | | `-- mulExp
|
|
| | | | | | | | `-- unaryExp
|
|
| | | | | | | | `-- primaryExp
|
|
| | | | | | | | `-- lVal
|
|
| | | | | | | | `-- Ident: mres
|
|
| | | | | | | `-- Semi: ;
|
|
| | | | | | `-- R_BRACE: }
|
|
| | | | | |-- blockItem
|
|
| | | | | | `-- stmt
|
|
| | | | | | |-- lVal
|
|
| | | | | | | `-- Ident: pres
|
|
| | | | | | |-- Assign: =
|
|
| | | | | | |-- exp
|
|
| | | | | | | `-- addExp
|
|
| | | | | | | `-- mulExp
|
|
| | | | | | | `-- unaryExp
|
|
| | | | | | | `-- primaryExp
|
|
| | | | | | | `-- lVal
|
|
| | | | | | | `-- Ident: ans
|
|
| | | | | | `-- Semi: ;
|
|
| | | | | `-- R_BRACE: }
|
|
| | | | |-- blockItem
|
|
| | | | | `-- stmt
|
|
| | | | | `-- block
|
|
| | | | | |-- L_BRACE: {
|
|
| | | | | |-- blockItem
|
|
| | | | | | `-- decl
|
|
| | | | | | `-- varDecl
|
|
| | | | | | |-- bType
|
|
| | | | | | | `-- Int: int
|
|
| | | | | | |-- varDef
|
|
| | | | | | | |-- Ident: ml
|
|
| | | | | | | |-- Assign: =
|
|
| | | | | | | `-- initVal
|
|
| | | | | | | `-- exp
|
|
| | | | | | | `-- addExp
|
|
| | | | | | | `-- mulExp
|
|
| | | | | | | `-- unaryExp
|
|
| | | | | | | `-- primaryExp
|
|
| | | | | | | `-- lVal
|
|
| | | | | | | `-- Ident: pl
|
|
| | | | | | |-- Comma: ,
|
|
| | | | | | |-- varDef
|
|
| | | | | | | |-- Ident: mr
|
|
| | | | | | | |-- Assign: =
|
|
| | | | | | | `-- initVal
|
|
| | | | | | | `-- exp
|
|
| | | | | | | `-- addExp
|
|
| | | | | | | `-- mulExp
|
|
| | | | | | | `-- unaryExp
|
|
| | | | | | | `-- primaryExp
|
|
| | | | | | | `-- lVal
|
|
| | | | | | | `-- Ident: pl
|
|
| | | | | | |-- Comma: ,
|
|
| | | | | | |-- varDef
|
|
| | | | | | | |-- Ident: mres
|
|
| | | | | | | |-- Assign: =
|
|
| | | | | | | `-- initVal
|
|
| | | | | | | `-- exp
|
|
| | | | | | | `-- addExp
|
|
| | | | | | | `-- mulExp
|
|
| | | | | | | `-- unaryExp
|
|
| | | | | | | `-- primaryExp
|
|
| | | | | | | `-- number
|
|
| | | | | | | `-- IntConst: 0
|
|
| | | | | | `-- Semi: ;
|
|
| | | | | |-- blockItem
|
|
| | | | | | `-- stmt
|
|
| | | | | | |-- While: while
|
|
| | | | | | |-- L_PAREN: (
|
|
| | | | | | |-- cond
|
|
| | | | | | | `-- lOrExp
|
|
| | | | | | | `-- lAndExp
|
|
| | | | | | | `-- eqExp
|
|
| | | | | | | `-- relExp
|
|
| | | | | | | `-- addExp
|
|
| | | | | | | `-- mulExp
|
|
| | | | | | | `-- unaryExp
|
|
| | | | | | | `-- primaryExp
|
|
| | | | | | | `-- lVal
|
|
| | | | | | | `-- Ident: mr
|
|
| | | | | | |-- R_PAREN: )
|
|
| | | | | | `-- stmt
|
|
| | | | | | `-- block
|
|
| | | | | | |-- L_BRACE: {
|
|
| | | | | | |-- blockItem
|
|
| | | | | | | `-- stmt
|
|
| | | | | | | |-- lVal
|
|
| | | | | | | | `-- Ident: ans
|
|
| | | | | | | |-- Assign: =
|
|
| | | | | | | |-- 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
|
|
| | | | | | | |-- lVal
|
|
| | | | | | | | `-- Ident: x
|
|
| | | | | | | |-- Assign: =
|
|
| | | | | | | |-- exp
|
|
| | | | | | | | `-- addExp
|
|
| | | | | | | | `-- mulExp
|
|
| | | | | | | | `-- unaryExp
|
|
| | | | | | | | `-- primaryExp
|
|
| | | | | | | | `-- lVal
|
|
| | | | | | | | `-- Ident: mr
|
|
| | | | | | | `-- Semi: ;
|
|
| | | | | | |-- blockItem
|
|
| | | | | | | `-- stmt
|
|
| | | | | | | |-- lVal
|
|
| | | | | | | | `-- Ident: y
|
|
| | | | | | | |-- Assign: =
|
|
| | | | | | | |-- exp
|
|
| | | | | | | | `-- addExp
|
|
| | | | | | | | `-- mulExp
|
|
| | | | | | | | `-- unaryExp
|
|
| | | | | | | | `-- primaryExp
|
|
| | | | | | | | `-- number
|
|
| | | | | | | | `-- IntConst: 1
|
|
| | | | | | | `-- Semi: ;
|
|
| | | | | | |-- blockItem
|
|
| | | | | | | `-- stmt
|
|
| | | | | | | |-- While: while
|
|
| | | | | | | |-- L_PAREN: (
|
|
| | | | | | | |-- cond
|
|
| | | | | | | | `-- lOrExp
|
|
| | | | | | | | `-- lAndExp
|
|
| | | | | | | | `-- eqExp
|
|
| | | | | | | | `-- relExp
|
|
| | | | | | | | |-- relExp
|
|
| | | | | | | | | `-- addExp
|
|
| | | | | | | | | `-- mulExp
|
|
| | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | `-- lVal
|
|
| | | | | | | | | `-- Ident: i
|
|
| | | | | | | | |-- LtOp: <
|
|
| | | | | | | | `-- addExp
|
|
| | | | | | | | `-- mulExp
|
|
| | | | | | | | `-- unaryExp
|
|
| | | | | | | | `-- primaryExp
|
|
| | | | | | | | `-- number
|
|
| | | | | | | | `-- IntConst: 16
|
|
| | | | | | | |-- R_PAREN: )
|
|
| | | | | | | `-- stmt
|
|
| | | | | | | `-- block
|
|
| | | | | | | |-- L_BRACE: {
|
|
| | | | | | | |-- blockItem
|
|
| | | | | | | | `-- stmt
|
|
| | | | | | | | |-- If: if
|
|
| | | | | | | | |-- L_PAREN: (
|
|
| | | | | | | | |-- cond
|
|
| | | | | | | | | `-- lOrExp
|
|
| | | | | | | | | `-- lAndExp
|
|
| | | | | | | | | |-- lAndExp
|
|
| | | | | | | | | | `-- eqExp
|
|
| | | | | | | | | | `-- relExp
|
|
| | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | `-- Ident: x
|
|
| | | | | | | | | | |-- ModOp: %
|
|
| | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | `-- number
|
|
| | | | | | | | | | `-- IntConst: 2
|
|
| | | | | | | | | |-- AndOp: &&
|
|
| | | | | | | | | `-- eqExp
|
|
| | | | | | | | | `-- relExp
|
|
| | | | | | | | | `-- addExp
|
|
| | | | | | | | | `-- mulExp
|
|
| | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | `-- Ident: y
|
|
| | | | | | | | | |-- ModOp: %
|
|
| | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | `-- number
|
|
| | | | | | | | | `-- IntConst: 2
|
|
| | | | | | | | |-- R_PAREN: )
|
|
| | | | | | | | `-- stmt
|
|
| | | | | | | | `-- block
|
|
| | | | | | | | |-- L_BRACE: {
|
|
| | | | | | | | |-- blockItem
|
|
| | | | | | | | | `-- stmt
|
|
| | | | | | | | | |-- lVal
|
|
| | | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | |-- exp
|
|
| | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | |-- addExp
|
|
| | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | | | |-- AddOp: +
|
|
| | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | `-- IntConst: 1
|
|
| | | | | | | | | | |-- MulOp: *
|
|
| | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | |-- Ident: SHIFT_TABLE
|
|
| | | | | | | | | | |-- L_BRACKET: [
|
|
| | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | `-- Ident: i
|
|
| | | | | | | | | | `-- R_BRACKET: ]
|
|
| | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | `-- R_BRACE: }
|
|
| | | | | | | |-- blockItem
|
|
| | | | | | | | `-- stmt
|
|
| | | | | | | | |-- lVal
|
|
| | | | | | | | | `-- Ident: x
|
|
| | | | | | | | |-- Assign: =
|
|
| | | | | | | | |-- exp
|
|
| | | | | | | | | `-- addExp
|
|
| | | | | | | | | `-- mulExp
|
|
| | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | `-- Ident: x
|
|
| | | | | | | | | |-- DivOp: /
|
|
| | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | `-- number
|
|
| | | | | | | | | `-- IntConst: 2
|
|
| | | | | | | | `-- Semi: ;
|
|
| | | | | | | |-- blockItem
|
|
| | | | | | | | `-- stmt
|
|
| | | | | | | | |-- lVal
|
|
| | | | | | | | | `-- Ident: y
|
|
| | | | | | | | |-- Assign: =
|
|
| | | | | | | | |-- exp
|
|
| | | | | | | | | `-- addExp
|
|
| | | | | | | | | `-- mulExp
|
|
| | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | `-- Ident: y
|
|
| | | | | | | | | |-- DivOp: /
|
|
| | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | `-- number
|
|
| | | | | | | | | `-- IntConst: 2
|
|
| | | | | | | | `-- Semi: ;
|
|
| | | | | | | |-- blockItem
|
|
| | | | | | | | `-- stmt
|
|
| | | | | | | | |-- lVal
|
|
| | | | | | | | | `-- Ident: i
|
|
| | | | | | | | |-- Assign: =
|
|
| | | | | | | | |-- exp
|
|
| | | | | | | | | `-- addExp
|
|
| | | | | | | | | |-- addExp
|
|
| | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | `-- Ident: i
|
|
| | | | | | | | | |-- AddOp: +
|
|
| | | | | | | | | `-- mulExp
|
|
| | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | `-- number
|
|
| | | | | | | | | `-- IntConst: 1
|
|
| | | | | | | | `-- Semi: ;
|
|
| | | | | | | `-- R_BRACE: }
|
|
| | | | | | |-- blockItem
|
|
| | | | | | | `-- stmt
|
|
| | | | | | | |-- If: if
|
|
| | | | | | | |-- L_PAREN: (
|
|
| | | | | | | |-- cond
|
|
| | | | | | | | `-- lOrExp
|
|
| | | | | | | | `-- lAndExp
|
|
| | | | | | | | `-- eqExp
|
|
| | | | | | | | `-- relExp
|
|
| | | | | | | | `-- addExp
|
|
| | | | | | | | `-- mulExp
|
|
| | | | | | | | `-- unaryExp
|
|
| | | | | | | | `-- primaryExp
|
|
| | | | | | | | `-- lVal
|
|
| | | | | | | | `-- Ident: ans
|
|
| | | | | | | |-- R_PAREN: )
|
|
| | | | | | | `-- stmt
|
|
| | | | | | | `-- block
|
|
| | | | | | | |-- L_BRACE: {
|
|
| | | | | | | |-- blockItem
|
|
| | | | | | | | `-- stmt
|
|
| | | | | | | | `-- block
|
|
| | | | | | | | |-- L_BRACE: {
|
|
| | | | | | | | |-- blockItem
|
|
| | | | | | | | | `-- decl
|
|
| | | | | | | | | `-- varDecl
|
|
| | | | | | | | | |-- bType
|
|
| | | | | | | | | | `-- Int: int
|
|
| | | | | | | | | |-- varDef
|
|
| | | | | | | | | | |-- Ident: al
|
|
| | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | `-- initVal
|
|
| | | | | | | | | | `-- exp
|
|
| | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | `-- Ident: mres
|
|
| | | | | | | | | |-- Comma: ,
|
|
| | | | | | | | | |-- varDef
|
|
| | | | | | | | | | |-- Ident: c
|
|
| | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | `-- initVal
|
|
| | | | | | | | | | `-- exp
|
|
| | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | `-- Ident: ml
|
|
| | | | | | | | | |-- Comma: ,
|
|
| | | | | | | | | |-- varDef
|
|
| | | | | | | | | | `-- Ident: sum
|
|
| | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | |-- blockItem
|
|
| | | | | | | | | `-- stmt
|
|
| | | | | | | | | |-- While: while
|
|
| | | | | | | | | |-- L_PAREN: (
|
|
| | | | | | | | | |-- cond
|
|
| | | | | | | | | | `-- lOrExp
|
|
| | | | | | | | | | `-- lAndExp
|
|
| | | | | | | | | | `-- eqExp
|
|
| | | | | | | | | | `-- relExp
|
|
| | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | `-- Ident: c
|
|
| | | | | | | | | |-- R_PAREN: )
|
|
| | | | | | | | | `-- stmt
|
|
| | | | | | | | | `-- block
|
|
| | | | | | | | | |-- L_BRACE: {
|
|
| | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | |-- 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
|
|
| | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | `-- Ident: x
|
|
| | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | `-- Ident: al
|
|
| | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | `-- Ident: y
|
|
| | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | `-- Ident: c
|
|
| | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | |-- While: while
|
|
| | | | | | | | | | |-- L_PAREN: (
|
|
| | | | | | | | | | |-- cond
|
|
| | | | | | | | | | | `-- lOrExp
|
|
| | | | | | | | | | | `-- lAndExp
|
|
| | | | | | | | | | | `-- eqExp
|
|
| | | | | | | | | | | `-- relExp
|
|
| | | | | | | | | | | |-- relExp
|
|
| | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | `-- Ident: i
|
|
| | | | | | | | | | | |-- LtOp: <
|
|
| | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | `-- IntConst: 16
|
|
| | | | | | | | | | |-- R_PAREN: )
|
|
| | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | `-- block
|
|
| | | | | | | | | | |-- L_BRACE: {
|
|
| | | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | |-- If: if
|
|
| | | | | | | | | | | |-- L_PAREN: (
|
|
| | | | | | | | | | | |-- cond
|
|
| | | | | | | | | | | | `-- lOrExp
|
|
| | | | | | | | | | | | `-- lAndExp
|
|
| | | | | | | | | | | | `-- eqExp
|
|
| | | | | | | | | | | | `-- relExp
|
|
| | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | `-- Ident: x
|
|
| | | | | | | | | | | | |-- ModOp: %
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | `-- IntConst: 2
|
|
| | | | | | | | | | | |-- R_PAREN: )
|
|
| | | | | | | | | | | |-- stmt
|
|
| | | | | | | | | | | | `-- block
|
|
| | | | | | | | | | | | |-- L_BRACE: {
|
|
| | | | | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | | | |-- If: if
|
|
| | | | | | | | | | | | | |-- L_PAREN: (
|
|
| | | | | | | | | | | | | |-- cond
|
|
| | | | | | | | | | | | | | `-- lOrExp
|
|
| | | | | | | | | | | | | | `-- lAndExp
|
|
| | | | | | | | | | | | | | `-- eqExp
|
|
| | | | | | | | | | | | | | |-- eqExp
|
|
| | | | | | | | | | | | | | | `-- relExp
|
|
| | | | | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | | | | `-- Ident: y
|
|
| | | | | | | | | | | | | | | |-- ModOp: %
|
|
| | | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | | | | `-- IntConst: 2
|
|
| | | | | | | | | | | | | | |-- EqOp: ==
|
|
| | | | | | | | | | | | | | `-- relExp
|
|
| | | | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | | | `-- IntConst: 0
|
|
| | | | | | | | | | | | | |-- R_PAREN: )
|
|
| | | | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | | | `-- block
|
|
| | | | | | | | | | | | | |-- L_BRACE: {
|
|
| | | | | | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | | | | |-- addExp
|
|
| | | | | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | | | | | | | | |-- AddOp: +
|
|
| | | | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | | | | | `-- IntConst: 1
|
|
| | | | | | | | | | | | | | | |-- MulOp: *
|
|
| | | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | | | |-- Ident: SHIFT_TABLE
|
|
| | | | | | | | | | | | | | | |-- L_BRACKET: [
|
|
| | | | | | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | | | | `-- Ident: i
|
|
| | | | | | | | | | | | | | | `-- R_BRACKET: ]
|
|
| | | | | | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | | | | | `-- R_BRACE: }
|
|
| | | | | | | | | | | | `-- R_BRACE: }
|
|
| | | | | | | | | | | |-- Else: else
|
|
| | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | |-- If: if
|
|
| | | | | | | | | | | |-- L_PAREN: (
|
|
| | | | | | | | | | | |-- cond
|
|
| | | | | | | | | | | | `-- lOrExp
|
|
| | | | | | | | | | | | `-- lAndExp
|
|
| | | | | | | | | | | | `-- eqExp
|
|
| | | | | | | | | | | | `-- relExp
|
|
| | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | `-- Ident: y
|
|
| | | | | | | | | | | | |-- ModOp: %
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | `-- IntConst: 2
|
|
| | | | | | | | | | | |-- R_PAREN: )
|
|
| | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | `-- block
|
|
| | | | | | | | | | | |-- L_BRACE: {
|
|
| | | | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | | |-- addExp
|
|
| | | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | | | | | | |-- AddOp: +
|
|
| | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | | | `-- IntConst: 1
|
|
| | | | | | | | | | | | | |-- MulOp: *
|
|
| | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | |-- Ident: SHIFT_TABLE
|
|
| | | | | | | | | | | | | |-- L_BRACKET: [
|
|
| | | | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | | `-- Ident: i
|
|
| | | | | | | | | | | | | `-- R_BRACKET: ]
|
|
| | | | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | | | `-- R_BRACE: }
|
|
| | | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | | `-- Ident: x
|
|
| | | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | `-- Ident: x
|
|
| | | | | | | | | | | | |-- DivOp: /
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | `-- IntConst: 2
|
|
| | | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | | `-- Ident: y
|
|
| | | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | `-- Ident: y
|
|
| | | | | | | | | | | | |-- DivOp: /
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | `-- IntConst: 2
|
|
| | | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | | `-- Ident: i
|
|
| | | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | |-- addExp
|
|
| | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | `-- Ident: i
|
|
| | | | | | | | | | | | |-- AddOp: +
|
|
| | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | `-- IntConst: 1
|
|
| | | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | | `-- R_BRACE: }
|
|
| | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | `-- Ident: sum
|
|
| | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | |-- 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
|
|
| | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | `-- Ident: x
|
|
| | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | `-- Ident: al
|
|
| | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | `-- Ident: y
|
|
| | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | `-- Ident: c
|
|
| | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | |-- While: while
|
|
| | | | | | | | | | |-- L_PAREN: (
|
|
| | | | | | | | | | |-- cond
|
|
| | | | | | | | | | | `-- lOrExp
|
|
| | | | | | | | | | | `-- lAndExp
|
|
| | | | | | | | | | | `-- eqExp
|
|
| | | | | | | | | | | `-- relExp
|
|
| | | | | | | | | | | |-- relExp
|
|
| | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | `-- Ident: i
|
|
| | | | | | | | | | | |-- LtOp: <
|
|
| | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | `-- IntConst: 16
|
|
| | | | | | | | | | |-- R_PAREN: )
|
|
| | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | `-- block
|
|
| | | | | | | | | | |-- L_BRACE: {
|
|
| | | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | |-- If: if
|
|
| | | | | | | | | | | |-- L_PAREN: (
|
|
| | | | | | | | | | | |-- cond
|
|
| | | | | | | | | | | | `-- lOrExp
|
|
| | | | | | | | | | | | `-- lAndExp
|
|
| | | | | | | | | | | | |-- lAndExp
|
|
| | | | | | | | | | | | | `-- eqExp
|
|
| | | | | | | | | | | | | `-- relExp
|
|
| | | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | | `-- Ident: x
|
|
| | | | | | | | | | | | | |-- ModOp: %
|
|
| | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | | `-- IntConst: 2
|
|
| | | | | | | | | | | | |-- AndOp: &&
|
|
| | | | | | | | | | | | `-- eqExp
|
|
| | | | | | | | | | | | `-- relExp
|
|
| | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | `-- Ident: y
|
|
| | | | | | | | | | | | |-- ModOp: %
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | `-- IntConst: 2
|
|
| | | | | | | | | | | |-- R_PAREN: )
|
|
| | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | `-- block
|
|
| | | | | | | | | | | |-- L_BRACE: {
|
|
| | | | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | | |-- addExp
|
|
| | | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | | | | | | |-- AddOp: +
|
|
| | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | | | `-- IntConst: 1
|
|
| | | | | | | | | | | | | |-- MulOp: *
|
|
| | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | |-- Ident: SHIFT_TABLE
|
|
| | | | | | | | | | | | | |-- L_BRACKET: [
|
|
| | | | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | | `-- Ident: i
|
|
| | | | | | | | | | | | | `-- R_BRACKET: ]
|
|
| | | | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | | | `-- R_BRACE: }
|
|
| | | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | | `-- Ident: x
|
|
| | | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | `-- Ident: x
|
|
| | | | | | | | | | | | |-- DivOp: /
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | `-- IntConst: 2
|
|
| | | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | | `-- Ident: y
|
|
| | | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | `-- Ident: y
|
|
| | | | | | | | | | | | |-- DivOp: /
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | `-- IntConst: 2
|
|
| | | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | | `-- Ident: i
|
|
| | | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | |-- addExp
|
|
| | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | `-- Ident: i
|
|
| | | | | | | | | | | | |-- AddOp: +
|
|
| | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | `-- IntConst: 1
|
|
| | | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | | `-- R_BRACE: }
|
|
| | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | `-- Ident: c
|
|
| | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | |-- If: if
|
|
| | | | | | | | | | |-- L_PAREN: (
|
|
| | | | | | | | | | |-- cond
|
|
| | | | | | | | | | | `-- lOrExp
|
|
| | | | | | | | | | | `-- lAndExp
|
|
| | | | | | | | | | | `-- eqExp
|
|
| | | | | | | | | | | `-- relExp
|
|
| | | | | | | | | | | |-- relExp
|
|
| | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | |-- L_PAREN: (
|
|
| | | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | | `-- IntConst: 1
|
|
| | | | | | | | | | | | `-- R_PAREN: )
|
|
| | | | | | | | | | | |-- GtOp: >
|
|
| | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | `-- IntConst: 15
|
|
| | | | | | | | | | |-- R_PAREN: )
|
|
| | | | | | | | | | |-- stmt
|
|
| | | | | | | | | | | `-- block
|
|
| | | | | | | | | | | |-- L_BRACE: {
|
|
| | | | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | | `-- IntConst: 0
|
|
| | | | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | | | `-- R_BRACE: }
|
|
| | | | | | | | | | |-- Else: else
|
|
| | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | `-- block
|
|
| | | | | | | | | | |-- L_BRACE: {
|
|
| | | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | | |-- 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
|
|
| | | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | | `-- Ident: x
|
|
| | | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | |-- L_PAREN: (
|
|
| | | | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | | `-- Ident: c
|
|
| | | | | | | | | | | | | `-- R_PAREN: )
|
|
| | | | | | | | | | | | |-- MulOp: *
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | |-- Ident: SHIFT_TABLE
|
|
| | | | | | | | | | | | |-- L_BRACKET: [
|
|
| | | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | | `-- IntConst: 1
|
|
| | | | | | | | | | | | `-- R_BRACKET: ]
|
|
| | | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | | `-- Ident: y
|
|
| | | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | `-- IntConst: 0xffff
|
|
| | | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | |-- While: while
|
|
| | | | | | | | | | | |-- L_PAREN: (
|
|
| | | | | | | | | | | |-- cond
|
|
| | | | | | | | | | | | `-- lOrExp
|
|
| | | | | | | | | | | | `-- lAndExp
|
|
| | | | | | | | | | | | `-- eqExp
|
|
| | | | | | | | | | | | `-- relExp
|
|
| | | | | | | | | | | | |-- relExp
|
|
| | | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | `-- Ident: i
|
|
| | | | | | | | | | | | |-- LtOp: <
|
|
| | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | `-- IntConst: 16
|
|
| | | | | | | | | | | |-- R_PAREN: )
|
|
| | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | `-- block
|
|
| | | | | | | | | | | |-- L_BRACE: {
|
|
| | | | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | | |-- If: if
|
|
| | | | | | | | | | | | |-- L_PAREN: (
|
|
| | | | | | | | | | | | |-- cond
|
|
| | | | | | | | | | | | | `-- lOrExp
|
|
| | | | | | | | | | | | | `-- lAndExp
|
|
| | | | | | | | | | | | | |-- lAndExp
|
|
| | | | | | | | | | | | | | `-- eqExp
|
|
| | | | | | | | | | | | | | `-- relExp
|
|
| | | | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | | | `-- Ident: x
|
|
| | | | | | | | | | | | | | |-- ModOp: %
|
|
| | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | | | `-- IntConst: 2
|
|
| | | | | | | | | | | | | |-- AndOp: &&
|
|
| | | | | | | | | | | | | `-- eqExp
|
|
| | | | | | | | | | | | | `-- relExp
|
|
| | | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | | `-- Ident: y
|
|
| | | | | | | | | | | | | |-- ModOp: %
|
|
| | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | | `-- IntConst: 2
|
|
| | | | | | | | | | | | |-- R_PAREN: )
|
|
| | | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | | `-- block
|
|
| | | | | | | | | | | | |-- L_BRACE: {
|
|
| | | | | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | | | |-- addExp
|
|
| | | | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | | | | | | | |-- AddOp: +
|
|
| | | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | | | | `-- IntConst: 1
|
|
| | | | | | | | | | | | | | |-- MulOp: *
|
|
| | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | | |-- Ident: SHIFT_TABLE
|
|
| | | | | | | | | | | | | | |-- L_BRACKET: [
|
|
| | | | | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | | | `-- Ident: i
|
|
| | | | | | | | | | | | | | `-- R_BRACKET: ]
|
|
| | | | | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | | | | `-- R_BRACE: }
|
|
| | | | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | | | `-- Ident: x
|
|
| | | | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | | `-- Ident: x
|
|
| | | | | | | | | | | | | |-- DivOp: /
|
|
| | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | | `-- IntConst: 2
|
|
| | | | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | | | `-- Ident: y
|
|
| | | | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | | `-- Ident: y
|
|
| | | | | | | | | | | | | |-- DivOp: /
|
|
| | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | | `-- IntConst: 2
|
|
| | | | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | | | `-- Ident: i
|
|
| | | | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | | |-- addExp
|
|
| | | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | | `-- Ident: i
|
|
| | | | | | | | | | | | | |-- AddOp: +
|
|
| | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | | `-- IntConst: 1
|
|
| | | | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | | | `-- R_BRACE: }
|
|
| | | | | | | | | | `-- R_BRACE: }
|
|
| | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | `-- Ident: c
|
|
| | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | `-- Ident: al
|
|
| | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | `-- Ident: sum
|
|
| | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | `-- R_BRACE: }
|
|
| | | | | | | | |-- blockItem
|
|
| | | | | | | | | `-- stmt
|
|
| | | | | | | | | |-- lVal
|
|
| | | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | |-- exp
|
|
| | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | `-- Ident: al
|
|
| | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | `-- R_BRACE: }
|
|
| | | | | | | |-- blockItem
|
|
| | | | | | | | `-- stmt
|
|
| | | | | | | | |-- lVal
|
|
| | | | | | | | | `-- Ident: mres
|
|
| | | | | | | | |-- Assign: =
|
|
| | | | | | | | |-- exp
|
|
| | | | | | | | | `-- addExp
|
|
| | | | | | | | | `-- mulExp
|
|
| | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | `-- lVal
|
|
| | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | `-- Semi: ;
|
|
| | | | | | | `-- R_BRACE: }
|
|
| | | | | | |-- blockItem
|
|
| | | | | | | `-- stmt
|
|
| | | | | | | `-- block
|
|
| | | | | | | |-- L_BRACE: {
|
|
| | | | | | | |-- blockItem
|
|
| | | | | | | | `-- decl
|
|
| | | | | | | | `-- varDecl
|
|
| | | | | | | | |-- bType
|
|
| | | | | | | | | `-- Int: int
|
|
| | | | | | | | |-- varDef
|
|
| | | | | | | | | |-- Ident: al
|
|
| | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | `-- initVal
|
|
| | | | | | | | | `-- exp
|
|
| | | | | | | | | `-- addExp
|
|
| | | | | | | | | `-- mulExp
|
|
| | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | `-- lVal
|
|
| | | | | | | | | `-- Ident: ml
|
|
| | | | | | | | |-- Comma: ,
|
|
| | | | | | | | |-- varDef
|
|
| | | | | | | | | |-- Ident: c
|
|
| | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | `-- initVal
|
|
| | | | | | | | | `-- exp
|
|
| | | | | | | | | `-- addExp
|
|
| | | | | | | | | `-- mulExp
|
|
| | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | `-- lVal
|
|
| | | | | | | | | `-- Ident: ml
|
|
| | | | | | | | |-- Comma: ,
|
|
| | | | | | | | |-- varDef
|
|
| | | | | | | | | `-- Ident: sum
|
|
| | | | | | | | `-- Semi: ;
|
|
| | | | | | | |-- blockItem
|
|
| | | | | | | | `-- stmt
|
|
| | | | | | | | |-- While: while
|
|
| | | | | | | | |-- L_PAREN: (
|
|
| | | | | | | | |-- cond
|
|
| | | | | | | | | `-- lOrExp
|
|
| | | | | | | | | `-- lAndExp
|
|
| | | | | | | | | `-- eqExp
|
|
| | | | | | | | | `-- relExp
|
|
| | | | | | | | | `-- addExp
|
|
| | | | | | | | | `-- mulExp
|
|
| | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | `-- lVal
|
|
| | | | | | | | | `-- Ident: c
|
|
| | | | | | | | |-- R_PAREN: )
|
|
| | | | | | | | `-- stmt
|
|
| | | | | | | | `-- block
|
|
| | | | | | | | |-- L_BRACE: {
|
|
| | | | | | | | |-- blockItem
|
|
| | | | | | | | | `-- stmt
|
|
| | | | | | | | | |-- lVal
|
|
| | | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | |-- 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
|
|
| | | | | | | | | |-- lVal
|
|
| | | | | | | | | | `-- Ident: x
|
|
| | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | |-- exp
|
|
| | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | `-- Ident: al
|
|
| | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | |-- blockItem
|
|
| | | | | | | | | `-- stmt
|
|
| | | | | | | | | |-- lVal
|
|
| | | | | | | | | | `-- Ident: y
|
|
| | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | |-- exp
|
|
| | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | `-- Ident: c
|
|
| | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | |-- blockItem
|
|
| | | | | | | | | `-- stmt
|
|
| | | | | | | | | |-- While: while
|
|
| | | | | | | | | |-- L_PAREN: (
|
|
| | | | | | | | | |-- cond
|
|
| | | | | | | | | | `-- lOrExp
|
|
| | | | | | | | | | `-- lAndExp
|
|
| | | | | | | | | | `-- eqExp
|
|
| | | | | | | | | | `-- relExp
|
|
| | | | | | | | | | |-- relExp
|
|
| | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | `-- Ident: i
|
|
| | | | | | | | | | |-- LtOp: <
|
|
| | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | `-- number
|
|
| | | | | | | | | | `-- IntConst: 16
|
|
| | | | | | | | | |-- R_PAREN: )
|
|
| | | | | | | | | `-- stmt
|
|
| | | | | | | | | `-- block
|
|
| | | | | | | | | |-- L_BRACE: {
|
|
| | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | |-- If: if
|
|
| | | | | | | | | | |-- L_PAREN: (
|
|
| | | | | | | | | | |-- cond
|
|
| | | | | | | | | | | `-- lOrExp
|
|
| | | | | | | | | | | `-- lAndExp
|
|
| | | | | | | | | | | `-- eqExp
|
|
| | | | | | | | | | | `-- relExp
|
|
| | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | `-- Ident: x
|
|
| | | | | | | | | | | |-- ModOp: %
|
|
| | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | `-- IntConst: 2
|
|
| | | | | | | | | | |-- R_PAREN: )
|
|
| | | | | | | | | | |-- stmt
|
|
| | | | | | | | | | | `-- block
|
|
| | | | | | | | | | | |-- L_BRACE: {
|
|
| | | | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | | |-- If: if
|
|
| | | | | | | | | | | | |-- L_PAREN: (
|
|
| | | | | | | | | | | | |-- cond
|
|
| | | | | | | | | | | | | `-- lOrExp
|
|
| | | | | | | | | | | | | `-- lAndExp
|
|
| | | | | | | | | | | | | `-- eqExp
|
|
| | | | | | | | | | | | | |-- eqExp
|
|
| | | | | | | | | | | | | | `-- relExp
|
|
| | | | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | | | `-- Ident: y
|
|
| | | | | | | | | | | | | | |-- ModOp: %
|
|
| | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | | | `-- IntConst: 2
|
|
| | | | | | | | | | | | | |-- EqOp: ==
|
|
| | | | | | | | | | | | | `-- relExp
|
|
| | | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | | `-- IntConst: 0
|
|
| | | | | | | | | | | | |-- R_PAREN: )
|
|
| | | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | | `-- block
|
|
| | | | | | | | | | | | |-- L_BRACE: {
|
|
| | | | | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | | | |-- addExp
|
|
| | | | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | | | | | | | |-- AddOp: +
|
|
| | | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | | | | `-- IntConst: 1
|
|
| | | | | | | | | | | | | | |-- MulOp: *
|
|
| | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | | |-- Ident: SHIFT_TABLE
|
|
| | | | | | | | | | | | | | |-- L_BRACKET: [
|
|
| | | | | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | | | `-- Ident: i
|
|
| | | | | | | | | | | | | | `-- R_BRACKET: ]
|
|
| | | | | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | | | | `-- R_BRACE: }
|
|
| | | | | | | | | | | `-- R_BRACE: }
|
|
| | | | | | | | | | |-- Else: else
|
|
| | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | |-- If: if
|
|
| | | | | | | | | | |-- L_PAREN: (
|
|
| | | | | | | | | | |-- cond
|
|
| | | | | | | | | | | `-- lOrExp
|
|
| | | | | | | | | | | `-- lAndExp
|
|
| | | | | | | | | | | `-- eqExp
|
|
| | | | | | | | | | | `-- relExp
|
|
| | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | `-- Ident: y
|
|
| | | | | | | | | | | |-- ModOp: %
|
|
| | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | `-- IntConst: 2
|
|
| | | | | | | | | | |-- R_PAREN: )
|
|
| | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | `-- block
|
|
| | | | | | | | | | |-- L_BRACE: {
|
|
| | | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | |-- addExp
|
|
| | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | | | | | |-- AddOp: +
|
|
| | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | | `-- IntConst: 1
|
|
| | | | | | | | | | | | |-- MulOp: *
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | |-- Ident: SHIFT_TABLE
|
|
| | | | | | | | | | | | |-- L_BRACKET: [
|
|
| | | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | `-- Ident: i
|
|
| | | | | | | | | | | | `-- R_BRACKET: ]
|
|
| | | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | | `-- R_BRACE: }
|
|
| | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | `-- Ident: x
|
|
| | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | `-- Ident: x
|
|
| | | | | | | | | | | |-- DivOp: /
|
|
| | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | `-- IntConst: 2
|
|
| | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | `-- Ident: y
|
|
| | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | `-- Ident: y
|
|
| | | | | | | | | | | |-- DivOp: /
|
|
| | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | `-- IntConst: 2
|
|
| | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | `-- Ident: i
|
|
| | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | |-- addExp
|
|
| | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | `-- Ident: i
|
|
| | | | | | | | | | | |-- AddOp: +
|
|
| | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | `-- IntConst: 1
|
|
| | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | `-- R_BRACE: }
|
|
| | | | | | | | |-- blockItem
|
|
| | | | | | | | | `-- stmt
|
|
| | | | | | | | | |-- lVal
|
|
| | | | | | | | | | `-- Ident: sum
|
|
| | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | |-- exp
|
|
| | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | |-- blockItem
|
|
| | | | | | | | | `-- stmt
|
|
| | | | | | | | | |-- lVal
|
|
| | | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | |-- 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
|
|
| | | | | | | | | |-- lVal
|
|
| | | | | | | | | | `-- Ident: x
|
|
| | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | |-- exp
|
|
| | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | `-- Ident: al
|
|
| | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | |-- blockItem
|
|
| | | | | | | | | `-- stmt
|
|
| | | | | | | | | |-- lVal
|
|
| | | | | | | | | | `-- Ident: y
|
|
| | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | |-- exp
|
|
| | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | `-- Ident: c
|
|
| | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | |-- blockItem
|
|
| | | | | | | | | `-- stmt
|
|
| | | | | | | | | |-- While: while
|
|
| | | | | | | | | |-- L_PAREN: (
|
|
| | | | | | | | | |-- cond
|
|
| | | | | | | | | | `-- lOrExp
|
|
| | | | | | | | | | `-- lAndExp
|
|
| | | | | | | | | | `-- eqExp
|
|
| | | | | | | | | | `-- relExp
|
|
| | | | | | | | | | |-- relExp
|
|
| | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | `-- Ident: i
|
|
| | | | | | | | | | |-- LtOp: <
|
|
| | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | `-- number
|
|
| | | | | | | | | | `-- IntConst: 16
|
|
| | | | | | | | | |-- R_PAREN: )
|
|
| | | | | | | | | `-- stmt
|
|
| | | | | | | | | `-- block
|
|
| | | | | | | | | |-- L_BRACE: {
|
|
| | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | |-- If: if
|
|
| | | | | | | | | | |-- L_PAREN: (
|
|
| | | | | | | | | | |-- cond
|
|
| | | | | | | | | | | `-- lOrExp
|
|
| | | | | | | | | | | `-- lAndExp
|
|
| | | | | | | | | | | |-- lAndExp
|
|
| | | | | | | | | | | | `-- eqExp
|
|
| | | | | | | | | | | | `-- relExp
|
|
| | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | `-- Ident: x
|
|
| | | | | | | | | | | | |-- ModOp: %
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | `-- IntConst: 2
|
|
| | | | | | | | | | | |-- AndOp: &&
|
|
| | | | | | | | | | | `-- eqExp
|
|
| | | | | | | | | | | `-- relExp
|
|
| | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | `-- Ident: y
|
|
| | | | | | | | | | | |-- ModOp: %
|
|
| | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | `-- IntConst: 2
|
|
| | | | | | | | | | |-- R_PAREN: )
|
|
| | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | `-- block
|
|
| | | | | | | | | | |-- L_BRACE: {
|
|
| | | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | |-- addExp
|
|
| | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | | | | | |-- AddOp: +
|
|
| | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | | `-- IntConst: 1
|
|
| | | | | | | | | | | | |-- MulOp: *
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | |-- Ident: SHIFT_TABLE
|
|
| | | | | | | | | | | | |-- L_BRACKET: [
|
|
| | | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | `-- Ident: i
|
|
| | | | | | | | | | | | `-- R_BRACKET: ]
|
|
| | | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | | `-- R_BRACE: }
|
|
| | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | `-- Ident: x
|
|
| | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | `-- Ident: x
|
|
| | | | | | | | | | | |-- DivOp: /
|
|
| | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | `-- IntConst: 2
|
|
| | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | `-- Ident: y
|
|
| | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | `-- Ident: y
|
|
| | | | | | | | | | | |-- DivOp: /
|
|
| | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | `-- IntConst: 2
|
|
| | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | `-- Ident: i
|
|
| | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | |-- addExp
|
|
| | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | `-- Ident: i
|
|
| | | | | | | | | | | |-- AddOp: +
|
|
| | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | `-- IntConst: 1
|
|
| | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | `-- R_BRACE: }
|
|
| | | | | | | | |-- blockItem
|
|
| | | | | | | | | `-- stmt
|
|
| | | | | | | | | |-- lVal
|
|
| | | | | | | | | | `-- Ident: c
|
|
| | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | |-- exp
|
|
| | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | |-- blockItem
|
|
| | | | | | | | | `-- stmt
|
|
| | | | | | | | | |-- If: if
|
|
| | | | | | | | | |-- L_PAREN: (
|
|
| | | | | | | | | |-- cond
|
|
| | | | | | | | | | `-- lOrExp
|
|
| | | | | | | | | | `-- lAndExp
|
|
| | | | | | | | | | `-- eqExp
|
|
| | | | | | | | | | `-- relExp
|
|
| | | | | | | | | | |-- relExp
|
|
| | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | |-- L_PAREN: (
|
|
| | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | `-- IntConst: 1
|
|
| | | | | | | | | | | `-- R_PAREN: )
|
|
| | | | | | | | | | |-- GtOp: >
|
|
| | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | `-- number
|
|
| | | | | | | | | | `-- IntConst: 15
|
|
| | | | | | | | | |-- R_PAREN: )
|
|
| | | | | | | | | |-- stmt
|
|
| | | | | | | | | | `-- block
|
|
| | | | | | | | | | |-- L_BRACE: {
|
|
| | | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | `-- IntConst: 0
|
|
| | | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | | `-- R_BRACE: }
|
|
| | | | | | | | | |-- Else: else
|
|
| | | | | | | | | `-- stmt
|
|
| | | | | | | | | `-- block
|
|
| | | | | | | | | |-- L_BRACE: {
|
|
| | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | |-- 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
|
|
| | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | `-- Ident: x
|
|
| | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | |-- L_PAREN: (
|
|
| | | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | `-- Ident: c
|
|
| | | | | | | | | | | | `-- R_PAREN: )
|
|
| | | | | | | | | | | |-- MulOp: *
|
|
| | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | |-- Ident: SHIFT_TABLE
|
|
| | | | | | | | | | | |-- L_BRACKET: [
|
|
| | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | `-- IntConst: 1
|
|
| | | | | | | | | | | `-- R_BRACKET: ]
|
|
| | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | `-- Ident: y
|
|
| | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | `-- IntConst: 0xffff
|
|
| | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | |-- While: while
|
|
| | | | | | | | | | |-- L_PAREN: (
|
|
| | | | | | | | | | |-- cond
|
|
| | | | | | | | | | | `-- lOrExp
|
|
| | | | | | | | | | | `-- lAndExp
|
|
| | | | | | | | | | | `-- eqExp
|
|
| | | | | | | | | | | `-- relExp
|
|
| | | | | | | | | | | |-- relExp
|
|
| | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | `-- Ident: i
|
|
| | | | | | | | | | | |-- LtOp: <
|
|
| | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | `-- IntConst: 16
|
|
| | | | | | | | | | |-- R_PAREN: )
|
|
| | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | `-- block
|
|
| | | | | | | | | | |-- L_BRACE: {
|
|
| | | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | |-- If: if
|
|
| | | | | | | | | | | |-- L_PAREN: (
|
|
| | | | | | | | | | | |-- cond
|
|
| | | | | | | | | | | | `-- lOrExp
|
|
| | | | | | | | | | | | `-- lAndExp
|
|
| | | | | | | | | | | | |-- lAndExp
|
|
| | | | | | | | | | | | | `-- eqExp
|
|
| | | | | | | | | | | | | `-- relExp
|
|
| | | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | | `-- Ident: x
|
|
| | | | | | | | | | | | | |-- ModOp: %
|
|
| | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | | `-- IntConst: 2
|
|
| | | | | | | | | | | | |-- AndOp: &&
|
|
| | | | | | | | | | | | `-- eqExp
|
|
| | | | | | | | | | | | `-- relExp
|
|
| | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | `-- Ident: y
|
|
| | | | | | | | | | | | |-- ModOp: %
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | `-- IntConst: 2
|
|
| | | | | | | | | | | |-- R_PAREN: )
|
|
| | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | `-- block
|
|
| | | | | | | | | | | |-- L_BRACE: {
|
|
| | | | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | | |-- addExp
|
|
| | | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | | | | | | |-- AddOp: +
|
|
| | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | | | `-- IntConst: 1
|
|
| | | | | | | | | | | | | |-- MulOp: *
|
|
| | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | |-- Ident: SHIFT_TABLE
|
|
| | | | | | | | | | | | | |-- L_BRACKET: [
|
|
| | | | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | | `-- Ident: i
|
|
| | | | | | | | | | | | | `-- R_BRACKET: ]
|
|
| | | | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | | | `-- R_BRACE: }
|
|
| | | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | | `-- Ident: x
|
|
| | | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | `-- Ident: x
|
|
| | | | | | | | | | | | |-- DivOp: /
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | `-- IntConst: 2
|
|
| | | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | | `-- Ident: y
|
|
| | | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | `-- Ident: y
|
|
| | | | | | | | | | | | |-- DivOp: /
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | `-- IntConst: 2
|
|
| | | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | | `-- Ident: i
|
|
| | | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | |-- addExp
|
|
| | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | `-- Ident: i
|
|
| | | | | | | | | | | | |-- AddOp: +
|
|
| | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | `-- IntConst: 1
|
|
| | | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | | `-- R_BRACE: }
|
|
| | | | | | | | | `-- R_BRACE: }
|
|
| | | | | | | | |-- blockItem
|
|
| | | | | | | | | `-- stmt
|
|
| | | | | | | | | |-- lVal
|
|
| | | | | | | | | | `-- Ident: c
|
|
| | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | |-- exp
|
|
| | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | |-- blockItem
|
|
| | | | | | | | | `-- stmt
|
|
| | | | | | | | | |-- lVal
|
|
| | | | | | | | | | `-- Ident: al
|
|
| | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | |-- exp
|
|
| | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | `-- Ident: sum
|
|
| | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | `-- R_BRACE: }
|
|
| | | | | | | |-- blockItem
|
|
| | | | | | | | `-- stmt
|
|
| | | | | | | | |-- lVal
|
|
| | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | |-- Assign: =
|
|
| | | | | | | | |-- exp
|
|
| | | | | | | | | `-- addExp
|
|
| | | | | | | | | `-- mulExp
|
|
| | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | `-- lVal
|
|
| | | | | | | | | `-- Ident: al
|
|
| | | | | | | | `-- Semi: ;
|
|
| | | | | | | `-- R_BRACE: }
|
|
| | | | | | |-- blockItem
|
|
| | | | | | | `-- stmt
|
|
| | | | | | | |-- lVal
|
|
| | | | | | | | `-- Ident: ml
|
|
| | | | | | | |-- Assign: =
|
|
| | | | | | | |-- exp
|
|
| | | | | | | | `-- addExp
|
|
| | | | | | | | `-- mulExp
|
|
| | | | | | | | `-- unaryExp
|
|
| | | | | | | | `-- primaryExp
|
|
| | | | | | | | `-- lVal
|
|
| | | | | | | | `-- Ident: ans
|
|
| | | | | | | `-- Semi: ;
|
|
| | | | | | |-- blockItem
|
|
| | | | | | | `-- stmt
|
|
| | | | | | | |-- lVal
|
|
| | | | | | | | `-- Ident: x
|
|
| | | | | | | |-- Assign: =
|
|
| | | | | | | |-- exp
|
|
| | | | | | | | `-- addExp
|
|
| | | | | | | | `-- mulExp
|
|
| | | | | | | | `-- unaryExp
|
|
| | | | | | | | `-- primaryExp
|
|
| | | | | | | | `-- lVal
|
|
| | | | | | | | `-- Ident: mr
|
|
| | | | | | | `-- Semi: ;
|
|
| | | | | | |-- blockItem
|
|
| | | | | | | `-- stmt
|
|
| | | | | | | |-- lVal
|
|
| | | | | | | | `-- Ident: y
|
|
| | | | | | | |-- Assign: =
|
|
| | | | | | | |-- exp
|
|
| | | | | | | | `-- addExp
|
|
| | | | | | | | `-- mulExp
|
|
| | | | | | | | `-- unaryExp
|
|
| | | | | | | | `-- primaryExp
|
|
| | | | | | | | `-- number
|
|
| | | | | | | | `-- IntConst: 1
|
|
| | | | | | | `-- Semi: ;
|
|
| | | | | | |-- blockItem
|
|
| | | | | | | `-- stmt
|
|
| | | | | | | |-- If: if
|
|
| | | | | | | |-- L_PAREN: (
|
|
| | | | | | | |-- cond
|
|
| | | | | | | | `-- lOrExp
|
|
| | | | | | | | `-- lAndExp
|
|
| | | | | | | | `-- eqExp
|
|
| | | | | | | | `-- relExp
|
|
| | | | | | | | |-- relExp
|
|
| | | | | | | | | `-- addExp
|
|
| | | | | | | | | `-- mulExp
|
|
| | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | `-- lVal
|
|
| | | | | | | | | `-- Ident: y
|
|
| | | | | | | | |-- GeOp: >=
|
|
| | | | | | | | `-- addExp
|
|
| | | | | | | | `-- mulExp
|
|
| | | | | | | | `-- unaryExp
|
|
| | | | | | | | `-- primaryExp
|
|
| | | | | | | | `-- number
|
|
| | | | | | | | `-- IntConst: 15
|
|
| | | | | | | |-- R_PAREN: )
|
|
| | | | | | | |-- stmt
|
|
| | | | | | | | `-- block
|
|
| | | | | | | | |-- L_BRACE: {
|
|
| | | | | | | | |-- blockItem
|
|
| | | | | | | | | `-- stmt
|
|
| | | | | | | | | |-- If: if
|
|
| | | | | | | | | |-- L_PAREN: (
|
|
| | | | | | | | | |-- cond
|
|
| | | | | | | | | | `-- lOrExp
|
|
| | | | | | | | | | `-- lAndExp
|
|
| | | | | | | | | | `-- eqExp
|
|
| | | | | | | | | | `-- relExp
|
|
| | | | | | | | | | |-- relExp
|
|
| | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | `-- Ident: x
|
|
| | | | | | | | | | |-- LtOp: <
|
|
| | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | `-- number
|
|
| | | | | | | | | | `-- IntConst: 0
|
|
| | | | | | | | | |-- R_PAREN: )
|
|
| | | | | | | | | |-- stmt
|
|
| | | | | | | | | | `-- block
|
|
| | | | | | | | | | |-- L_BRACE: {
|
|
| | | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | `-- IntConst: 0xffff
|
|
| | | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | | `-- R_BRACE: }
|
|
| | | | | | | | | |-- Else: else
|
|
| | | | | | | | | `-- stmt
|
|
| | | | | | | | | `-- block
|
|
| | | | | | | | | |-- L_BRACE: {
|
|
| | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | `-- IntConst: 0
|
|
| | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | `-- R_BRACE: }
|
|
| | | | | | | | `-- R_BRACE: }
|
|
| | | | | | | |-- Else: else
|
|
| | | | | | | `-- stmt
|
|
| | | | | | | |-- If: if
|
|
| | | | | | | |-- L_PAREN: (
|
|
| | | | | | | |-- cond
|
|
| | | | | | | | `-- lOrExp
|
|
| | | | | | | | `-- lAndExp
|
|
| | | | | | | | `-- eqExp
|
|
| | | | | | | | `-- relExp
|
|
| | | | | | | | |-- relExp
|
|
| | | | | | | | | `-- addExp
|
|
| | | | | | | | | `-- mulExp
|
|
| | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | `-- lVal
|
|
| | | | | | | | | `-- Ident: y
|
|
| | | | | | | | |-- GtOp: >
|
|
| | | | | | | | `-- addExp
|
|
| | | | | | | | `-- mulExp
|
|
| | | | | | | | `-- unaryExp
|
|
| | | | | | | | `-- primaryExp
|
|
| | | | | | | | `-- number
|
|
| | | | | | | | `-- IntConst: 0
|
|
| | | | | | | |-- R_PAREN: )
|
|
| | | | | | | |-- stmt
|
|
| | | | | | | | `-- block
|
|
| | | | | | | | |-- L_BRACE: {
|
|
| | | | | | | | |-- blockItem
|
|
| | | | | | | | | `-- stmt
|
|
| | | | | | | | | |-- If: if
|
|
| | | | | | | | | |-- L_PAREN: (
|
|
| | | | | | | | | |-- cond
|
|
| | | | | | | | | | `-- lOrExp
|
|
| | | | | | | | | | `-- lAndExp
|
|
| | | | | | | | | | `-- eqExp
|
|
| | | | | | | | | | `-- relExp
|
|
| | | | | | | | | | |-- relExp
|
|
| | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | `-- Ident: x
|
|
| | | | | | | | | | |-- GtOp: >
|
|
| | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | `-- number
|
|
| | | | | | | | | | `-- IntConst: 0x7fff
|
|
| | | | | | | | | |-- R_PAREN: )
|
|
| | | | | | | | | |-- stmt
|
|
| | | | | | | | | | `-- block
|
|
| | | | | | | | | | |-- L_BRACE: {
|
|
| | | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | | `-- Ident: x
|
|
| | | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | `-- Ident: x
|
|
| | | | | | | | | | | | |-- DivOp: /
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | |-- Ident: SHIFT_TABLE
|
|
| | | | | | | | | | | | |-- L_BRACKET: [
|
|
| | | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | `-- Ident: y
|
|
| | | | | | | | | | | | `-- R_BRACKET: ]
|
|
| | | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | |-- addExp
|
|
| | | | | | | | | | | | | |-- addExp
|
|
| | | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | | `-- Ident: x
|
|
| | | | | | | | | | | | | |-- AddOp: +
|
|
| | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | | `-- IntConst: 65536
|
|
| | | | | | | | | | | | |-- SubOp: -
|
|
| | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | |-- Ident: SHIFT_TABLE
|
|
| | | | | | | | | | | | |-- L_BRACKET: [
|
|
| | | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | | |-- addExp
|
|
| | | | | | | | | | | | | | |-- addExp
|
|
| | | | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | | | | `-- IntConst: 15
|
|
| | | | | | | | | | | | | | |-- SubOp: -
|
|
| | | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | | `-- Ident: y
|
|
| | | | | | | | | | | | | |-- AddOp: +
|
|
| | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | | `-- IntConst: 1
|
|
| | | | | | | | | | | | `-- R_BRACKET: ]
|
|
| | | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | | `-- R_BRACE: }
|
|
| | | | | | | | | |-- Else: else
|
|
| | | | | | | | | `-- stmt
|
|
| | | | | | | | | `-- block
|
|
| | | | | | | | | |-- L_BRACE: {
|
|
| | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | `-- Ident: x
|
|
| | | | | | | | | | | |-- DivOp: /
|
|
| | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | |-- Ident: SHIFT_TABLE
|
|
| | | | | | | | | | | |-- L_BRACKET: [
|
|
| | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | `-- Ident: y
|
|
| | | | | | | | | | | `-- R_BRACKET: ]
|
|
| | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | `-- R_BRACE: }
|
|
| | | | | | | | `-- R_BRACE: }
|
|
| | | | | | | |-- Else: else
|
|
| | | | | | | `-- stmt
|
|
| | | | | | | `-- block
|
|
| | | | | | | |-- L_BRACE: {
|
|
| | | | | | | |-- blockItem
|
|
| | | | | | | | `-- stmt
|
|
| | | | | | | | |-- lVal
|
|
| | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | |-- Assign: =
|
|
| | | | | | | | |-- exp
|
|
| | | | | | | | | `-- addExp
|
|
| | | | | | | | | `-- mulExp
|
|
| | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | `-- lVal
|
|
| | | | | | | | | `-- Ident: x
|
|
| | | | | | | | `-- Semi: ;
|
|
| | | | | | | `-- R_BRACE: }
|
|
| | | | | | |-- blockItem
|
|
| | | | | | | `-- stmt
|
|
| | | | | | | |-- lVal
|
|
| | | | | | | | `-- Ident: mr
|
|
| | | | | | | |-- Assign: =
|
|
| | | | | | | |-- exp
|
|
| | | | | | | | `-- addExp
|
|
| | | | | | | | `-- mulExp
|
|
| | | | | | | | `-- unaryExp
|
|
| | | | | | | | `-- primaryExp
|
|
| | | | | | | | `-- lVal
|
|
| | | | | | | | `-- Ident: ans
|
|
| | | | | | | `-- Semi: ;
|
|
| | | | | | `-- R_BRACE: }
|
|
| | | | | |-- blockItem
|
|
| | | | | | `-- stmt
|
|
| | | | | | |-- lVal
|
|
| | | | | | | `-- Ident: ans
|
|
| | | | | | |-- Assign: =
|
|
| | | | | | |-- exp
|
|
| | | | | | | `-- addExp
|
|
| | | | | | | `-- mulExp
|
|
| | | | | | | `-- unaryExp
|
|
| | | | | | | `-- primaryExp
|
|
| | | | | | | `-- lVal
|
|
| | | | | | | `-- Ident: mres
|
|
| | | | | | `-- Semi: ;
|
|
| | | | | `-- R_BRACE: }
|
|
| | | | |-- blockItem
|
|
| | | | | `-- stmt
|
|
| | | | | |-- lVal
|
|
| | | | | | `-- Ident: pl
|
|
| | | | | |-- Assign: =
|
|
| | | | | |-- exp
|
|
| | | | | | `-- addExp
|
|
| | | | | | `-- mulExp
|
|
| | | | | | `-- unaryExp
|
|
| | | | | | `-- primaryExp
|
|
| | | | | | `-- lVal
|
|
| | | | | | `-- Ident: ans
|
|
| | | | | `-- Semi: ;
|
|
| | | | |-- blockItem
|
|
| | | | | `-- stmt
|
|
| | | | | |-- lVal
|
|
| | | | | | `-- Ident: x
|
|
| | | | | |-- Assign: =
|
|
| | | | | |-- exp
|
|
| | | | | | `-- addExp
|
|
| | | | | | `-- mulExp
|
|
| | | | | | `-- unaryExp
|
|
| | | | | | `-- primaryExp
|
|
| | | | | | `-- lVal
|
|
| | | | | | `-- Ident: pr
|
|
| | | | | `-- Semi: ;
|
|
| | | | |-- blockItem
|
|
| | | | | `-- stmt
|
|
| | | | | |-- lVal
|
|
| | | | | | `-- Ident: y
|
|
| | | | | |-- Assign: =
|
|
| | | | | |-- exp
|
|
| | | | | | `-- addExp
|
|
| | | | | | `-- mulExp
|
|
| | | | | | `-- unaryExp
|
|
| | | | | | `-- primaryExp
|
|
| | | | | | `-- number
|
|
| | | | | | `-- IntConst: 1
|
|
| | | | | `-- Semi: ;
|
|
| | | | |-- blockItem
|
|
| | | | | `-- stmt
|
|
| | | | | |-- If: if
|
|
| | | | | |-- L_PAREN: (
|
|
| | | | | |-- cond
|
|
| | | | | | `-- lOrExp
|
|
| | | | | | `-- lAndExp
|
|
| | | | | | `-- eqExp
|
|
| | | | | | `-- relExp
|
|
| | | | | | |-- relExp
|
|
| | | | | | | `-- addExp
|
|
| | | | | | | `-- mulExp
|
|
| | | | | | | `-- unaryExp
|
|
| | | | | | | `-- primaryExp
|
|
| | | | | | | `-- lVal
|
|
| | | | | | | `-- Ident: y
|
|
| | | | | | |-- GeOp: >=
|
|
| | | | | | `-- addExp
|
|
| | | | | | `-- mulExp
|
|
| | | | | | `-- unaryExp
|
|
| | | | | | `-- primaryExp
|
|
| | | | | | `-- number
|
|
| | | | | | `-- IntConst: 15
|
|
| | | | | |-- R_PAREN: )
|
|
| | | | | |-- stmt
|
|
| | | | | | `-- block
|
|
| | | | | | |-- L_BRACE: {
|
|
| | | | | | |-- blockItem
|
|
| | | | | | | `-- stmt
|
|
| | | | | | | |-- If: if
|
|
| | | | | | | |-- L_PAREN: (
|
|
| | | | | | | |-- cond
|
|
| | | | | | | | `-- lOrExp
|
|
| | | | | | | | `-- lAndExp
|
|
| | | | | | | | `-- eqExp
|
|
| | | | | | | | `-- relExp
|
|
| | | | | | | | |-- relExp
|
|
| | | | | | | | | `-- addExp
|
|
| | | | | | | | | `-- mulExp
|
|
| | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | `-- lVal
|
|
| | | | | | | | | `-- Ident: x
|
|
| | | | | | | | |-- LtOp: <
|
|
| | | | | | | | `-- addExp
|
|
| | | | | | | | `-- mulExp
|
|
| | | | | | | | `-- unaryExp
|
|
| | | | | | | | `-- primaryExp
|
|
| | | | | | | | `-- number
|
|
| | | | | | | | `-- IntConst: 0
|
|
| | | | | | | |-- R_PAREN: )
|
|
| | | | | | | |-- stmt
|
|
| | | | | | | | `-- block
|
|
| | | | | | | | |-- L_BRACE: {
|
|
| | | | | | | | |-- blockItem
|
|
| | | | | | | | | `-- stmt
|
|
| | | | | | | | | |-- lVal
|
|
| | | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | |-- exp
|
|
| | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | `-- number
|
|
| | | | | | | | | | `-- IntConst: 0xffff
|
|
| | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | `-- R_BRACE: }
|
|
| | | | | | | |-- Else: else
|
|
| | | | | | | `-- stmt
|
|
| | | | | | | `-- block
|
|
| | | | | | | |-- L_BRACE: {
|
|
| | | | | | | |-- blockItem
|
|
| | | | | | | | `-- stmt
|
|
| | | | | | | | |-- lVal
|
|
| | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | |-- Assign: =
|
|
| | | | | | | | |-- exp
|
|
| | | | | | | | | `-- addExp
|
|
| | | | | | | | | `-- mulExp
|
|
| | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | `-- number
|
|
| | | | | | | | | `-- IntConst: 0
|
|
| | | | | | | | `-- Semi: ;
|
|
| | | | | | | `-- R_BRACE: }
|
|
| | | | | | `-- R_BRACE: }
|
|
| | | | | |-- Else: else
|
|
| | | | | `-- stmt
|
|
| | | | | |-- If: if
|
|
| | | | | |-- L_PAREN: (
|
|
| | | | | |-- cond
|
|
| | | | | | `-- lOrExp
|
|
| | | | | | `-- lAndExp
|
|
| | | | | | `-- eqExp
|
|
| | | | | | `-- relExp
|
|
| | | | | | |-- relExp
|
|
| | | | | | | `-- addExp
|
|
| | | | | | | `-- mulExp
|
|
| | | | | | | `-- unaryExp
|
|
| | | | | | | `-- primaryExp
|
|
| | | | | | | `-- lVal
|
|
| | | | | | | `-- Ident: y
|
|
| | | | | | |-- GtOp: >
|
|
| | | | | | `-- addExp
|
|
| | | | | | `-- mulExp
|
|
| | | | | | `-- unaryExp
|
|
| | | | | | `-- primaryExp
|
|
| | | | | | `-- number
|
|
| | | | | | `-- IntConst: 0
|
|
| | | | | |-- R_PAREN: )
|
|
| | | | | |-- stmt
|
|
| | | | | | `-- block
|
|
| | | | | | |-- L_BRACE: {
|
|
| | | | | | |-- blockItem
|
|
| | | | | | | `-- stmt
|
|
| | | | | | | |-- If: if
|
|
| | | | | | | |-- L_PAREN: (
|
|
| | | | | | | |-- cond
|
|
| | | | | | | | `-- lOrExp
|
|
| | | | | | | | `-- lAndExp
|
|
| | | | | | | | `-- eqExp
|
|
| | | | | | | | `-- relExp
|
|
| | | | | | | | |-- relExp
|
|
| | | | | | | | | `-- addExp
|
|
| | | | | | | | | `-- mulExp
|
|
| | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | `-- lVal
|
|
| | | | | | | | | `-- Ident: x
|
|
| | | | | | | | |-- GtOp: >
|
|
| | | | | | | | `-- addExp
|
|
| | | | | | | | `-- mulExp
|
|
| | | | | | | | `-- unaryExp
|
|
| | | | | | | | `-- primaryExp
|
|
| | | | | | | | `-- number
|
|
| | | | | | | | `-- IntConst: 0x7fff
|
|
| | | | | | | |-- R_PAREN: )
|
|
| | | | | | | |-- stmt
|
|
| | | | | | | | `-- block
|
|
| | | | | | | | |-- L_BRACE: {
|
|
| | | | | | | | |-- blockItem
|
|
| | | | | | | | | `-- stmt
|
|
| | | | | | | | | |-- lVal
|
|
| | | | | | | | | | `-- Ident: x
|
|
| | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | |-- exp
|
|
| | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | `-- Ident: x
|
|
| | | | | | | | | | |-- DivOp: /
|
|
| | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | |-- Ident: SHIFT_TABLE
|
|
| | | | | | | | | | |-- L_BRACKET: [
|
|
| | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | `-- Ident: y
|
|
| | | | | | | | | | `-- R_BRACKET: ]
|
|
| | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | |-- blockItem
|
|
| | | | | | | | | `-- stmt
|
|
| | | | | | | | | |-- lVal
|
|
| | | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | |-- exp
|
|
| | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | |-- addExp
|
|
| | | | | | | | | | | |-- addExp
|
|
| | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | `-- Ident: x
|
|
| | | | | | | | | | | |-- AddOp: +
|
|
| | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | `-- IntConst: 65536
|
|
| | | | | | | | | | |-- SubOp: -
|
|
| | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | |-- Ident: SHIFT_TABLE
|
|
| | | | | | | | | | |-- L_BRACKET: [
|
|
| | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | |-- addExp
|
|
| | | | | | | | | | | | |-- addExp
|
|
| | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | | `-- IntConst: 15
|
|
| | | | | | | | | | | | |-- SubOp: -
|
|
| | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | `-- Ident: y
|
|
| | | | | | | | | | | |-- AddOp: +
|
|
| | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | `-- IntConst: 1
|
|
| | | | | | | | | | `-- R_BRACKET: ]
|
|
| | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | `-- R_BRACE: }
|
|
| | | | | | | |-- Else: else
|
|
| | | | | | | `-- stmt
|
|
| | | | | | | `-- block
|
|
| | | | | | | |-- L_BRACE: {
|
|
| | | | | | | |-- blockItem
|
|
| | | | | | | | `-- stmt
|
|
| | | | | | | | |-- lVal
|
|
| | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | |-- Assign: =
|
|
| | | | | | | | |-- exp
|
|
| | | | | | | | | `-- addExp
|
|
| | | | | | | | | `-- mulExp
|
|
| | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | `-- Ident: x
|
|
| | | | | | | | | |-- DivOp: /
|
|
| | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | `-- lVal
|
|
| | | | | | | | | |-- Ident: SHIFT_TABLE
|
|
| | | | | | | | | |-- L_BRACKET: [
|
|
| | | | | | | | | |-- exp
|
|
| | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | `-- Ident: y
|
|
| | | | | | | | | `-- R_BRACKET: ]
|
|
| | | | | | | | `-- Semi: ;
|
|
| | | | | | | `-- R_BRACE: }
|
|
| | | | | | `-- R_BRACE: }
|
|
| | | | | |-- Else: else
|
|
| | | | | `-- stmt
|
|
| | | | | `-- block
|
|
| | | | | |-- L_BRACE: {
|
|
| | | | | |-- blockItem
|
|
| | | | | | `-- stmt
|
|
| | | | | | |-- lVal
|
|
| | | | | | | `-- Ident: ans
|
|
| | | | | | |-- Assign: =
|
|
| | | | | | |-- exp
|
|
| | | | | | | `-- addExp
|
|
| | | | | | | `-- mulExp
|
|
| | | | | | | `-- unaryExp
|
|
| | | | | | | `-- primaryExp
|
|
| | | | | | | `-- lVal
|
|
| | | | | | | `-- Ident: x
|
|
| | | | | | `-- Semi: ;
|
|
| | | | | `-- R_BRACE: }
|
|
| | | | |-- blockItem
|
|
| | | | | `-- stmt
|
|
| | | | | |-- lVal
|
|
| | | | | | `-- Ident: pr
|
|
| | | | | |-- Assign: =
|
|
| | | | | |-- exp
|
|
| | | | | | `-- addExp
|
|
| | | | | | `-- mulExp
|
|
| | | | | | `-- unaryExp
|
|
| | | | | | `-- primaryExp
|
|
| | | | | | `-- lVal
|
|
| | | | | | `-- Ident: ans
|
|
| | | | | `-- Semi: ;
|
|
| | | | `-- R_BRACE: }
|
|
| | | |-- blockItem
|
|
| | | | `-- stmt
|
|
| | | | |-- lVal
|
|
| | | | | `-- Ident: ans
|
|
| | | | |-- Assign: =
|
|
| | | | |-- exp
|
|
| | | | | `-- addExp
|
|
| | | | | `-- mulExp
|
|
| | | | | `-- unaryExp
|
|
| | | | | `-- primaryExp
|
|
| | | | | `-- lVal
|
|
| | | | | `-- Ident: pres
|
|
| | | | `-- Semi: ;
|
|
| | | `-- R_BRACE: }
|
|
| | |-- blockItem
|
|
| | | `-- stmt
|
|
| | | |-- exp
|
|
| | | | `-- addExp
|
|
| | | | `-- mulExp
|
|
| | | | `-- unaryExp
|
|
| | | | |-- Ident: putint
|
|
| | | | |-- L_PAREN: (
|
|
| | | | |-- funcRParams
|
|
| | | | | `-- exp
|
|
| | | | | `-- addExp
|
|
| | | | | `-- mulExp
|
|
| | | | | `-- unaryExp
|
|
| | | | | `-- primaryExp
|
|
| | | | | `-- lVal
|
|
| | | | | `-- Ident: ans
|
|
| | | | `-- R_PAREN: )
|
|
| | | `-- Semi: ;
|
|
| | |-- blockItem
|
|
| | | `-- stmt
|
|
| | | |-- exp
|
|
| | | | `-- addExp
|
|
| | | | `-- mulExp
|
|
| | | | `-- unaryExp
|
|
| | | | |-- Ident: putch
|
|
| | | | |-- L_PAREN: (
|
|
| | | | |-- funcRParams
|
|
| | | | | `-- exp
|
|
| | | | | `-- addExp
|
|
| | | | | `-- mulExp
|
|
| | | | | `-- unaryExp
|
|
| | | | | `-- primaryExp
|
|
| | | | | `-- number
|
|
| | | | | `-- IntConst: 10
|
|
| | | | `-- R_PAREN: )
|
|
| | | `-- Semi: ;
|
|
| | |-- blockItem
|
|
| | | `-- stmt
|
|
| | | |-- lVal
|
|
| | | | `-- Ident: cur
|
|
| | | |-- Assign: =
|
|
| | | |-- exp
|
|
| | | | `-- addExp
|
|
| | | | |-- addExp
|
|
| | | | | `-- mulExp
|
|
| | | | | `-- unaryExp
|
|
| | | | | `-- primaryExp
|
|
| | | | | `-- lVal
|
|
| | | | | `-- Ident: cur
|
|
| | | | |-- AddOp: +
|
|
| | | | `-- mulExp
|
|
| | | | `-- unaryExp
|
|
| | | | `-- primaryExp
|
|
| | | | `-- number
|
|
| | | | `-- IntConst: 1
|
|
| | | `-- Semi: ;
|
|
| | `-- R_BRACE: }
|
|
| |-- blockItem
|
|
| | `-- stmt
|
|
| | |-- lVal
|
|
| | | `-- Ident: cur
|
|
| | |-- Assign: =
|
|
| | |-- exp
|
|
| | | `-- addExp
|
|
| | | `-- mulExp
|
|
| | | `-- unaryExp
|
|
| | | `-- primaryExp
|
|
| | | `-- number
|
|
| | | `-- IntConst: 0
|
|
| | `-- Semi: ;
|
|
| |-- blockItem
|
|
| | `-- stmt
|
|
| | |-- While: while
|
|
| | |-- L_PAREN: (
|
|
| | |-- cond
|
|
| | | `-- lOrExp
|
|
| | | `-- lAndExp
|
|
| | | `-- eqExp
|
|
| | | `-- relExp
|
|
| | | |-- relExp
|
|
| | | | `-- addExp
|
|
| | | | `-- mulExp
|
|
| | | | `-- unaryExp
|
|
| | | | `-- primaryExp
|
|
| | | | `-- lVal
|
|
| | | | `-- Ident: cur
|
|
| | | |-- LtOp: <
|
|
| | | `-- addExp
|
|
| | | `-- mulExp
|
|
| | | `-- unaryExp
|
|
| | | `-- primaryExp
|
|
| | | `-- number
|
|
| | | `-- IntConst: 16
|
|
| | |-- R_PAREN: )
|
|
| | `-- stmt
|
|
| | `-- block
|
|
| | |-- L_BRACE: {
|
|
| | |-- blockItem
|
|
| | | `-- stmt
|
|
| | | `-- block
|
|
| | | |-- L_BRACE: {
|
|
| | | |-- blockItem
|
|
| | | | `-- decl
|
|
| | | | `-- varDecl
|
|
| | | | |-- bType
|
|
| | | | | `-- Int: int
|
|
| | | | |-- varDef
|
|
| | | | | |-- Ident: pl
|
|
| | | | | |-- Assign: =
|
|
| | | | | `-- initVal
|
|
| | | | | `-- exp
|
|
| | | | | `-- addExp
|
|
| | | | | `-- mulExp
|
|
| | | | | `-- unaryExp
|
|
| | | | | `-- primaryExp
|
|
| | | | | `-- number
|
|
| | | | | `-- IntConst: 2
|
|
| | | | |-- Comma: ,
|
|
| | | | |-- varDef
|
|
| | | | | |-- Ident: pr
|
|
| | | | | |-- Assign: =
|
|
| | | | | `-- initVal
|
|
| | | | | `-- exp
|
|
| | | | | `-- addExp
|
|
| | | | | `-- mulExp
|
|
| | | | | `-- unaryExp
|
|
| | | | | `-- primaryExp
|
|
| | | | | `-- lVal
|
|
| | | | | `-- Ident: cur
|
|
| | | | |-- Comma: ,
|
|
| | | | |-- varDef
|
|
| | | | | |-- Ident: pres
|
|
| | | | | |-- Assign: =
|
|
| | | | | `-- initVal
|
|
| | | | | `-- exp
|
|
| | | | | `-- addExp
|
|
| | | | | `-- mulExp
|
|
| | | | | `-- unaryExp
|
|
| | | | | `-- primaryExp
|
|
| | | | | `-- number
|
|
| | | | | `-- IntConst: 1
|
|
| | | | `-- Semi: ;
|
|
| | | |-- blockItem
|
|
| | | | `-- stmt
|
|
| | | | |-- While: while
|
|
| | | | |-- L_PAREN: (
|
|
| | | | |-- cond
|
|
| | | | | `-- lOrExp
|
|
| | | | | `-- lAndExp
|
|
| | | | | `-- eqExp
|
|
| | | | | `-- relExp
|
|
| | | | | |-- relExp
|
|
| | | | | | `-- addExp
|
|
| | | | | | `-- mulExp
|
|
| | | | | | `-- unaryExp
|
|
| | | | | | `-- primaryExp
|
|
| | | | | | `-- lVal
|
|
| | | | | | `-- Ident: pr
|
|
| | | | | |-- GtOp: >
|
|
| | | | | `-- addExp
|
|
| | | | | `-- mulExp
|
|
| | | | | `-- unaryExp
|
|
| | | | | `-- primaryExp
|
|
| | | | | `-- number
|
|
| | | | | `-- IntConst: 0
|
|
| | | | |-- R_PAREN: )
|
|
| | | | `-- stmt
|
|
| | | | `-- block
|
|
| | | | |-- L_BRACE: {
|
|
| | | | |-- blockItem
|
|
| | | | | `-- stmt
|
|
| | | | | |-- lVal
|
|
| | | | | | `-- Ident: ans
|
|
| | | | | |-- Assign: =
|
|
| | | | | |-- 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
|
|
| | | | | |-- lVal
|
|
| | | | | | `-- Ident: x
|
|
| | | | | |-- Assign: =
|
|
| | | | | |-- exp
|
|
| | | | | | `-- addExp
|
|
| | | | | | `-- mulExp
|
|
| | | | | | `-- unaryExp
|
|
| | | | | | `-- primaryExp
|
|
| | | | | | `-- lVal
|
|
| | | | | | `-- Ident: pr
|
|
| | | | | `-- Semi: ;
|
|
| | | | |-- blockItem
|
|
| | | | | `-- stmt
|
|
| | | | | |-- lVal
|
|
| | | | | | `-- Ident: y
|
|
| | | | | |-- Assign: =
|
|
| | | | | |-- exp
|
|
| | | | | | `-- addExp
|
|
| | | | | | `-- mulExp
|
|
| | | | | | `-- unaryExp
|
|
| | | | | | `-- primaryExp
|
|
| | | | | | `-- number
|
|
| | | | | | `-- IntConst: 1
|
|
| | | | | `-- Semi: ;
|
|
| | | | |-- blockItem
|
|
| | | | | `-- stmt
|
|
| | | | | |-- While: while
|
|
| | | | | |-- L_PAREN: (
|
|
| | | | | |-- cond
|
|
| | | | | | `-- lOrExp
|
|
| | | | | | `-- lAndExp
|
|
| | | | | | `-- eqExp
|
|
| | | | | | `-- relExp
|
|
| | | | | | |-- relExp
|
|
| | | | | | | `-- addExp
|
|
| | | | | | | `-- mulExp
|
|
| | | | | | | `-- unaryExp
|
|
| | | | | | | `-- primaryExp
|
|
| | | | | | | `-- lVal
|
|
| | | | | | | `-- Ident: i
|
|
| | | | | | |-- LtOp: <
|
|
| | | | | | `-- addExp
|
|
| | | | | | `-- mulExp
|
|
| | | | | | `-- unaryExp
|
|
| | | | | | `-- primaryExp
|
|
| | | | | | `-- number
|
|
| | | | | | `-- IntConst: 16
|
|
| | | | | |-- R_PAREN: )
|
|
| | | | | `-- stmt
|
|
| | | | | `-- block
|
|
| | | | | |-- L_BRACE: {
|
|
| | | | | |-- blockItem
|
|
| | | | | | `-- stmt
|
|
| | | | | | |-- If: if
|
|
| | | | | | |-- L_PAREN: (
|
|
| | | | | | |-- cond
|
|
| | | | | | | `-- lOrExp
|
|
| | | | | | | `-- lAndExp
|
|
| | | | | | | |-- lAndExp
|
|
| | | | | | | | `-- eqExp
|
|
| | | | | | | | `-- relExp
|
|
| | | | | | | | `-- addExp
|
|
| | | | | | | | `-- mulExp
|
|
| | | | | | | | |-- mulExp
|
|
| | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | `-- lVal
|
|
| | | | | | | | | `-- Ident: x
|
|
| | | | | | | | |-- ModOp: %
|
|
| | | | | | | | `-- unaryExp
|
|
| | | | | | | | `-- primaryExp
|
|
| | | | | | | | `-- number
|
|
| | | | | | | | `-- IntConst: 2
|
|
| | | | | | | |-- AndOp: &&
|
|
| | | | | | | `-- eqExp
|
|
| | | | | | | `-- relExp
|
|
| | | | | | | `-- addExp
|
|
| | | | | | | `-- mulExp
|
|
| | | | | | | |-- mulExp
|
|
| | | | | | | | `-- unaryExp
|
|
| | | | | | | | `-- primaryExp
|
|
| | | | | | | | `-- lVal
|
|
| | | | | | | | `-- Ident: y
|
|
| | | | | | | |-- ModOp: %
|
|
| | | | | | | `-- unaryExp
|
|
| | | | | | | `-- primaryExp
|
|
| | | | | | | `-- number
|
|
| | | | | | | `-- IntConst: 2
|
|
| | | | | | |-- R_PAREN: )
|
|
| | | | | | `-- stmt
|
|
| | | | | | `-- block
|
|
| | | | | | |-- L_BRACE: {
|
|
| | | | | | |-- blockItem
|
|
| | | | | | | `-- stmt
|
|
| | | | | | | |-- lVal
|
|
| | | | | | | | `-- Ident: ans
|
|
| | | | | | | |-- Assign: =
|
|
| | | | | | | |-- exp
|
|
| | | | | | | | `-- addExp
|
|
| | | | | | | | |-- addExp
|
|
| | | | | | | | | `-- mulExp
|
|
| | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | `-- lVal
|
|
| | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | |-- AddOp: +
|
|
| | | | | | | | `-- mulExp
|
|
| | | | | | | | |-- mulExp
|
|
| | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | `-- number
|
|
| | | | | | | | | `-- IntConst: 1
|
|
| | | | | | | | |-- MulOp: *
|
|
| | | | | | | | `-- unaryExp
|
|
| | | | | | | | `-- primaryExp
|
|
| | | | | | | | `-- lVal
|
|
| | | | | | | | |-- Ident: SHIFT_TABLE
|
|
| | | | | | | | |-- L_BRACKET: [
|
|
| | | | | | | | |-- exp
|
|
| | | | | | | | | `-- addExp
|
|
| | | | | | | | | `-- mulExp
|
|
| | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | `-- lVal
|
|
| | | | | | | | | `-- Ident: i
|
|
| | | | | | | | `-- R_BRACKET: ]
|
|
| | | | | | | `-- Semi: ;
|
|
| | | | | | `-- R_BRACE: }
|
|
| | | | | |-- blockItem
|
|
| | | | | | `-- stmt
|
|
| | | | | | |-- lVal
|
|
| | | | | | | `-- Ident: x
|
|
| | | | | | |-- Assign: =
|
|
| | | | | | |-- exp
|
|
| | | | | | | `-- addExp
|
|
| | | | | | | `-- mulExp
|
|
| | | | | | | |-- mulExp
|
|
| | | | | | | | `-- unaryExp
|
|
| | | | | | | | `-- primaryExp
|
|
| | | | | | | | `-- lVal
|
|
| | | | | | | | `-- Ident: x
|
|
| | | | | | | |-- DivOp: /
|
|
| | | | | | | `-- unaryExp
|
|
| | | | | | | `-- primaryExp
|
|
| | | | | | | `-- number
|
|
| | | | | | | `-- IntConst: 2
|
|
| | | | | | `-- Semi: ;
|
|
| | | | | |-- blockItem
|
|
| | | | | | `-- stmt
|
|
| | | | | | |-- lVal
|
|
| | | | | | | `-- Ident: y
|
|
| | | | | | |-- Assign: =
|
|
| | | | | | |-- exp
|
|
| | | | | | | `-- addExp
|
|
| | | | | | | `-- mulExp
|
|
| | | | | | | |-- mulExp
|
|
| | | | | | | | `-- unaryExp
|
|
| | | | | | | | `-- primaryExp
|
|
| | | | | | | | `-- lVal
|
|
| | | | | | | | `-- Ident: y
|
|
| | | | | | | |-- DivOp: /
|
|
| | | | | | | `-- unaryExp
|
|
| | | | | | | `-- primaryExp
|
|
| | | | | | | `-- number
|
|
| | | | | | | `-- IntConst: 2
|
|
| | | | | | `-- Semi: ;
|
|
| | | | | |-- blockItem
|
|
| | | | | | `-- stmt
|
|
| | | | | | |-- lVal
|
|
| | | | | | | `-- Ident: i
|
|
| | | | | | |-- Assign: =
|
|
| | | | | | |-- exp
|
|
| | | | | | | `-- addExp
|
|
| | | | | | | |-- addExp
|
|
| | | | | | | | `-- mulExp
|
|
| | | | | | | | `-- unaryExp
|
|
| | | | | | | | `-- primaryExp
|
|
| | | | | | | | `-- lVal
|
|
| | | | | | | | `-- Ident: i
|
|
| | | | | | | |-- AddOp: +
|
|
| | | | | | | `-- mulExp
|
|
| | | | | | | `-- unaryExp
|
|
| | | | | | | `-- primaryExp
|
|
| | | | | | | `-- number
|
|
| | | | | | | `-- IntConst: 1
|
|
| | | | | | `-- Semi: ;
|
|
| | | | | `-- R_BRACE: }
|
|
| | | | |-- blockItem
|
|
| | | | | `-- stmt
|
|
| | | | | |-- If: if
|
|
| | | | | |-- L_PAREN: (
|
|
| | | | | |-- cond
|
|
| | | | | | `-- lOrExp
|
|
| | | | | | `-- lAndExp
|
|
| | | | | | `-- eqExp
|
|
| | | | | | `-- relExp
|
|
| | | | | | `-- addExp
|
|
| | | | | | `-- mulExp
|
|
| | | | | | `-- unaryExp
|
|
| | | | | | `-- primaryExp
|
|
| | | | | | `-- lVal
|
|
| | | | | | `-- Ident: ans
|
|
| | | | | |-- R_PAREN: )
|
|
| | | | | `-- stmt
|
|
| | | | | `-- block
|
|
| | | | | |-- L_BRACE: {
|
|
| | | | | |-- blockItem
|
|
| | | | | | `-- stmt
|
|
| | | | | | `-- block
|
|
| | | | | | |-- L_BRACE: {
|
|
| | | | | | |-- blockItem
|
|
| | | | | | | `-- decl
|
|
| | | | | | | `-- varDecl
|
|
| | | | | | | |-- bType
|
|
| | | | | | | | `-- Int: int
|
|
| | | | | | | |-- varDef
|
|
| | | | | | | | |-- Ident: ml
|
|
| | | | | | | | |-- Assign: =
|
|
| | | | | | | | `-- initVal
|
|
| | | | | | | | `-- exp
|
|
| | | | | | | | `-- addExp
|
|
| | | | | | | | `-- mulExp
|
|
| | | | | | | | `-- unaryExp
|
|
| | | | | | | | `-- primaryExp
|
|
| | | | | | | | `-- lVal
|
|
| | | | | | | | `-- Ident: pres
|
|
| | | | | | | |-- Comma: ,
|
|
| | | | | | | |-- varDef
|
|
| | | | | | | | |-- Ident: mr
|
|
| | | | | | | | |-- Assign: =
|
|
| | | | | | | | `-- initVal
|
|
| | | | | | | | `-- exp
|
|
| | | | | | | | `-- addExp
|
|
| | | | | | | | `-- mulExp
|
|
| | | | | | | | `-- unaryExp
|
|
| | | | | | | | `-- primaryExp
|
|
| | | | | | | | `-- lVal
|
|
| | | | | | | | `-- Ident: pl
|
|
| | | | | | | |-- Comma: ,
|
|
| | | | | | | |-- varDef
|
|
| | | | | | | | |-- Ident: mres
|
|
| | | | | | | | |-- Assign: =
|
|
| | | | | | | | `-- initVal
|
|
| | | | | | | | `-- exp
|
|
| | | | | | | | `-- addExp
|
|
| | | | | | | | `-- mulExp
|
|
| | | | | | | | `-- unaryExp
|
|
| | | | | | | | `-- primaryExp
|
|
| | | | | | | | `-- number
|
|
| | | | | | | | `-- IntConst: 0
|
|
| | | | | | | `-- Semi: ;
|
|
| | | | | | |-- blockItem
|
|
| | | | | | | `-- stmt
|
|
| | | | | | | |-- While: while
|
|
| | | | | | | |-- L_PAREN: (
|
|
| | | | | | | |-- cond
|
|
| | | | | | | | `-- lOrExp
|
|
| | | | | | | | `-- lAndExp
|
|
| | | | | | | | `-- eqExp
|
|
| | | | | | | | `-- relExp
|
|
| | | | | | | | `-- addExp
|
|
| | | | | | | | `-- mulExp
|
|
| | | | | | | | `-- unaryExp
|
|
| | | | | | | | `-- primaryExp
|
|
| | | | | | | | `-- lVal
|
|
| | | | | | | | `-- Ident: mr
|
|
| | | | | | | |-- R_PAREN: )
|
|
| | | | | | | `-- stmt
|
|
| | | | | | | `-- block
|
|
| | | | | | | |-- L_BRACE: {
|
|
| | | | | | | |-- blockItem
|
|
| | | | | | | | `-- stmt
|
|
| | | | | | | | |-- lVal
|
|
| | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | |-- Assign: =
|
|
| | | | | | | | |-- 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
|
|
| | | | | | | | |-- lVal
|
|
| | | | | | | | | `-- Ident: x
|
|
| | | | | | | | |-- Assign: =
|
|
| | | | | | | | |-- exp
|
|
| | | | | | | | | `-- addExp
|
|
| | | | | | | | | `-- mulExp
|
|
| | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | `-- lVal
|
|
| | | | | | | | | `-- Ident: mr
|
|
| | | | | | | | `-- Semi: ;
|
|
| | | | | | | |-- blockItem
|
|
| | | | | | | | `-- stmt
|
|
| | | | | | | | |-- lVal
|
|
| | | | | | | | | `-- Ident: y
|
|
| | | | | | | | |-- Assign: =
|
|
| | | | | | | | |-- exp
|
|
| | | | | | | | | `-- addExp
|
|
| | | | | | | | | `-- mulExp
|
|
| | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | `-- number
|
|
| | | | | | | | | `-- IntConst: 1
|
|
| | | | | | | | `-- Semi: ;
|
|
| | | | | | | |-- blockItem
|
|
| | | | | | | | `-- stmt
|
|
| | | | | | | | |-- While: while
|
|
| | | | | | | | |-- L_PAREN: (
|
|
| | | | | | | | |-- cond
|
|
| | | | | | | | | `-- lOrExp
|
|
| | | | | | | | | `-- lAndExp
|
|
| | | | | | | | | `-- eqExp
|
|
| | | | | | | | | `-- relExp
|
|
| | | | | | | | | |-- relExp
|
|
| | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | `-- Ident: i
|
|
| | | | | | | | | |-- LtOp: <
|
|
| | | | | | | | | `-- addExp
|
|
| | | | | | | | | `-- mulExp
|
|
| | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | `-- number
|
|
| | | | | | | | | `-- IntConst: 16
|
|
| | | | | | | | |-- R_PAREN: )
|
|
| | | | | | | | `-- stmt
|
|
| | | | | | | | `-- block
|
|
| | | | | | | | |-- L_BRACE: {
|
|
| | | | | | | | |-- blockItem
|
|
| | | | | | | | | `-- stmt
|
|
| | | | | | | | | |-- If: if
|
|
| | | | | | | | | |-- L_PAREN: (
|
|
| | | | | | | | | |-- cond
|
|
| | | | | | | | | | `-- lOrExp
|
|
| | | | | | | | | | `-- lAndExp
|
|
| | | | | | | | | | |-- lAndExp
|
|
| | | | | | | | | | | `-- eqExp
|
|
| | | | | | | | | | | `-- relExp
|
|
| | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | `-- Ident: x
|
|
| | | | | | | | | | | |-- ModOp: %
|
|
| | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | `-- IntConst: 2
|
|
| | | | | | | | | | |-- AndOp: &&
|
|
| | | | | | | | | | `-- eqExp
|
|
| | | | | | | | | | `-- relExp
|
|
| | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | `-- Ident: y
|
|
| | | | | | | | | | |-- ModOp: %
|
|
| | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | `-- number
|
|
| | | | | | | | | | `-- IntConst: 2
|
|
| | | | | | | | | |-- R_PAREN: )
|
|
| | | | | | | | | `-- stmt
|
|
| | | | | | | | | `-- block
|
|
| | | | | | | | | |-- L_BRACE: {
|
|
| | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | |-- addExp
|
|
| | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | | | | |-- AddOp: +
|
|
| | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | `-- IntConst: 1
|
|
| | | | | | | | | | | |-- MulOp: *
|
|
| | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | |-- Ident: SHIFT_TABLE
|
|
| | | | | | | | | | | |-- L_BRACKET: [
|
|
| | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | `-- Ident: i
|
|
| | | | | | | | | | | `-- R_BRACKET: ]
|
|
| | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | `-- R_BRACE: }
|
|
| | | | | | | | |-- blockItem
|
|
| | | | | | | | | `-- stmt
|
|
| | | | | | | | | |-- lVal
|
|
| | | | | | | | | | `-- Ident: x
|
|
| | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | |-- exp
|
|
| | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | `-- Ident: x
|
|
| | | | | | | | | | |-- DivOp: /
|
|
| | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | `-- number
|
|
| | | | | | | | | | `-- IntConst: 2
|
|
| | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | |-- blockItem
|
|
| | | | | | | | | `-- stmt
|
|
| | | | | | | | | |-- lVal
|
|
| | | | | | | | | | `-- Ident: y
|
|
| | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | |-- exp
|
|
| | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | `-- Ident: y
|
|
| | | | | | | | | | |-- DivOp: /
|
|
| | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | `-- number
|
|
| | | | | | | | | | `-- IntConst: 2
|
|
| | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | |-- blockItem
|
|
| | | | | | | | | `-- stmt
|
|
| | | | | | | | | |-- lVal
|
|
| | | | | | | | | | `-- Ident: i
|
|
| | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | |-- exp
|
|
| | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | |-- addExp
|
|
| | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | `-- Ident: i
|
|
| | | | | | | | | | |-- AddOp: +
|
|
| | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | `-- number
|
|
| | | | | | | | | | `-- IntConst: 1
|
|
| | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | `-- R_BRACE: }
|
|
| | | | | | | |-- blockItem
|
|
| | | | | | | | `-- stmt
|
|
| | | | | | | | |-- If: if
|
|
| | | | | | | | |-- L_PAREN: (
|
|
| | | | | | | | |-- cond
|
|
| | | | | | | | | `-- lOrExp
|
|
| | | | | | | | | `-- lAndExp
|
|
| | | | | | | | | `-- eqExp
|
|
| | | | | | | | | `-- relExp
|
|
| | | | | | | | | `-- addExp
|
|
| | | | | | | | | `-- mulExp
|
|
| | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | `-- lVal
|
|
| | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | |-- R_PAREN: )
|
|
| | | | | | | | `-- stmt
|
|
| | | | | | | | `-- block
|
|
| | | | | | | | |-- L_BRACE: {
|
|
| | | | | | | | |-- blockItem
|
|
| | | | | | | | | `-- stmt
|
|
| | | | | | | | | `-- block
|
|
| | | | | | | | | |-- L_BRACE: {
|
|
| | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | `-- decl
|
|
| | | | | | | | | | `-- varDecl
|
|
| | | | | | | | | | |-- bType
|
|
| | | | | | | | | | | `-- Int: int
|
|
| | | | | | | | | | |-- varDef
|
|
| | | | | | | | | | | |-- Ident: al
|
|
| | | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | | `-- initVal
|
|
| | | | | | | | | | | `-- exp
|
|
| | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | `-- Ident: mres
|
|
| | | | | | | | | | |-- Comma: ,
|
|
| | | | | | | | | | |-- varDef
|
|
| | | | | | | | | | | |-- Ident: c
|
|
| | | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | | `-- initVal
|
|
| | | | | | | | | | | `-- exp
|
|
| | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | `-- Ident: ml
|
|
| | | | | | | | | | |-- Comma: ,
|
|
| | | | | | | | | | |-- varDef
|
|
| | | | | | | | | | | `-- Ident: sum
|
|
| | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | |-- While: while
|
|
| | | | | | | | | | |-- L_PAREN: (
|
|
| | | | | | | | | | |-- cond
|
|
| | | | | | | | | | | `-- lOrExp
|
|
| | | | | | | | | | | `-- lAndExp
|
|
| | | | | | | | | | | `-- eqExp
|
|
| | | | | | | | | | | `-- relExp
|
|
| | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | `-- Ident: c
|
|
| | | | | | | | | | |-- R_PAREN: )
|
|
| | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | `-- block
|
|
| | | | | | | | | | |-- L_BRACE: {
|
|
| | | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | | |-- 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
|
|
| | | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | | `-- Ident: x
|
|
| | | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | `-- Ident: al
|
|
| | | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | | `-- Ident: y
|
|
| | | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | `-- Ident: c
|
|
| | | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | |-- While: while
|
|
| | | | | | | | | | | |-- L_PAREN: (
|
|
| | | | | | | | | | | |-- cond
|
|
| | | | | | | | | | | | `-- lOrExp
|
|
| | | | | | | | | | | | `-- lAndExp
|
|
| | | | | | | | | | | | `-- eqExp
|
|
| | | | | | | | | | | | `-- relExp
|
|
| | | | | | | | | | | | |-- relExp
|
|
| | | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | `-- Ident: i
|
|
| | | | | | | | | | | | |-- LtOp: <
|
|
| | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | `-- IntConst: 16
|
|
| | | | | | | | | | | |-- R_PAREN: )
|
|
| | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | `-- block
|
|
| | | | | | | | | | | |-- L_BRACE: {
|
|
| | | | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | | |-- If: if
|
|
| | | | | | | | | | | | |-- L_PAREN: (
|
|
| | | | | | | | | | | | |-- cond
|
|
| | | | | | | | | | | | | `-- lOrExp
|
|
| | | | | | | | | | | | | `-- lAndExp
|
|
| | | | | | | | | | | | | `-- eqExp
|
|
| | | | | | | | | | | | | `-- relExp
|
|
| | | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | | `-- Ident: x
|
|
| | | | | | | | | | | | | |-- ModOp: %
|
|
| | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | | `-- IntConst: 2
|
|
| | | | | | | | | | | | |-- R_PAREN: )
|
|
| | | | | | | | | | | | |-- stmt
|
|
| | | | | | | | | | | | | `-- block
|
|
| | | | | | | | | | | | | |-- L_BRACE: {
|
|
| | | | | | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | | | | |-- If: if
|
|
| | | | | | | | | | | | | | |-- L_PAREN: (
|
|
| | | | | | | | | | | | | | |-- cond
|
|
| | | | | | | | | | | | | | | `-- lOrExp
|
|
| | | | | | | | | | | | | | | `-- lAndExp
|
|
| | | | | | | | | | | | | | | `-- eqExp
|
|
| | | | | | | | | | | | | | | |-- eqExp
|
|
| | | | | | | | | | | | | | | | `-- relExp
|
|
| | | | | | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | | | | | `-- Ident: y
|
|
| | | | | | | | | | | | | | | | |-- ModOp: %
|
|
| | | | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | | | | | `-- IntConst: 2
|
|
| | | | | | | | | | | | | | | |-- EqOp: ==
|
|
| | | | | | | | | | | | | | | `-- relExp
|
|
| | | | | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | | | | `-- IntConst: 0
|
|
| | | | | | | | | | | | | | |-- R_PAREN: )
|
|
| | | | | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | | | | `-- block
|
|
| | | | | | | | | | | | | | |-- L_BRACE: {
|
|
| | | | | | | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | | | | | |-- addExp
|
|
| | | | | | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | | | | | | | | | |-- AddOp: +
|
|
| | | | | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | | | | | | `-- IntConst: 1
|
|
| | | | | | | | | | | | | | | | |-- MulOp: *
|
|
| | | | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | | | | |-- Ident: SHIFT_TABLE
|
|
| | | | | | | | | | | | | | | | |-- L_BRACKET: [
|
|
| | | | | | | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | | | | | `-- Ident: i
|
|
| | | | | | | | | | | | | | | | `-- R_BRACKET: ]
|
|
| | | | | | | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | | | | | | `-- R_BRACE: }
|
|
| | | | | | | | | | | | | `-- R_BRACE: }
|
|
| | | | | | | | | | | | |-- Else: else
|
|
| | | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | | |-- If: if
|
|
| | | | | | | | | | | | |-- L_PAREN: (
|
|
| | | | | | | | | | | | |-- cond
|
|
| | | | | | | | | | | | | `-- lOrExp
|
|
| | | | | | | | | | | | | `-- lAndExp
|
|
| | | | | | | | | | | | | `-- eqExp
|
|
| | | | | | | | | | | | | `-- relExp
|
|
| | | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | | `-- Ident: y
|
|
| | | | | | | | | | | | | |-- ModOp: %
|
|
| | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | | `-- IntConst: 2
|
|
| | | | | | | | | | | | |-- R_PAREN: )
|
|
| | | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | | `-- block
|
|
| | | | | | | | | | | | |-- L_BRACE: {
|
|
| | | | | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | | | |-- addExp
|
|
| | | | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | | | | | | | |-- AddOp: +
|
|
| | | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | | | | `-- IntConst: 1
|
|
| | | | | | | | | | | | | | |-- MulOp: *
|
|
| | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | | |-- Ident: SHIFT_TABLE
|
|
| | | | | | | | | | | | | | |-- L_BRACKET: [
|
|
| | | | | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | | | `-- Ident: i
|
|
| | | | | | | | | | | | | | `-- R_BRACKET: ]
|
|
| | | | | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | | | | `-- R_BRACE: }
|
|
| | | | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | | | `-- Ident: x
|
|
| | | | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | | `-- Ident: x
|
|
| | | | | | | | | | | | | |-- DivOp: /
|
|
| | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | | `-- IntConst: 2
|
|
| | | | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | | | `-- Ident: y
|
|
| | | | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | | `-- Ident: y
|
|
| | | | | | | | | | | | | |-- DivOp: /
|
|
| | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | | `-- IntConst: 2
|
|
| | | | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | | | `-- Ident: i
|
|
| | | | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | | |-- addExp
|
|
| | | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | | `-- Ident: i
|
|
| | | | | | | | | | | | | |-- AddOp: +
|
|
| | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | | `-- IntConst: 1
|
|
| | | | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | | | `-- R_BRACE: }
|
|
| | | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | | `-- Ident: sum
|
|
| | | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | | |-- 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
|
|
| | | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | | `-- Ident: x
|
|
| | | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | `-- Ident: al
|
|
| | | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | | `-- Ident: y
|
|
| | | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | `-- Ident: c
|
|
| | | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | |-- While: while
|
|
| | | | | | | | | | | |-- L_PAREN: (
|
|
| | | | | | | | | | | |-- cond
|
|
| | | | | | | | | | | | `-- lOrExp
|
|
| | | | | | | | | | | | `-- lAndExp
|
|
| | | | | | | | | | | | `-- eqExp
|
|
| | | | | | | | | | | | `-- relExp
|
|
| | | | | | | | | | | | |-- relExp
|
|
| | | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | `-- Ident: i
|
|
| | | | | | | | | | | | |-- LtOp: <
|
|
| | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | `-- IntConst: 16
|
|
| | | | | | | | | | | |-- R_PAREN: )
|
|
| | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | `-- block
|
|
| | | | | | | | | | | |-- L_BRACE: {
|
|
| | | | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | | |-- If: if
|
|
| | | | | | | | | | | | |-- L_PAREN: (
|
|
| | | | | | | | | | | | |-- cond
|
|
| | | | | | | | | | | | | `-- lOrExp
|
|
| | | | | | | | | | | | | `-- lAndExp
|
|
| | | | | | | | | | | | | |-- lAndExp
|
|
| | | | | | | | | | | | | | `-- eqExp
|
|
| | | | | | | | | | | | | | `-- relExp
|
|
| | | | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | | | `-- Ident: x
|
|
| | | | | | | | | | | | | | |-- ModOp: %
|
|
| | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | | | `-- IntConst: 2
|
|
| | | | | | | | | | | | | |-- AndOp: &&
|
|
| | | | | | | | | | | | | `-- eqExp
|
|
| | | | | | | | | | | | | `-- relExp
|
|
| | | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | | `-- Ident: y
|
|
| | | | | | | | | | | | | |-- ModOp: %
|
|
| | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | | `-- IntConst: 2
|
|
| | | | | | | | | | | | |-- R_PAREN: )
|
|
| | | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | | `-- block
|
|
| | | | | | | | | | | | |-- L_BRACE: {
|
|
| | | | | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | | | |-- addExp
|
|
| | | | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | | | | | | | |-- AddOp: +
|
|
| | | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | | | | `-- IntConst: 1
|
|
| | | | | | | | | | | | | | |-- MulOp: *
|
|
| | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | | |-- Ident: SHIFT_TABLE
|
|
| | | | | | | | | | | | | | |-- L_BRACKET: [
|
|
| | | | | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | | | `-- Ident: i
|
|
| | | | | | | | | | | | | | `-- R_BRACKET: ]
|
|
| | | | | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | | | | `-- R_BRACE: }
|
|
| | | | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | | | `-- Ident: x
|
|
| | | | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | | `-- Ident: x
|
|
| | | | | | | | | | | | | |-- DivOp: /
|
|
| | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | | `-- IntConst: 2
|
|
| | | | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | | | `-- Ident: y
|
|
| | | | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | | `-- Ident: y
|
|
| | | | | | | | | | | | | |-- DivOp: /
|
|
| | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | | `-- IntConst: 2
|
|
| | | | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | | | `-- Ident: i
|
|
| | | | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | | |-- addExp
|
|
| | | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | | `-- Ident: i
|
|
| | | | | | | | | | | | | |-- AddOp: +
|
|
| | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | | `-- IntConst: 1
|
|
| | | | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | | | `-- R_BRACE: }
|
|
| | | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | | `-- Ident: c
|
|
| | | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | |-- If: if
|
|
| | | | | | | | | | | |-- L_PAREN: (
|
|
| | | | | | | | | | | |-- cond
|
|
| | | | | | | | | | | | `-- lOrExp
|
|
| | | | | | | | | | | | `-- lAndExp
|
|
| | | | | | | | | | | | `-- eqExp
|
|
| | | | | | | | | | | | `-- relExp
|
|
| | | | | | | | | | | | |-- relExp
|
|
| | | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | |-- L_PAREN: (
|
|
| | | | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | | | `-- IntConst: 1
|
|
| | | | | | | | | | | | | `-- R_PAREN: )
|
|
| | | | | | | | | | | | |-- GtOp: >
|
|
| | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | `-- IntConst: 15
|
|
| | | | | | | | | | | |-- R_PAREN: )
|
|
| | | | | | | | | | | |-- stmt
|
|
| | | | | | | | | | | | `-- block
|
|
| | | | | | | | | | | | |-- L_BRACE: {
|
|
| | | | | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | | | `-- IntConst: 0
|
|
| | | | | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | | | | `-- R_BRACE: }
|
|
| | | | | | | | | | | |-- Else: else
|
|
| | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | `-- block
|
|
| | | | | | | | | | | |-- L_BRACE: {
|
|
| | | | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | | | |-- 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
|
|
| | | | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | | | `-- Ident: x
|
|
| | | | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | |-- L_PAREN: (
|
|
| | | | | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | | | `-- Ident: c
|
|
| | | | | | | | | | | | | | `-- R_PAREN: )
|
|
| | | | | | | | | | | | | |-- MulOp: *
|
|
| | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | |-- Ident: SHIFT_TABLE
|
|
| | | | | | | | | | | | | |-- L_BRACKET: [
|
|
| | | | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | | | `-- IntConst: 1
|
|
| | | | | | | | | | | | | `-- R_BRACKET: ]
|
|
| | | | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | | | `-- Ident: y
|
|
| | | | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | | `-- IntConst: 0xffff
|
|
| | | | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | | |-- While: while
|
|
| | | | | | | | | | | | |-- L_PAREN: (
|
|
| | | | | | | | | | | | |-- cond
|
|
| | | | | | | | | | | | | `-- lOrExp
|
|
| | | | | | | | | | | | | `-- lAndExp
|
|
| | | | | | | | | | | | | `-- eqExp
|
|
| | | | | | | | | | | | | `-- relExp
|
|
| | | | | | | | | | | | | |-- relExp
|
|
| | | | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | | `-- Ident: i
|
|
| | | | | | | | | | | | | |-- LtOp: <
|
|
| | | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | | `-- IntConst: 16
|
|
| | | | | | | | | | | | |-- R_PAREN: )
|
|
| | | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | | `-- block
|
|
| | | | | | | | | | | | |-- L_BRACE: {
|
|
| | | | | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | | | |-- If: if
|
|
| | | | | | | | | | | | | |-- L_PAREN: (
|
|
| | | | | | | | | | | | | |-- cond
|
|
| | | | | | | | | | | | | | `-- lOrExp
|
|
| | | | | | | | | | | | | | `-- lAndExp
|
|
| | | | | | | | | | | | | | |-- lAndExp
|
|
| | | | | | | | | | | | | | | `-- eqExp
|
|
| | | | | | | | | | | | | | | `-- relExp
|
|
| | | | | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | | | | `-- Ident: x
|
|
| | | | | | | | | | | | | | | |-- ModOp: %
|
|
| | | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | | | | `-- IntConst: 2
|
|
| | | | | | | | | | | | | | |-- AndOp: &&
|
|
| | | | | | | | | | | | | | `-- eqExp
|
|
| | | | | | | | | | | | | | `-- relExp
|
|
| | | | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | | | `-- Ident: y
|
|
| | | | | | | | | | | | | | |-- ModOp: %
|
|
| | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | | | `-- IntConst: 2
|
|
| | | | | | | | | | | | | |-- R_PAREN: )
|
|
| | | | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | | | `-- block
|
|
| | | | | | | | | | | | | |-- L_BRACE: {
|
|
| | | | | | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | | | | |-- addExp
|
|
| | | | | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | | | | | | | | |-- AddOp: +
|
|
| | | | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | | | | | `-- IntConst: 1
|
|
| | | | | | | | | | | | | | | |-- MulOp: *
|
|
| | | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | | | |-- Ident: SHIFT_TABLE
|
|
| | | | | | | | | | | | | | | |-- L_BRACKET: [
|
|
| | | | | | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | | | | `-- Ident: i
|
|
| | | | | | | | | | | | | | | `-- R_BRACKET: ]
|
|
| | | | | | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | | | | | `-- R_BRACE: }
|
|
| | | | | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | | | | `-- Ident: x
|
|
| | | | | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | | | `-- Ident: x
|
|
| | | | | | | | | | | | | | |-- DivOp: /
|
|
| | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | | | `-- IntConst: 2
|
|
| | | | | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | | | | `-- Ident: y
|
|
| | | | | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | | | `-- Ident: y
|
|
| | | | | | | | | | | | | | |-- DivOp: /
|
|
| | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | | | `-- IntConst: 2
|
|
| | | | | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | | | | `-- Ident: i
|
|
| | | | | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | | | |-- addExp
|
|
| | | | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | | | `-- Ident: i
|
|
| | | | | | | | | | | | | | |-- AddOp: +
|
|
| | | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | | | `-- IntConst: 1
|
|
| | | | | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | | | | `-- R_BRACE: }
|
|
| | | | | | | | | | | `-- R_BRACE: }
|
|
| | | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | | `-- Ident: c
|
|
| | | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | | `-- Ident: al
|
|
| | | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | `-- Ident: sum
|
|
| | | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | | `-- R_BRACE: }
|
|
| | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | `-- Ident: al
|
|
| | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | `-- R_BRACE: }
|
|
| | | | | | | | |-- blockItem
|
|
| | | | | | | | | `-- stmt
|
|
| | | | | | | | | |-- lVal
|
|
| | | | | | | | | | `-- Ident: mres
|
|
| | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | |-- exp
|
|
| | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | `-- R_BRACE: }
|
|
| | | | | | | |-- blockItem
|
|
| | | | | | | | `-- stmt
|
|
| | | | | | | | `-- block
|
|
| | | | | | | | |-- L_BRACE: {
|
|
| | | | | | | | |-- blockItem
|
|
| | | | | | | | | `-- decl
|
|
| | | | | | | | | `-- varDecl
|
|
| | | | | | | | | |-- bType
|
|
| | | | | | | | | | `-- Int: int
|
|
| | | | | | | | | |-- varDef
|
|
| | | | | | | | | | |-- Ident: al
|
|
| | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | `-- initVal
|
|
| | | | | | | | | | `-- exp
|
|
| | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | `-- Ident: ml
|
|
| | | | | | | | | |-- Comma: ,
|
|
| | | | | | | | | |-- varDef
|
|
| | | | | | | | | | |-- Ident: c
|
|
| | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | `-- initVal
|
|
| | | | | | | | | | `-- exp
|
|
| | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | `-- Ident: ml
|
|
| | | | | | | | | |-- Comma: ,
|
|
| | | | | | | | | |-- varDef
|
|
| | | | | | | | | | `-- Ident: sum
|
|
| | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | |-- blockItem
|
|
| | | | | | | | | `-- stmt
|
|
| | | | | | | | | |-- While: while
|
|
| | | | | | | | | |-- L_PAREN: (
|
|
| | | | | | | | | |-- cond
|
|
| | | | | | | | | | `-- lOrExp
|
|
| | | | | | | | | | `-- lAndExp
|
|
| | | | | | | | | | `-- eqExp
|
|
| | | | | | | | | | `-- relExp
|
|
| | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | `-- Ident: c
|
|
| | | | | | | | | |-- R_PAREN: )
|
|
| | | | | | | | | `-- stmt
|
|
| | | | | | | | | `-- block
|
|
| | | | | | | | | |-- L_BRACE: {
|
|
| | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | |-- 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
|
|
| | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | `-- Ident: x
|
|
| | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | `-- Ident: al
|
|
| | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | `-- Ident: y
|
|
| | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | `-- Ident: c
|
|
| | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | |-- While: while
|
|
| | | | | | | | | | |-- L_PAREN: (
|
|
| | | | | | | | | | |-- cond
|
|
| | | | | | | | | | | `-- lOrExp
|
|
| | | | | | | | | | | `-- lAndExp
|
|
| | | | | | | | | | | `-- eqExp
|
|
| | | | | | | | | | | `-- relExp
|
|
| | | | | | | | | | | |-- relExp
|
|
| | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | `-- Ident: i
|
|
| | | | | | | | | | | |-- LtOp: <
|
|
| | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | `-- IntConst: 16
|
|
| | | | | | | | | | |-- R_PAREN: )
|
|
| | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | `-- block
|
|
| | | | | | | | | | |-- L_BRACE: {
|
|
| | | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | |-- If: if
|
|
| | | | | | | | | | | |-- L_PAREN: (
|
|
| | | | | | | | | | | |-- cond
|
|
| | | | | | | | | | | | `-- lOrExp
|
|
| | | | | | | | | | | | `-- lAndExp
|
|
| | | | | | | | | | | | `-- eqExp
|
|
| | | | | | | | | | | | `-- relExp
|
|
| | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | `-- Ident: x
|
|
| | | | | | | | | | | | |-- ModOp: %
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | `-- IntConst: 2
|
|
| | | | | | | | | | | |-- R_PAREN: )
|
|
| | | | | | | | | | | |-- stmt
|
|
| | | | | | | | | | | | `-- block
|
|
| | | | | | | | | | | | |-- L_BRACE: {
|
|
| | | | | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | | | |-- If: if
|
|
| | | | | | | | | | | | | |-- L_PAREN: (
|
|
| | | | | | | | | | | | | |-- cond
|
|
| | | | | | | | | | | | | | `-- lOrExp
|
|
| | | | | | | | | | | | | | `-- lAndExp
|
|
| | | | | | | | | | | | | | `-- eqExp
|
|
| | | | | | | | | | | | | | |-- eqExp
|
|
| | | | | | | | | | | | | | | `-- relExp
|
|
| | | | | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | | | | `-- Ident: y
|
|
| | | | | | | | | | | | | | | |-- ModOp: %
|
|
| | | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | | | | `-- IntConst: 2
|
|
| | | | | | | | | | | | | | |-- EqOp: ==
|
|
| | | | | | | | | | | | | | `-- relExp
|
|
| | | | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | | | `-- IntConst: 0
|
|
| | | | | | | | | | | | | |-- R_PAREN: )
|
|
| | | | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | | | `-- block
|
|
| | | | | | | | | | | | | |-- L_BRACE: {
|
|
| | | | | | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | | | | |-- addExp
|
|
| | | | | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | | | | | | | | |-- AddOp: +
|
|
| | | | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | | | | | `-- IntConst: 1
|
|
| | | | | | | | | | | | | | | |-- MulOp: *
|
|
| | | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | | | |-- Ident: SHIFT_TABLE
|
|
| | | | | | | | | | | | | | | |-- L_BRACKET: [
|
|
| | | | | | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | | | | `-- Ident: i
|
|
| | | | | | | | | | | | | | | `-- R_BRACKET: ]
|
|
| | | | | | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | | | | | `-- R_BRACE: }
|
|
| | | | | | | | | | | | `-- R_BRACE: }
|
|
| | | | | | | | | | | |-- Else: else
|
|
| | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | |-- If: if
|
|
| | | | | | | | | | | |-- L_PAREN: (
|
|
| | | | | | | | | | | |-- cond
|
|
| | | | | | | | | | | | `-- lOrExp
|
|
| | | | | | | | | | | | `-- lAndExp
|
|
| | | | | | | | | | | | `-- eqExp
|
|
| | | | | | | | | | | | `-- relExp
|
|
| | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | `-- Ident: y
|
|
| | | | | | | | | | | | |-- ModOp: %
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | `-- IntConst: 2
|
|
| | | | | | | | | | | |-- R_PAREN: )
|
|
| | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | `-- block
|
|
| | | | | | | | | | | |-- L_BRACE: {
|
|
| | | | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | | |-- addExp
|
|
| | | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | | | | | | |-- AddOp: +
|
|
| | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | | | `-- IntConst: 1
|
|
| | | | | | | | | | | | | |-- MulOp: *
|
|
| | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | |-- Ident: SHIFT_TABLE
|
|
| | | | | | | | | | | | | |-- L_BRACKET: [
|
|
| | | | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | | `-- Ident: i
|
|
| | | | | | | | | | | | | `-- R_BRACKET: ]
|
|
| | | | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | | | `-- R_BRACE: }
|
|
| | | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | | `-- Ident: x
|
|
| | | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | `-- Ident: x
|
|
| | | | | | | | | | | | |-- DivOp: /
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | `-- IntConst: 2
|
|
| | | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | | `-- Ident: y
|
|
| | | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | `-- Ident: y
|
|
| | | | | | | | | | | | |-- DivOp: /
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | `-- IntConst: 2
|
|
| | | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | | `-- Ident: i
|
|
| | | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | |-- addExp
|
|
| | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | `-- Ident: i
|
|
| | | | | | | | | | | | |-- AddOp: +
|
|
| | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | `-- IntConst: 1
|
|
| | | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | | `-- R_BRACE: }
|
|
| | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | `-- Ident: sum
|
|
| | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | |-- 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
|
|
| | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | `-- Ident: x
|
|
| | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | `-- Ident: al
|
|
| | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | `-- Ident: y
|
|
| | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | `-- Ident: c
|
|
| | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | |-- While: while
|
|
| | | | | | | | | | |-- L_PAREN: (
|
|
| | | | | | | | | | |-- cond
|
|
| | | | | | | | | | | `-- lOrExp
|
|
| | | | | | | | | | | `-- lAndExp
|
|
| | | | | | | | | | | `-- eqExp
|
|
| | | | | | | | | | | `-- relExp
|
|
| | | | | | | | | | | |-- relExp
|
|
| | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | `-- Ident: i
|
|
| | | | | | | | | | | |-- LtOp: <
|
|
| | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | `-- IntConst: 16
|
|
| | | | | | | | | | |-- R_PAREN: )
|
|
| | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | `-- block
|
|
| | | | | | | | | | |-- L_BRACE: {
|
|
| | | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | |-- If: if
|
|
| | | | | | | | | | | |-- L_PAREN: (
|
|
| | | | | | | | | | | |-- cond
|
|
| | | | | | | | | | | | `-- lOrExp
|
|
| | | | | | | | | | | | `-- lAndExp
|
|
| | | | | | | | | | | | |-- lAndExp
|
|
| | | | | | | | | | | | | `-- eqExp
|
|
| | | | | | | | | | | | | `-- relExp
|
|
| | | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | | `-- Ident: x
|
|
| | | | | | | | | | | | | |-- ModOp: %
|
|
| | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | | `-- IntConst: 2
|
|
| | | | | | | | | | | | |-- AndOp: &&
|
|
| | | | | | | | | | | | `-- eqExp
|
|
| | | | | | | | | | | | `-- relExp
|
|
| | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | `-- Ident: y
|
|
| | | | | | | | | | | | |-- ModOp: %
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | `-- IntConst: 2
|
|
| | | | | | | | | | | |-- R_PAREN: )
|
|
| | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | `-- block
|
|
| | | | | | | | | | | |-- L_BRACE: {
|
|
| | | | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | | |-- addExp
|
|
| | | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | | | | | | |-- AddOp: +
|
|
| | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | | | `-- IntConst: 1
|
|
| | | | | | | | | | | | | |-- MulOp: *
|
|
| | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | |-- Ident: SHIFT_TABLE
|
|
| | | | | | | | | | | | | |-- L_BRACKET: [
|
|
| | | | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | | `-- Ident: i
|
|
| | | | | | | | | | | | | `-- R_BRACKET: ]
|
|
| | | | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | | | `-- R_BRACE: }
|
|
| | | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | | `-- Ident: x
|
|
| | | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | `-- Ident: x
|
|
| | | | | | | | | | | | |-- DivOp: /
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | `-- IntConst: 2
|
|
| | | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | | `-- Ident: y
|
|
| | | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | `-- Ident: y
|
|
| | | | | | | | | | | | |-- DivOp: /
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | `-- IntConst: 2
|
|
| | | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | | `-- Ident: i
|
|
| | | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | |-- addExp
|
|
| | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | `-- Ident: i
|
|
| | | | | | | | | | | | |-- AddOp: +
|
|
| | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | `-- IntConst: 1
|
|
| | | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | | `-- R_BRACE: }
|
|
| | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | `-- Ident: c
|
|
| | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | |-- If: if
|
|
| | | | | | | | | | |-- L_PAREN: (
|
|
| | | | | | | | | | |-- cond
|
|
| | | | | | | | | | | `-- lOrExp
|
|
| | | | | | | | | | | `-- lAndExp
|
|
| | | | | | | | | | | `-- eqExp
|
|
| | | | | | | | | | | `-- relExp
|
|
| | | | | | | | | | | |-- relExp
|
|
| | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | |-- L_PAREN: (
|
|
| | | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | | `-- IntConst: 1
|
|
| | | | | | | | | | | | `-- R_PAREN: )
|
|
| | | | | | | | | | | |-- GtOp: >
|
|
| | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | `-- IntConst: 15
|
|
| | | | | | | | | | |-- R_PAREN: )
|
|
| | | | | | | | | | |-- stmt
|
|
| | | | | | | | | | | `-- block
|
|
| | | | | | | | | | | |-- L_BRACE: {
|
|
| | | | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | | `-- IntConst: 0
|
|
| | | | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | | | `-- R_BRACE: }
|
|
| | | | | | | | | | |-- Else: else
|
|
| | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | `-- block
|
|
| | | | | | | | | | |-- L_BRACE: {
|
|
| | | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | | |-- 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
|
|
| | | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | | `-- Ident: x
|
|
| | | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | |-- L_PAREN: (
|
|
| | | | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | | `-- Ident: c
|
|
| | | | | | | | | | | | | `-- R_PAREN: )
|
|
| | | | | | | | | | | | |-- MulOp: *
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | |-- Ident: SHIFT_TABLE
|
|
| | | | | | | | | | | | |-- L_BRACKET: [
|
|
| | | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | | `-- IntConst: 1
|
|
| | | | | | | | | | | | `-- R_BRACKET: ]
|
|
| | | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | | `-- Ident: y
|
|
| | | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | `-- IntConst: 0xffff
|
|
| | | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | |-- While: while
|
|
| | | | | | | | | | | |-- L_PAREN: (
|
|
| | | | | | | | | | | |-- cond
|
|
| | | | | | | | | | | | `-- lOrExp
|
|
| | | | | | | | | | | | `-- lAndExp
|
|
| | | | | | | | | | | | `-- eqExp
|
|
| | | | | | | | | | | | `-- relExp
|
|
| | | | | | | | | | | | |-- relExp
|
|
| | | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | `-- Ident: i
|
|
| | | | | | | | | | | | |-- LtOp: <
|
|
| | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | `-- IntConst: 16
|
|
| | | | | | | | | | | |-- R_PAREN: )
|
|
| | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | `-- block
|
|
| | | | | | | | | | | |-- L_BRACE: {
|
|
| | | | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | | |-- If: if
|
|
| | | | | | | | | | | | |-- L_PAREN: (
|
|
| | | | | | | | | | | | |-- cond
|
|
| | | | | | | | | | | | | `-- lOrExp
|
|
| | | | | | | | | | | | | `-- lAndExp
|
|
| | | | | | | | | | | | | |-- lAndExp
|
|
| | | | | | | | | | | | | | `-- eqExp
|
|
| | | | | | | | | | | | | | `-- relExp
|
|
| | | | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | | | `-- Ident: x
|
|
| | | | | | | | | | | | | | |-- ModOp: %
|
|
| | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | | | `-- IntConst: 2
|
|
| | | | | | | | | | | | | |-- AndOp: &&
|
|
| | | | | | | | | | | | | `-- eqExp
|
|
| | | | | | | | | | | | | `-- relExp
|
|
| | | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | | `-- Ident: y
|
|
| | | | | | | | | | | | | |-- ModOp: %
|
|
| | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | | `-- IntConst: 2
|
|
| | | | | | | | | | | | |-- R_PAREN: )
|
|
| | | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | | `-- block
|
|
| | | | | | | | | | | | |-- L_BRACE: {
|
|
| | | | | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | | | |-- addExp
|
|
| | | | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | | | | | | | |-- AddOp: +
|
|
| | | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | | | | `-- IntConst: 1
|
|
| | | | | | | | | | | | | | |-- MulOp: *
|
|
| | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | | |-- Ident: SHIFT_TABLE
|
|
| | | | | | | | | | | | | | |-- L_BRACKET: [
|
|
| | | | | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | | | `-- Ident: i
|
|
| | | | | | | | | | | | | | `-- R_BRACKET: ]
|
|
| | | | | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | | | | `-- R_BRACE: }
|
|
| | | | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | | | `-- Ident: x
|
|
| | | | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | | `-- Ident: x
|
|
| | | | | | | | | | | | | |-- DivOp: /
|
|
| | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | | `-- IntConst: 2
|
|
| | | | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | | | `-- Ident: y
|
|
| | | | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | | `-- Ident: y
|
|
| | | | | | | | | | | | | |-- DivOp: /
|
|
| | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | | `-- IntConst: 2
|
|
| | | | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | | | `-- Ident: i
|
|
| | | | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | | |-- addExp
|
|
| | | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | | `-- Ident: i
|
|
| | | | | | | | | | | | | |-- AddOp: +
|
|
| | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | | `-- IntConst: 1
|
|
| | | | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | | | `-- R_BRACE: }
|
|
| | | | | | | | | | `-- R_BRACE: }
|
|
| | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | `-- Ident: c
|
|
| | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | `-- Ident: al
|
|
| | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | `-- Ident: sum
|
|
| | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | `-- R_BRACE: }
|
|
| | | | | | | | |-- blockItem
|
|
| | | | | | | | | `-- stmt
|
|
| | | | | | | | | |-- lVal
|
|
| | | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | |-- exp
|
|
| | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | `-- Ident: al
|
|
| | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | `-- R_BRACE: }
|
|
| | | | | | | |-- blockItem
|
|
| | | | | | | | `-- stmt
|
|
| | | | | | | | |-- lVal
|
|
| | | | | | | | | `-- Ident: ml
|
|
| | | | | | | | |-- Assign: =
|
|
| | | | | | | | |-- exp
|
|
| | | | | | | | | `-- addExp
|
|
| | | | | | | | | `-- mulExp
|
|
| | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | `-- lVal
|
|
| | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | `-- Semi: ;
|
|
| | | | | | | |-- blockItem
|
|
| | | | | | | | `-- stmt
|
|
| | | | | | | | |-- lVal
|
|
| | | | | | | | | `-- Ident: x
|
|
| | | | | | | | |-- Assign: =
|
|
| | | | | | | | |-- exp
|
|
| | | | | | | | | `-- addExp
|
|
| | | | | | | | | `-- mulExp
|
|
| | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | `-- lVal
|
|
| | | | | | | | | `-- Ident: mr
|
|
| | | | | | | | `-- Semi: ;
|
|
| | | | | | | |-- blockItem
|
|
| | | | | | | | `-- stmt
|
|
| | | | | | | | |-- lVal
|
|
| | | | | | | | | `-- Ident: y
|
|
| | | | | | | | |-- Assign: =
|
|
| | | | | | | | |-- exp
|
|
| | | | | | | | | `-- addExp
|
|
| | | | | | | | | `-- mulExp
|
|
| | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | `-- number
|
|
| | | | | | | | | `-- IntConst: 1
|
|
| | | | | | | | `-- Semi: ;
|
|
| | | | | | | |-- blockItem
|
|
| | | | | | | | `-- stmt
|
|
| | | | | | | | |-- If: if
|
|
| | | | | | | | |-- L_PAREN: (
|
|
| | | | | | | | |-- cond
|
|
| | | | | | | | | `-- lOrExp
|
|
| | | | | | | | | `-- lAndExp
|
|
| | | | | | | | | `-- eqExp
|
|
| | | | | | | | | `-- relExp
|
|
| | | | | | | | | |-- relExp
|
|
| | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | `-- Ident: y
|
|
| | | | | | | | | |-- GeOp: >=
|
|
| | | | | | | | | `-- addExp
|
|
| | | | | | | | | `-- mulExp
|
|
| | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | `-- number
|
|
| | | | | | | | | `-- IntConst: 15
|
|
| | | | | | | | |-- R_PAREN: )
|
|
| | | | | | | | |-- stmt
|
|
| | | | | | | | | `-- block
|
|
| | | | | | | | | |-- L_BRACE: {
|
|
| | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | |-- If: if
|
|
| | | | | | | | | | |-- L_PAREN: (
|
|
| | | | | | | | | | |-- cond
|
|
| | | | | | | | | | | `-- lOrExp
|
|
| | | | | | | | | | | `-- lAndExp
|
|
| | | | | | | | | | | `-- eqExp
|
|
| | | | | | | | | | | `-- relExp
|
|
| | | | | | | | | | | |-- relExp
|
|
| | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | `-- Ident: x
|
|
| | | | | | | | | | | |-- LtOp: <
|
|
| | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | `-- IntConst: 0
|
|
| | | | | | | | | | |-- R_PAREN: )
|
|
| | | | | | | | | | |-- stmt
|
|
| | | | | | | | | | | `-- block
|
|
| | | | | | | | | | | |-- L_BRACE: {
|
|
| | | | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | | `-- IntConst: 0xffff
|
|
| | | | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | | | `-- R_BRACE: }
|
|
| | | | | | | | | | |-- Else: else
|
|
| | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | `-- block
|
|
| | | | | | | | | | |-- L_BRACE: {
|
|
| | | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | `-- IntConst: 0
|
|
| | | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | | `-- R_BRACE: }
|
|
| | | | | | | | | `-- R_BRACE: }
|
|
| | | | | | | | |-- Else: else
|
|
| | | | | | | | `-- stmt
|
|
| | | | | | | | |-- If: if
|
|
| | | | | | | | |-- L_PAREN: (
|
|
| | | | | | | | |-- cond
|
|
| | | | | | | | | `-- lOrExp
|
|
| | | | | | | | | `-- lAndExp
|
|
| | | | | | | | | `-- eqExp
|
|
| | | | | | | | | `-- relExp
|
|
| | | | | | | | | |-- relExp
|
|
| | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | `-- Ident: y
|
|
| | | | | | | | | |-- GtOp: >
|
|
| | | | | | | | | `-- addExp
|
|
| | | | | | | | | `-- mulExp
|
|
| | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | `-- number
|
|
| | | | | | | | | `-- IntConst: 0
|
|
| | | | | | | | |-- R_PAREN: )
|
|
| | | | | | | | |-- stmt
|
|
| | | | | | | | | `-- block
|
|
| | | | | | | | | |-- L_BRACE: {
|
|
| | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | |-- If: if
|
|
| | | | | | | | | | |-- L_PAREN: (
|
|
| | | | | | | | | | |-- cond
|
|
| | | | | | | | | | | `-- lOrExp
|
|
| | | | | | | | | | | `-- lAndExp
|
|
| | | | | | | | | | | `-- eqExp
|
|
| | | | | | | | | | | `-- relExp
|
|
| | | | | | | | | | | |-- relExp
|
|
| | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | `-- Ident: x
|
|
| | | | | | | | | | | |-- GtOp: >
|
|
| | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | `-- IntConst: 0x7fff
|
|
| | | | | | | | | | |-- R_PAREN: )
|
|
| | | | | | | | | | |-- stmt
|
|
| | | | | | | | | | | `-- block
|
|
| | | | | | | | | | | |-- L_BRACE: {
|
|
| | | | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | | | `-- Ident: x
|
|
| | | | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | | `-- Ident: x
|
|
| | | | | | | | | | | | | |-- DivOp: /
|
|
| | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | |-- Ident: SHIFT_TABLE
|
|
| | | | | | | | | | | | | |-- L_BRACKET: [
|
|
| | | | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | | `-- Ident: y
|
|
| | | | | | | | | | | | | `-- R_BRACKET: ]
|
|
| | | | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | | |-- addExp
|
|
| | | | | | | | | | | | | | |-- addExp
|
|
| | | | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | | | `-- Ident: x
|
|
| | | | | | | | | | | | | | |-- AddOp: +
|
|
| | | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | | | `-- IntConst: 65536
|
|
| | | | | | | | | | | | | |-- SubOp: -
|
|
| | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | |-- Ident: SHIFT_TABLE
|
|
| | | | | | | | | | | | | |-- L_BRACKET: [
|
|
| | | | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | | | |-- addExp
|
|
| | | | | | | | | | | | | | | |-- addExp
|
|
| | | | | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | | | | | `-- IntConst: 15
|
|
| | | | | | | | | | | | | | | |-- SubOp: -
|
|
| | | | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | | | `-- Ident: y
|
|
| | | | | | | | | | | | | | |-- AddOp: +
|
|
| | | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | | | `-- IntConst: 1
|
|
| | | | | | | | | | | | | `-- R_BRACKET: ]
|
|
| | | | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | | | `-- R_BRACE: }
|
|
| | | | | | | | | | |-- Else: else
|
|
| | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | `-- block
|
|
| | | | | | | | | | |-- L_BRACE: {
|
|
| | | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | `-- Ident: x
|
|
| | | | | | | | | | | | |-- DivOp: /
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | |-- Ident: SHIFT_TABLE
|
|
| | | | | | | | | | | | |-- L_BRACKET: [
|
|
| | | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | `-- Ident: y
|
|
| | | | | | | | | | | | `-- R_BRACKET: ]
|
|
| | | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | | `-- R_BRACE: }
|
|
| | | | | | | | | `-- R_BRACE: }
|
|
| | | | | | | | |-- Else: else
|
|
| | | | | | | | `-- stmt
|
|
| | | | | | | | `-- block
|
|
| | | | | | | | |-- L_BRACE: {
|
|
| | | | | | | | |-- blockItem
|
|
| | | | | | | | | `-- stmt
|
|
| | | | | | | | | |-- lVal
|
|
| | | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | |-- exp
|
|
| | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | `-- Ident: x
|
|
| | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | `-- R_BRACE: }
|
|
| | | | | | | |-- blockItem
|
|
| | | | | | | | `-- stmt
|
|
| | | | | | | | |-- lVal
|
|
| | | | | | | | | `-- Ident: mr
|
|
| | | | | | | | |-- Assign: =
|
|
| | | | | | | | |-- exp
|
|
| | | | | | | | | `-- addExp
|
|
| | | | | | | | | `-- mulExp
|
|
| | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | `-- lVal
|
|
| | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | `-- Semi: ;
|
|
| | | | | | | `-- R_BRACE: }
|
|
| | | | | | |-- blockItem
|
|
| | | | | | | `-- stmt
|
|
| | | | | | | |-- lVal
|
|
| | | | | | | | `-- Ident: ans
|
|
| | | | | | | |-- Assign: =
|
|
| | | | | | | |-- exp
|
|
| | | | | | | | `-- addExp
|
|
| | | | | | | | `-- mulExp
|
|
| | | | | | | | `-- unaryExp
|
|
| | | | | | | | `-- primaryExp
|
|
| | | | | | | | `-- lVal
|
|
| | | | | | | | `-- Ident: mres
|
|
| | | | | | | `-- Semi: ;
|
|
| | | | | | `-- R_BRACE: }
|
|
| | | | | |-- blockItem
|
|
| | | | | | `-- stmt
|
|
| | | | | | |-- lVal
|
|
| | | | | | | `-- Ident: pres
|
|
| | | | | | |-- Assign: =
|
|
| | | | | | |-- exp
|
|
| | | | | | | `-- addExp
|
|
| | | | | | | `-- mulExp
|
|
| | | | | | | `-- unaryExp
|
|
| | | | | | | `-- primaryExp
|
|
| | | | | | | `-- lVal
|
|
| | | | | | | `-- Ident: ans
|
|
| | | | | | `-- Semi: ;
|
|
| | | | | `-- R_BRACE: }
|
|
| | | | |-- blockItem
|
|
| | | | | `-- stmt
|
|
| | | | | `-- block
|
|
| | | | | |-- L_BRACE: {
|
|
| | | | | |-- blockItem
|
|
| | | | | | `-- decl
|
|
| | | | | | `-- varDecl
|
|
| | | | | | |-- bType
|
|
| | | | | | | `-- Int: int
|
|
| | | | | | |-- varDef
|
|
| | | | | | | |-- Ident: ml
|
|
| | | | | | | |-- Assign: =
|
|
| | | | | | | `-- initVal
|
|
| | | | | | | `-- exp
|
|
| | | | | | | `-- addExp
|
|
| | | | | | | `-- mulExp
|
|
| | | | | | | `-- unaryExp
|
|
| | | | | | | `-- primaryExp
|
|
| | | | | | | `-- lVal
|
|
| | | | | | | `-- Ident: pl
|
|
| | | | | | |-- Comma: ,
|
|
| | | | | | |-- varDef
|
|
| | | | | | | |-- Ident: mr
|
|
| | | | | | | |-- Assign: =
|
|
| | | | | | | `-- initVal
|
|
| | | | | | | `-- exp
|
|
| | | | | | | `-- addExp
|
|
| | | | | | | `-- mulExp
|
|
| | | | | | | `-- unaryExp
|
|
| | | | | | | `-- primaryExp
|
|
| | | | | | | `-- lVal
|
|
| | | | | | | `-- Ident: pl
|
|
| | | | | | |-- Comma: ,
|
|
| | | | | | |-- varDef
|
|
| | | | | | | |-- Ident: mres
|
|
| | | | | | | |-- Assign: =
|
|
| | | | | | | `-- initVal
|
|
| | | | | | | `-- exp
|
|
| | | | | | | `-- addExp
|
|
| | | | | | | `-- mulExp
|
|
| | | | | | | `-- unaryExp
|
|
| | | | | | | `-- primaryExp
|
|
| | | | | | | `-- number
|
|
| | | | | | | `-- IntConst: 0
|
|
| | | | | | `-- Semi: ;
|
|
| | | | | |-- blockItem
|
|
| | | | | | `-- stmt
|
|
| | | | | | |-- While: while
|
|
| | | | | | |-- L_PAREN: (
|
|
| | | | | | |-- cond
|
|
| | | | | | | `-- lOrExp
|
|
| | | | | | | `-- lAndExp
|
|
| | | | | | | `-- eqExp
|
|
| | | | | | | `-- relExp
|
|
| | | | | | | `-- addExp
|
|
| | | | | | | `-- mulExp
|
|
| | | | | | | `-- unaryExp
|
|
| | | | | | | `-- primaryExp
|
|
| | | | | | | `-- lVal
|
|
| | | | | | | `-- Ident: mr
|
|
| | | | | | |-- R_PAREN: )
|
|
| | | | | | `-- stmt
|
|
| | | | | | `-- block
|
|
| | | | | | |-- L_BRACE: {
|
|
| | | | | | |-- blockItem
|
|
| | | | | | | `-- stmt
|
|
| | | | | | | |-- lVal
|
|
| | | | | | | | `-- Ident: ans
|
|
| | | | | | | |-- Assign: =
|
|
| | | | | | | |-- 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
|
|
| | | | | | | |-- lVal
|
|
| | | | | | | | `-- Ident: x
|
|
| | | | | | | |-- Assign: =
|
|
| | | | | | | |-- exp
|
|
| | | | | | | | `-- addExp
|
|
| | | | | | | | `-- mulExp
|
|
| | | | | | | | `-- unaryExp
|
|
| | | | | | | | `-- primaryExp
|
|
| | | | | | | | `-- lVal
|
|
| | | | | | | | `-- Ident: mr
|
|
| | | | | | | `-- Semi: ;
|
|
| | | | | | |-- blockItem
|
|
| | | | | | | `-- stmt
|
|
| | | | | | | |-- lVal
|
|
| | | | | | | | `-- Ident: y
|
|
| | | | | | | |-- Assign: =
|
|
| | | | | | | |-- exp
|
|
| | | | | | | | `-- addExp
|
|
| | | | | | | | `-- mulExp
|
|
| | | | | | | | `-- unaryExp
|
|
| | | | | | | | `-- primaryExp
|
|
| | | | | | | | `-- number
|
|
| | | | | | | | `-- IntConst: 1
|
|
| | | | | | | `-- Semi: ;
|
|
| | | | | | |-- blockItem
|
|
| | | | | | | `-- stmt
|
|
| | | | | | | |-- While: while
|
|
| | | | | | | |-- L_PAREN: (
|
|
| | | | | | | |-- cond
|
|
| | | | | | | | `-- lOrExp
|
|
| | | | | | | | `-- lAndExp
|
|
| | | | | | | | `-- eqExp
|
|
| | | | | | | | `-- relExp
|
|
| | | | | | | | |-- relExp
|
|
| | | | | | | | | `-- addExp
|
|
| | | | | | | | | `-- mulExp
|
|
| | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | `-- lVal
|
|
| | | | | | | | | `-- Ident: i
|
|
| | | | | | | | |-- LtOp: <
|
|
| | | | | | | | `-- addExp
|
|
| | | | | | | | `-- mulExp
|
|
| | | | | | | | `-- unaryExp
|
|
| | | | | | | | `-- primaryExp
|
|
| | | | | | | | `-- number
|
|
| | | | | | | | `-- IntConst: 16
|
|
| | | | | | | |-- R_PAREN: )
|
|
| | | | | | | `-- stmt
|
|
| | | | | | | `-- block
|
|
| | | | | | | |-- L_BRACE: {
|
|
| | | | | | | |-- blockItem
|
|
| | | | | | | | `-- stmt
|
|
| | | | | | | | |-- If: if
|
|
| | | | | | | | |-- L_PAREN: (
|
|
| | | | | | | | |-- cond
|
|
| | | | | | | | | `-- lOrExp
|
|
| | | | | | | | | `-- lAndExp
|
|
| | | | | | | | | |-- lAndExp
|
|
| | | | | | | | | | `-- eqExp
|
|
| | | | | | | | | | `-- relExp
|
|
| | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | `-- Ident: x
|
|
| | | | | | | | | | |-- ModOp: %
|
|
| | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | `-- number
|
|
| | | | | | | | | | `-- IntConst: 2
|
|
| | | | | | | | | |-- AndOp: &&
|
|
| | | | | | | | | `-- eqExp
|
|
| | | | | | | | | `-- relExp
|
|
| | | | | | | | | `-- addExp
|
|
| | | | | | | | | `-- mulExp
|
|
| | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | `-- Ident: y
|
|
| | | | | | | | | |-- ModOp: %
|
|
| | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | `-- number
|
|
| | | | | | | | | `-- IntConst: 2
|
|
| | | | | | | | |-- R_PAREN: )
|
|
| | | | | | | | `-- stmt
|
|
| | | | | | | | `-- block
|
|
| | | | | | | | |-- L_BRACE: {
|
|
| | | | | | | | |-- blockItem
|
|
| | | | | | | | | `-- stmt
|
|
| | | | | | | | | |-- lVal
|
|
| | | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | |-- exp
|
|
| | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | |-- addExp
|
|
| | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | | | |-- AddOp: +
|
|
| | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | `-- IntConst: 1
|
|
| | | | | | | | | | |-- MulOp: *
|
|
| | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | |-- Ident: SHIFT_TABLE
|
|
| | | | | | | | | | |-- L_BRACKET: [
|
|
| | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | `-- Ident: i
|
|
| | | | | | | | | | `-- R_BRACKET: ]
|
|
| | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | `-- R_BRACE: }
|
|
| | | | | | | |-- blockItem
|
|
| | | | | | | | `-- stmt
|
|
| | | | | | | | |-- lVal
|
|
| | | | | | | | | `-- Ident: x
|
|
| | | | | | | | |-- Assign: =
|
|
| | | | | | | | |-- exp
|
|
| | | | | | | | | `-- addExp
|
|
| | | | | | | | | `-- mulExp
|
|
| | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | `-- Ident: x
|
|
| | | | | | | | | |-- DivOp: /
|
|
| | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | `-- number
|
|
| | | | | | | | | `-- IntConst: 2
|
|
| | | | | | | | `-- Semi: ;
|
|
| | | | | | | |-- blockItem
|
|
| | | | | | | | `-- stmt
|
|
| | | | | | | | |-- lVal
|
|
| | | | | | | | | `-- Ident: y
|
|
| | | | | | | | |-- Assign: =
|
|
| | | | | | | | |-- exp
|
|
| | | | | | | | | `-- addExp
|
|
| | | | | | | | | `-- mulExp
|
|
| | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | `-- Ident: y
|
|
| | | | | | | | | |-- DivOp: /
|
|
| | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | `-- number
|
|
| | | | | | | | | `-- IntConst: 2
|
|
| | | | | | | | `-- Semi: ;
|
|
| | | | | | | |-- blockItem
|
|
| | | | | | | | `-- stmt
|
|
| | | | | | | | |-- lVal
|
|
| | | | | | | | | `-- Ident: i
|
|
| | | | | | | | |-- Assign: =
|
|
| | | | | | | | |-- exp
|
|
| | | | | | | | | `-- addExp
|
|
| | | | | | | | | |-- addExp
|
|
| | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | `-- Ident: i
|
|
| | | | | | | | | |-- AddOp: +
|
|
| | | | | | | | | `-- mulExp
|
|
| | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | `-- number
|
|
| | | | | | | | | `-- IntConst: 1
|
|
| | | | | | | | `-- Semi: ;
|
|
| | | | | | | `-- R_BRACE: }
|
|
| | | | | | |-- blockItem
|
|
| | | | | | | `-- stmt
|
|
| | | | | | | |-- If: if
|
|
| | | | | | | |-- L_PAREN: (
|
|
| | | | | | | |-- cond
|
|
| | | | | | | | `-- lOrExp
|
|
| | | | | | | | `-- lAndExp
|
|
| | | | | | | | `-- eqExp
|
|
| | | | | | | | `-- relExp
|
|
| | | | | | | | `-- addExp
|
|
| | | | | | | | `-- mulExp
|
|
| | | | | | | | `-- unaryExp
|
|
| | | | | | | | `-- primaryExp
|
|
| | | | | | | | `-- lVal
|
|
| | | | | | | | `-- Ident: ans
|
|
| | | | | | | |-- R_PAREN: )
|
|
| | | | | | | `-- stmt
|
|
| | | | | | | `-- block
|
|
| | | | | | | |-- L_BRACE: {
|
|
| | | | | | | |-- blockItem
|
|
| | | | | | | | `-- stmt
|
|
| | | | | | | | `-- block
|
|
| | | | | | | | |-- L_BRACE: {
|
|
| | | | | | | | |-- blockItem
|
|
| | | | | | | | | `-- decl
|
|
| | | | | | | | | `-- varDecl
|
|
| | | | | | | | | |-- bType
|
|
| | | | | | | | | | `-- Int: int
|
|
| | | | | | | | | |-- varDef
|
|
| | | | | | | | | | |-- Ident: al
|
|
| | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | `-- initVal
|
|
| | | | | | | | | | `-- exp
|
|
| | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | `-- Ident: mres
|
|
| | | | | | | | | |-- Comma: ,
|
|
| | | | | | | | | |-- varDef
|
|
| | | | | | | | | | |-- Ident: c
|
|
| | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | `-- initVal
|
|
| | | | | | | | | | `-- exp
|
|
| | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | `-- Ident: ml
|
|
| | | | | | | | | |-- Comma: ,
|
|
| | | | | | | | | |-- varDef
|
|
| | | | | | | | | | `-- Ident: sum
|
|
| | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | |-- blockItem
|
|
| | | | | | | | | `-- stmt
|
|
| | | | | | | | | |-- While: while
|
|
| | | | | | | | | |-- L_PAREN: (
|
|
| | | | | | | | | |-- cond
|
|
| | | | | | | | | | `-- lOrExp
|
|
| | | | | | | | | | `-- lAndExp
|
|
| | | | | | | | | | `-- eqExp
|
|
| | | | | | | | | | `-- relExp
|
|
| | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | `-- Ident: c
|
|
| | | | | | | | | |-- R_PAREN: )
|
|
| | | | | | | | | `-- stmt
|
|
| | | | | | | | | `-- block
|
|
| | | | | | | | | |-- L_BRACE: {
|
|
| | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | |-- 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
|
|
| | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | `-- Ident: x
|
|
| | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | `-- Ident: al
|
|
| | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | `-- Ident: y
|
|
| | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | `-- Ident: c
|
|
| | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | |-- While: while
|
|
| | | | | | | | | | |-- L_PAREN: (
|
|
| | | | | | | | | | |-- cond
|
|
| | | | | | | | | | | `-- lOrExp
|
|
| | | | | | | | | | | `-- lAndExp
|
|
| | | | | | | | | | | `-- eqExp
|
|
| | | | | | | | | | | `-- relExp
|
|
| | | | | | | | | | | |-- relExp
|
|
| | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | `-- Ident: i
|
|
| | | | | | | | | | | |-- LtOp: <
|
|
| | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | `-- IntConst: 16
|
|
| | | | | | | | | | |-- R_PAREN: )
|
|
| | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | `-- block
|
|
| | | | | | | | | | |-- L_BRACE: {
|
|
| | | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | |-- If: if
|
|
| | | | | | | | | | | |-- L_PAREN: (
|
|
| | | | | | | | | | | |-- cond
|
|
| | | | | | | | | | | | `-- lOrExp
|
|
| | | | | | | | | | | | `-- lAndExp
|
|
| | | | | | | | | | | | `-- eqExp
|
|
| | | | | | | | | | | | `-- relExp
|
|
| | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | `-- Ident: x
|
|
| | | | | | | | | | | | |-- ModOp: %
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | `-- IntConst: 2
|
|
| | | | | | | | | | | |-- R_PAREN: )
|
|
| | | | | | | | | | | |-- stmt
|
|
| | | | | | | | | | | | `-- block
|
|
| | | | | | | | | | | | |-- L_BRACE: {
|
|
| | | | | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | | | |-- If: if
|
|
| | | | | | | | | | | | | |-- L_PAREN: (
|
|
| | | | | | | | | | | | | |-- cond
|
|
| | | | | | | | | | | | | | `-- lOrExp
|
|
| | | | | | | | | | | | | | `-- lAndExp
|
|
| | | | | | | | | | | | | | `-- eqExp
|
|
| | | | | | | | | | | | | | |-- eqExp
|
|
| | | | | | | | | | | | | | | `-- relExp
|
|
| | | | | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | | | | `-- Ident: y
|
|
| | | | | | | | | | | | | | | |-- ModOp: %
|
|
| | | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | | | | `-- IntConst: 2
|
|
| | | | | | | | | | | | | | |-- EqOp: ==
|
|
| | | | | | | | | | | | | | `-- relExp
|
|
| | | | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | | | `-- IntConst: 0
|
|
| | | | | | | | | | | | | |-- R_PAREN: )
|
|
| | | | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | | | `-- block
|
|
| | | | | | | | | | | | | |-- L_BRACE: {
|
|
| | | | | | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | | | | |-- addExp
|
|
| | | | | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | | | | | | | | |-- AddOp: +
|
|
| | | | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | | | | | `-- IntConst: 1
|
|
| | | | | | | | | | | | | | | |-- MulOp: *
|
|
| | | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | | | |-- Ident: SHIFT_TABLE
|
|
| | | | | | | | | | | | | | | |-- L_BRACKET: [
|
|
| | | | | | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | | | | `-- Ident: i
|
|
| | | | | | | | | | | | | | | `-- R_BRACKET: ]
|
|
| | | | | | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | | | | | `-- R_BRACE: }
|
|
| | | | | | | | | | | | `-- R_BRACE: }
|
|
| | | | | | | | | | | |-- Else: else
|
|
| | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | |-- If: if
|
|
| | | | | | | | | | | |-- L_PAREN: (
|
|
| | | | | | | | | | | |-- cond
|
|
| | | | | | | | | | | | `-- lOrExp
|
|
| | | | | | | | | | | | `-- lAndExp
|
|
| | | | | | | | | | | | `-- eqExp
|
|
| | | | | | | | | | | | `-- relExp
|
|
| | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | `-- Ident: y
|
|
| | | | | | | | | | | | |-- ModOp: %
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | `-- IntConst: 2
|
|
| | | | | | | | | | | |-- R_PAREN: )
|
|
| | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | `-- block
|
|
| | | | | | | | | | | |-- L_BRACE: {
|
|
| | | | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | | |-- addExp
|
|
| | | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | | | | | | |-- AddOp: +
|
|
| | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | | | `-- IntConst: 1
|
|
| | | | | | | | | | | | | |-- MulOp: *
|
|
| | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | |-- Ident: SHIFT_TABLE
|
|
| | | | | | | | | | | | | |-- L_BRACKET: [
|
|
| | | | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | | `-- Ident: i
|
|
| | | | | | | | | | | | | `-- R_BRACKET: ]
|
|
| | | | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | | | `-- R_BRACE: }
|
|
| | | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | | `-- Ident: x
|
|
| | | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | `-- Ident: x
|
|
| | | | | | | | | | | | |-- DivOp: /
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | `-- IntConst: 2
|
|
| | | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | | `-- Ident: y
|
|
| | | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | `-- Ident: y
|
|
| | | | | | | | | | | | |-- DivOp: /
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | `-- IntConst: 2
|
|
| | | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | | `-- Ident: i
|
|
| | | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | |-- addExp
|
|
| | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | `-- Ident: i
|
|
| | | | | | | | | | | | |-- AddOp: +
|
|
| | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | `-- IntConst: 1
|
|
| | | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | | `-- R_BRACE: }
|
|
| | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | `-- Ident: sum
|
|
| | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | |-- 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
|
|
| | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | `-- Ident: x
|
|
| | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | `-- Ident: al
|
|
| | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | `-- Ident: y
|
|
| | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | `-- Ident: c
|
|
| | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | |-- While: while
|
|
| | | | | | | | | | |-- L_PAREN: (
|
|
| | | | | | | | | | |-- cond
|
|
| | | | | | | | | | | `-- lOrExp
|
|
| | | | | | | | | | | `-- lAndExp
|
|
| | | | | | | | | | | `-- eqExp
|
|
| | | | | | | | | | | `-- relExp
|
|
| | | | | | | | | | | |-- relExp
|
|
| | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | `-- Ident: i
|
|
| | | | | | | | | | | |-- LtOp: <
|
|
| | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | `-- IntConst: 16
|
|
| | | | | | | | | | |-- R_PAREN: )
|
|
| | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | `-- block
|
|
| | | | | | | | | | |-- L_BRACE: {
|
|
| | | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | |-- If: if
|
|
| | | | | | | | | | | |-- L_PAREN: (
|
|
| | | | | | | | | | | |-- cond
|
|
| | | | | | | | | | | | `-- lOrExp
|
|
| | | | | | | | | | | | `-- lAndExp
|
|
| | | | | | | | | | | | |-- lAndExp
|
|
| | | | | | | | | | | | | `-- eqExp
|
|
| | | | | | | | | | | | | `-- relExp
|
|
| | | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | | `-- Ident: x
|
|
| | | | | | | | | | | | | |-- ModOp: %
|
|
| | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | | `-- IntConst: 2
|
|
| | | | | | | | | | | | |-- AndOp: &&
|
|
| | | | | | | | | | | | `-- eqExp
|
|
| | | | | | | | | | | | `-- relExp
|
|
| | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | `-- Ident: y
|
|
| | | | | | | | | | | | |-- ModOp: %
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | `-- IntConst: 2
|
|
| | | | | | | | | | | |-- R_PAREN: )
|
|
| | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | `-- block
|
|
| | | | | | | | | | | |-- L_BRACE: {
|
|
| | | | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | | |-- addExp
|
|
| | | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | | | | | | |-- AddOp: +
|
|
| | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | | | `-- IntConst: 1
|
|
| | | | | | | | | | | | | |-- MulOp: *
|
|
| | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | |-- Ident: SHIFT_TABLE
|
|
| | | | | | | | | | | | | |-- L_BRACKET: [
|
|
| | | | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | | `-- Ident: i
|
|
| | | | | | | | | | | | | `-- R_BRACKET: ]
|
|
| | | | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | | | `-- R_BRACE: }
|
|
| | | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | | `-- Ident: x
|
|
| | | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | `-- Ident: x
|
|
| | | | | | | | | | | | |-- DivOp: /
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | `-- IntConst: 2
|
|
| | | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | | `-- Ident: y
|
|
| | | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | `-- Ident: y
|
|
| | | | | | | | | | | | |-- DivOp: /
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | `-- IntConst: 2
|
|
| | | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | | `-- Ident: i
|
|
| | | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | |-- addExp
|
|
| | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | `-- Ident: i
|
|
| | | | | | | | | | | | |-- AddOp: +
|
|
| | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | `-- IntConst: 1
|
|
| | | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | | `-- R_BRACE: }
|
|
| | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | `-- Ident: c
|
|
| | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | |-- If: if
|
|
| | | | | | | | | | |-- L_PAREN: (
|
|
| | | | | | | | | | |-- cond
|
|
| | | | | | | | | | | `-- lOrExp
|
|
| | | | | | | | | | | `-- lAndExp
|
|
| | | | | | | | | | | `-- eqExp
|
|
| | | | | | | | | | | `-- relExp
|
|
| | | | | | | | | | | |-- relExp
|
|
| | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | |-- L_PAREN: (
|
|
| | | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | | `-- IntConst: 1
|
|
| | | | | | | | | | | | `-- R_PAREN: )
|
|
| | | | | | | | | | | |-- GtOp: >
|
|
| | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | `-- IntConst: 15
|
|
| | | | | | | | | | |-- R_PAREN: )
|
|
| | | | | | | | | | |-- stmt
|
|
| | | | | | | | | | | `-- block
|
|
| | | | | | | | | | | |-- L_BRACE: {
|
|
| | | | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | | `-- IntConst: 0
|
|
| | | | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | | | `-- R_BRACE: }
|
|
| | | | | | | | | | |-- Else: else
|
|
| | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | `-- block
|
|
| | | | | | | | | | |-- L_BRACE: {
|
|
| | | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | | |-- 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
|
|
| | | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | | `-- Ident: x
|
|
| | | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | |-- L_PAREN: (
|
|
| | | | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | | `-- Ident: c
|
|
| | | | | | | | | | | | | `-- R_PAREN: )
|
|
| | | | | | | | | | | | |-- MulOp: *
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | |-- Ident: SHIFT_TABLE
|
|
| | | | | | | | | | | | |-- L_BRACKET: [
|
|
| | | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | | `-- IntConst: 1
|
|
| | | | | | | | | | | | `-- R_BRACKET: ]
|
|
| | | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | | `-- Ident: y
|
|
| | | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | `-- IntConst: 0xffff
|
|
| | | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | |-- While: while
|
|
| | | | | | | | | | | |-- L_PAREN: (
|
|
| | | | | | | | | | | |-- cond
|
|
| | | | | | | | | | | | `-- lOrExp
|
|
| | | | | | | | | | | | `-- lAndExp
|
|
| | | | | | | | | | | | `-- eqExp
|
|
| | | | | | | | | | | | `-- relExp
|
|
| | | | | | | | | | | | |-- relExp
|
|
| | | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | `-- Ident: i
|
|
| | | | | | | | | | | | |-- LtOp: <
|
|
| | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | `-- IntConst: 16
|
|
| | | | | | | | | | | |-- R_PAREN: )
|
|
| | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | `-- block
|
|
| | | | | | | | | | | |-- L_BRACE: {
|
|
| | | | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | | |-- If: if
|
|
| | | | | | | | | | | | |-- L_PAREN: (
|
|
| | | | | | | | | | | | |-- cond
|
|
| | | | | | | | | | | | | `-- lOrExp
|
|
| | | | | | | | | | | | | `-- lAndExp
|
|
| | | | | | | | | | | | | |-- lAndExp
|
|
| | | | | | | | | | | | | | `-- eqExp
|
|
| | | | | | | | | | | | | | `-- relExp
|
|
| | | | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | | | `-- Ident: x
|
|
| | | | | | | | | | | | | | |-- ModOp: %
|
|
| | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | | | `-- IntConst: 2
|
|
| | | | | | | | | | | | | |-- AndOp: &&
|
|
| | | | | | | | | | | | | `-- eqExp
|
|
| | | | | | | | | | | | | `-- relExp
|
|
| | | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | | `-- Ident: y
|
|
| | | | | | | | | | | | | |-- ModOp: %
|
|
| | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | | `-- IntConst: 2
|
|
| | | | | | | | | | | | |-- R_PAREN: )
|
|
| | | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | | `-- block
|
|
| | | | | | | | | | | | |-- L_BRACE: {
|
|
| | | | | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | | | |-- addExp
|
|
| | | | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | | | | | | | |-- AddOp: +
|
|
| | | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | | | | `-- IntConst: 1
|
|
| | | | | | | | | | | | | | |-- MulOp: *
|
|
| | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | | |-- Ident: SHIFT_TABLE
|
|
| | | | | | | | | | | | | | |-- L_BRACKET: [
|
|
| | | | | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | | | `-- Ident: i
|
|
| | | | | | | | | | | | | | `-- R_BRACKET: ]
|
|
| | | | | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | | | | `-- R_BRACE: }
|
|
| | | | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | | | `-- Ident: x
|
|
| | | | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | | `-- Ident: x
|
|
| | | | | | | | | | | | | |-- DivOp: /
|
|
| | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | | `-- IntConst: 2
|
|
| | | | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | | | `-- Ident: y
|
|
| | | | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | | `-- Ident: y
|
|
| | | | | | | | | | | | | |-- DivOp: /
|
|
| | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | | `-- IntConst: 2
|
|
| | | | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | | | `-- Ident: i
|
|
| | | | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | | |-- addExp
|
|
| | | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | | `-- Ident: i
|
|
| | | | | | | | | | | | | |-- AddOp: +
|
|
| | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | | `-- IntConst: 1
|
|
| | | | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | | | `-- R_BRACE: }
|
|
| | | | | | | | | | `-- R_BRACE: }
|
|
| | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | `-- Ident: c
|
|
| | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | `-- Ident: al
|
|
| | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | `-- Ident: sum
|
|
| | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | `-- R_BRACE: }
|
|
| | | | | | | | |-- blockItem
|
|
| | | | | | | | | `-- stmt
|
|
| | | | | | | | | |-- lVal
|
|
| | | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | |-- exp
|
|
| | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | `-- Ident: al
|
|
| | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | `-- R_BRACE: }
|
|
| | | | | | | |-- blockItem
|
|
| | | | | | | | `-- stmt
|
|
| | | | | | | | |-- lVal
|
|
| | | | | | | | | `-- Ident: mres
|
|
| | | | | | | | |-- Assign: =
|
|
| | | | | | | | |-- exp
|
|
| | | | | | | | | `-- addExp
|
|
| | | | | | | | | `-- mulExp
|
|
| | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | `-- lVal
|
|
| | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | `-- Semi: ;
|
|
| | | | | | | `-- R_BRACE: }
|
|
| | | | | | |-- blockItem
|
|
| | | | | | | `-- stmt
|
|
| | | | | | | `-- block
|
|
| | | | | | | |-- L_BRACE: {
|
|
| | | | | | | |-- blockItem
|
|
| | | | | | | | `-- decl
|
|
| | | | | | | | `-- varDecl
|
|
| | | | | | | | |-- bType
|
|
| | | | | | | | | `-- Int: int
|
|
| | | | | | | | |-- varDef
|
|
| | | | | | | | | |-- Ident: al
|
|
| | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | `-- initVal
|
|
| | | | | | | | | `-- exp
|
|
| | | | | | | | | `-- addExp
|
|
| | | | | | | | | `-- mulExp
|
|
| | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | `-- lVal
|
|
| | | | | | | | | `-- Ident: ml
|
|
| | | | | | | | |-- Comma: ,
|
|
| | | | | | | | |-- varDef
|
|
| | | | | | | | | |-- Ident: c
|
|
| | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | `-- initVal
|
|
| | | | | | | | | `-- exp
|
|
| | | | | | | | | `-- addExp
|
|
| | | | | | | | | `-- mulExp
|
|
| | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | `-- lVal
|
|
| | | | | | | | | `-- Ident: ml
|
|
| | | | | | | | |-- Comma: ,
|
|
| | | | | | | | |-- varDef
|
|
| | | | | | | | | `-- Ident: sum
|
|
| | | | | | | | `-- Semi: ;
|
|
| | | | | | | |-- blockItem
|
|
| | | | | | | | `-- stmt
|
|
| | | | | | | | |-- While: while
|
|
| | | | | | | | |-- L_PAREN: (
|
|
| | | | | | | | |-- cond
|
|
| | | | | | | | | `-- lOrExp
|
|
| | | | | | | | | `-- lAndExp
|
|
| | | | | | | | | `-- eqExp
|
|
| | | | | | | | | `-- relExp
|
|
| | | | | | | | | `-- addExp
|
|
| | | | | | | | | `-- mulExp
|
|
| | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | `-- lVal
|
|
| | | | | | | | | `-- Ident: c
|
|
| | | | | | | | |-- R_PAREN: )
|
|
| | | | | | | | `-- stmt
|
|
| | | | | | | | `-- block
|
|
| | | | | | | | |-- L_BRACE: {
|
|
| | | | | | | | |-- blockItem
|
|
| | | | | | | | | `-- stmt
|
|
| | | | | | | | | |-- lVal
|
|
| | | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | |-- 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
|
|
| | | | | | | | | |-- lVal
|
|
| | | | | | | | | | `-- Ident: x
|
|
| | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | |-- exp
|
|
| | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | `-- Ident: al
|
|
| | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | |-- blockItem
|
|
| | | | | | | | | `-- stmt
|
|
| | | | | | | | | |-- lVal
|
|
| | | | | | | | | | `-- Ident: y
|
|
| | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | |-- exp
|
|
| | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | `-- Ident: c
|
|
| | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | |-- blockItem
|
|
| | | | | | | | | `-- stmt
|
|
| | | | | | | | | |-- While: while
|
|
| | | | | | | | | |-- L_PAREN: (
|
|
| | | | | | | | | |-- cond
|
|
| | | | | | | | | | `-- lOrExp
|
|
| | | | | | | | | | `-- lAndExp
|
|
| | | | | | | | | | `-- eqExp
|
|
| | | | | | | | | | `-- relExp
|
|
| | | | | | | | | | |-- relExp
|
|
| | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | `-- Ident: i
|
|
| | | | | | | | | | |-- LtOp: <
|
|
| | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | `-- number
|
|
| | | | | | | | | | `-- IntConst: 16
|
|
| | | | | | | | | |-- R_PAREN: )
|
|
| | | | | | | | | `-- stmt
|
|
| | | | | | | | | `-- block
|
|
| | | | | | | | | |-- L_BRACE: {
|
|
| | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | |-- If: if
|
|
| | | | | | | | | | |-- L_PAREN: (
|
|
| | | | | | | | | | |-- cond
|
|
| | | | | | | | | | | `-- lOrExp
|
|
| | | | | | | | | | | `-- lAndExp
|
|
| | | | | | | | | | | `-- eqExp
|
|
| | | | | | | | | | | `-- relExp
|
|
| | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | `-- Ident: x
|
|
| | | | | | | | | | | |-- ModOp: %
|
|
| | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | `-- IntConst: 2
|
|
| | | | | | | | | | |-- R_PAREN: )
|
|
| | | | | | | | | | |-- stmt
|
|
| | | | | | | | | | | `-- block
|
|
| | | | | | | | | | | |-- L_BRACE: {
|
|
| | | | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | | |-- If: if
|
|
| | | | | | | | | | | | |-- L_PAREN: (
|
|
| | | | | | | | | | | | |-- cond
|
|
| | | | | | | | | | | | | `-- lOrExp
|
|
| | | | | | | | | | | | | `-- lAndExp
|
|
| | | | | | | | | | | | | `-- eqExp
|
|
| | | | | | | | | | | | | |-- eqExp
|
|
| | | | | | | | | | | | | | `-- relExp
|
|
| | | | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | | | `-- Ident: y
|
|
| | | | | | | | | | | | | | |-- ModOp: %
|
|
| | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | | | `-- IntConst: 2
|
|
| | | | | | | | | | | | | |-- EqOp: ==
|
|
| | | | | | | | | | | | | `-- relExp
|
|
| | | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | | `-- IntConst: 0
|
|
| | | | | | | | | | | | |-- R_PAREN: )
|
|
| | | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | | `-- block
|
|
| | | | | | | | | | | | |-- L_BRACE: {
|
|
| | | | | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | | | |-- addExp
|
|
| | | | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | | | | | | | |-- AddOp: +
|
|
| | | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | | | | `-- IntConst: 1
|
|
| | | | | | | | | | | | | | |-- MulOp: *
|
|
| | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | | |-- Ident: SHIFT_TABLE
|
|
| | | | | | | | | | | | | | |-- L_BRACKET: [
|
|
| | | | | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | | | `-- Ident: i
|
|
| | | | | | | | | | | | | | `-- R_BRACKET: ]
|
|
| | | | | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | | | | `-- R_BRACE: }
|
|
| | | | | | | | | | | `-- R_BRACE: }
|
|
| | | | | | | | | | |-- Else: else
|
|
| | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | |-- If: if
|
|
| | | | | | | | | | |-- L_PAREN: (
|
|
| | | | | | | | | | |-- cond
|
|
| | | | | | | | | | | `-- lOrExp
|
|
| | | | | | | | | | | `-- lAndExp
|
|
| | | | | | | | | | | `-- eqExp
|
|
| | | | | | | | | | | `-- relExp
|
|
| | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | `-- Ident: y
|
|
| | | | | | | | | | | |-- ModOp: %
|
|
| | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | `-- IntConst: 2
|
|
| | | | | | | | | | |-- R_PAREN: )
|
|
| | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | `-- block
|
|
| | | | | | | | | | |-- L_BRACE: {
|
|
| | | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | |-- addExp
|
|
| | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | | | | | |-- AddOp: +
|
|
| | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | | `-- IntConst: 1
|
|
| | | | | | | | | | | | |-- MulOp: *
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | |-- Ident: SHIFT_TABLE
|
|
| | | | | | | | | | | | |-- L_BRACKET: [
|
|
| | | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | `-- Ident: i
|
|
| | | | | | | | | | | | `-- R_BRACKET: ]
|
|
| | | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | | `-- R_BRACE: }
|
|
| | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | `-- Ident: x
|
|
| | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | `-- Ident: x
|
|
| | | | | | | | | | | |-- DivOp: /
|
|
| | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | `-- IntConst: 2
|
|
| | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | `-- Ident: y
|
|
| | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | `-- Ident: y
|
|
| | | | | | | | | | | |-- DivOp: /
|
|
| | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | `-- IntConst: 2
|
|
| | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | `-- Ident: i
|
|
| | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | |-- addExp
|
|
| | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | `-- Ident: i
|
|
| | | | | | | | | | | |-- AddOp: +
|
|
| | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | `-- IntConst: 1
|
|
| | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | `-- R_BRACE: }
|
|
| | | | | | | | |-- blockItem
|
|
| | | | | | | | | `-- stmt
|
|
| | | | | | | | | |-- lVal
|
|
| | | | | | | | | | `-- Ident: sum
|
|
| | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | |-- exp
|
|
| | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | |-- blockItem
|
|
| | | | | | | | | `-- stmt
|
|
| | | | | | | | | |-- lVal
|
|
| | | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | |-- 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
|
|
| | | | | | | | | |-- lVal
|
|
| | | | | | | | | | `-- Ident: x
|
|
| | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | |-- exp
|
|
| | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | `-- Ident: al
|
|
| | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | |-- blockItem
|
|
| | | | | | | | | `-- stmt
|
|
| | | | | | | | | |-- lVal
|
|
| | | | | | | | | | `-- Ident: y
|
|
| | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | |-- exp
|
|
| | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | `-- Ident: c
|
|
| | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | |-- blockItem
|
|
| | | | | | | | | `-- stmt
|
|
| | | | | | | | | |-- While: while
|
|
| | | | | | | | | |-- L_PAREN: (
|
|
| | | | | | | | | |-- cond
|
|
| | | | | | | | | | `-- lOrExp
|
|
| | | | | | | | | | `-- lAndExp
|
|
| | | | | | | | | | `-- eqExp
|
|
| | | | | | | | | | `-- relExp
|
|
| | | | | | | | | | |-- relExp
|
|
| | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | `-- Ident: i
|
|
| | | | | | | | | | |-- LtOp: <
|
|
| | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | `-- number
|
|
| | | | | | | | | | `-- IntConst: 16
|
|
| | | | | | | | | |-- R_PAREN: )
|
|
| | | | | | | | | `-- stmt
|
|
| | | | | | | | | `-- block
|
|
| | | | | | | | | |-- L_BRACE: {
|
|
| | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | |-- If: if
|
|
| | | | | | | | | | |-- L_PAREN: (
|
|
| | | | | | | | | | |-- cond
|
|
| | | | | | | | | | | `-- lOrExp
|
|
| | | | | | | | | | | `-- lAndExp
|
|
| | | | | | | | | | | |-- lAndExp
|
|
| | | | | | | | | | | | `-- eqExp
|
|
| | | | | | | | | | | | `-- relExp
|
|
| | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | `-- Ident: x
|
|
| | | | | | | | | | | | |-- ModOp: %
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | `-- IntConst: 2
|
|
| | | | | | | | | | | |-- AndOp: &&
|
|
| | | | | | | | | | | `-- eqExp
|
|
| | | | | | | | | | | `-- relExp
|
|
| | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | `-- Ident: y
|
|
| | | | | | | | | | | |-- ModOp: %
|
|
| | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | `-- IntConst: 2
|
|
| | | | | | | | | | |-- R_PAREN: )
|
|
| | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | `-- block
|
|
| | | | | | | | | | |-- L_BRACE: {
|
|
| | | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | |-- addExp
|
|
| | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | | | | | |-- AddOp: +
|
|
| | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | | `-- IntConst: 1
|
|
| | | | | | | | | | | | |-- MulOp: *
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | |-- Ident: SHIFT_TABLE
|
|
| | | | | | | | | | | | |-- L_BRACKET: [
|
|
| | | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | `-- Ident: i
|
|
| | | | | | | | | | | | `-- R_BRACKET: ]
|
|
| | | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | | `-- R_BRACE: }
|
|
| | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | `-- Ident: x
|
|
| | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | `-- Ident: x
|
|
| | | | | | | | | | | |-- DivOp: /
|
|
| | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | `-- IntConst: 2
|
|
| | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | `-- Ident: y
|
|
| | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | `-- Ident: y
|
|
| | | | | | | | | | | |-- DivOp: /
|
|
| | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | `-- IntConst: 2
|
|
| | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | `-- Ident: i
|
|
| | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | |-- addExp
|
|
| | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | `-- Ident: i
|
|
| | | | | | | | | | | |-- AddOp: +
|
|
| | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | `-- IntConst: 1
|
|
| | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | `-- R_BRACE: }
|
|
| | | | | | | | |-- blockItem
|
|
| | | | | | | | | `-- stmt
|
|
| | | | | | | | | |-- lVal
|
|
| | | | | | | | | | `-- Ident: c
|
|
| | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | |-- exp
|
|
| | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | |-- blockItem
|
|
| | | | | | | | | `-- stmt
|
|
| | | | | | | | | |-- If: if
|
|
| | | | | | | | | |-- L_PAREN: (
|
|
| | | | | | | | | |-- cond
|
|
| | | | | | | | | | `-- lOrExp
|
|
| | | | | | | | | | `-- lAndExp
|
|
| | | | | | | | | | `-- eqExp
|
|
| | | | | | | | | | `-- relExp
|
|
| | | | | | | | | | |-- relExp
|
|
| | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | |-- L_PAREN: (
|
|
| | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | `-- IntConst: 1
|
|
| | | | | | | | | | | `-- R_PAREN: )
|
|
| | | | | | | | | | |-- GtOp: >
|
|
| | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | `-- number
|
|
| | | | | | | | | | `-- IntConst: 15
|
|
| | | | | | | | | |-- R_PAREN: )
|
|
| | | | | | | | | |-- stmt
|
|
| | | | | | | | | | `-- block
|
|
| | | | | | | | | | |-- L_BRACE: {
|
|
| | | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | `-- IntConst: 0
|
|
| | | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | | `-- R_BRACE: }
|
|
| | | | | | | | | |-- Else: else
|
|
| | | | | | | | | `-- stmt
|
|
| | | | | | | | | `-- block
|
|
| | | | | | | | | |-- L_BRACE: {
|
|
| | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | |-- 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
|
|
| | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | `-- Ident: x
|
|
| | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | |-- L_PAREN: (
|
|
| | | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | `-- Ident: c
|
|
| | | | | | | | | | | | `-- R_PAREN: )
|
|
| | | | | | | | | | | |-- MulOp: *
|
|
| | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | |-- Ident: SHIFT_TABLE
|
|
| | | | | | | | | | | |-- L_BRACKET: [
|
|
| | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | `-- IntConst: 1
|
|
| | | | | | | | | | | `-- R_BRACKET: ]
|
|
| | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | `-- Ident: y
|
|
| | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | `-- IntConst: 0xffff
|
|
| | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | |-- While: while
|
|
| | | | | | | | | | |-- L_PAREN: (
|
|
| | | | | | | | | | |-- cond
|
|
| | | | | | | | | | | `-- lOrExp
|
|
| | | | | | | | | | | `-- lAndExp
|
|
| | | | | | | | | | | `-- eqExp
|
|
| | | | | | | | | | | `-- relExp
|
|
| | | | | | | | | | | |-- relExp
|
|
| | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | `-- Ident: i
|
|
| | | | | | | | | | | |-- LtOp: <
|
|
| | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | `-- IntConst: 16
|
|
| | | | | | | | | | |-- R_PAREN: )
|
|
| | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | `-- block
|
|
| | | | | | | | | | |-- L_BRACE: {
|
|
| | | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | |-- If: if
|
|
| | | | | | | | | | | |-- L_PAREN: (
|
|
| | | | | | | | | | | |-- cond
|
|
| | | | | | | | | | | | `-- lOrExp
|
|
| | | | | | | | | | | | `-- lAndExp
|
|
| | | | | | | | | | | | |-- lAndExp
|
|
| | | | | | | | | | | | | `-- eqExp
|
|
| | | | | | | | | | | | | `-- relExp
|
|
| | | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | | `-- Ident: x
|
|
| | | | | | | | | | | | | |-- ModOp: %
|
|
| | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | | `-- IntConst: 2
|
|
| | | | | | | | | | | | |-- AndOp: &&
|
|
| | | | | | | | | | | | `-- eqExp
|
|
| | | | | | | | | | | | `-- relExp
|
|
| | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | `-- Ident: y
|
|
| | | | | | | | | | | | |-- ModOp: %
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | `-- IntConst: 2
|
|
| | | | | | | | | | | |-- R_PAREN: )
|
|
| | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | `-- block
|
|
| | | | | | | | | | | |-- L_BRACE: {
|
|
| | | | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | | |-- addExp
|
|
| | | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | | | | | | |-- AddOp: +
|
|
| | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | | | `-- IntConst: 1
|
|
| | | | | | | | | | | | | |-- MulOp: *
|
|
| | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | |-- Ident: SHIFT_TABLE
|
|
| | | | | | | | | | | | | |-- L_BRACKET: [
|
|
| | | | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | | `-- Ident: i
|
|
| | | | | | | | | | | | | `-- R_BRACKET: ]
|
|
| | | | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | | | `-- R_BRACE: }
|
|
| | | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | | `-- Ident: x
|
|
| | | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | `-- Ident: x
|
|
| | | | | | | | | | | | |-- DivOp: /
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | `-- IntConst: 2
|
|
| | | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | | `-- Ident: y
|
|
| | | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | `-- Ident: y
|
|
| | | | | | | | | | | | |-- DivOp: /
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | `-- IntConst: 2
|
|
| | | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | | `-- Ident: i
|
|
| | | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | |-- addExp
|
|
| | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | `-- Ident: i
|
|
| | | | | | | | | | | | |-- AddOp: +
|
|
| | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | `-- IntConst: 1
|
|
| | | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | | `-- R_BRACE: }
|
|
| | | | | | | | | `-- R_BRACE: }
|
|
| | | | | | | | |-- blockItem
|
|
| | | | | | | | | `-- stmt
|
|
| | | | | | | | | |-- lVal
|
|
| | | | | | | | | | `-- Ident: c
|
|
| | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | |-- exp
|
|
| | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | |-- blockItem
|
|
| | | | | | | | | `-- stmt
|
|
| | | | | | | | | |-- lVal
|
|
| | | | | | | | | | `-- Ident: al
|
|
| | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | |-- exp
|
|
| | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | `-- Ident: sum
|
|
| | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | `-- R_BRACE: }
|
|
| | | | | | | |-- blockItem
|
|
| | | | | | | | `-- stmt
|
|
| | | | | | | | |-- lVal
|
|
| | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | |-- Assign: =
|
|
| | | | | | | | |-- exp
|
|
| | | | | | | | | `-- addExp
|
|
| | | | | | | | | `-- mulExp
|
|
| | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | `-- lVal
|
|
| | | | | | | | | `-- Ident: al
|
|
| | | | | | | | `-- Semi: ;
|
|
| | | | | | | `-- R_BRACE: }
|
|
| | | | | | |-- blockItem
|
|
| | | | | | | `-- stmt
|
|
| | | | | | | |-- lVal
|
|
| | | | | | | | `-- Ident: ml
|
|
| | | | | | | |-- Assign: =
|
|
| | | | | | | |-- exp
|
|
| | | | | | | | `-- addExp
|
|
| | | | | | | | `-- mulExp
|
|
| | | | | | | | `-- unaryExp
|
|
| | | | | | | | `-- primaryExp
|
|
| | | | | | | | `-- lVal
|
|
| | | | | | | | `-- Ident: ans
|
|
| | | | | | | `-- Semi: ;
|
|
| | | | | | |-- blockItem
|
|
| | | | | | | `-- stmt
|
|
| | | | | | | |-- lVal
|
|
| | | | | | | | `-- Ident: x
|
|
| | | | | | | |-- Assign: =
|
|
| | | | | | | |-- exp
|
|
| | | | | | | | `-- addExp
|
|
| | | | | | | | `-- mulExp
|
|
| | | | | | | | `-- unaryExp
|
|
| | | | | | | | `-- primaryExp
|
|
| | | | | | | | `-- lVal
|
|
| | | | | | | | `-- Ident: mr
|
|
| | | | | | | `-- Semi: ;
|
|
| | | | | | |-- blockItem
|
|
| | | | | | | `-- stmt
|
|
| | | | | | | |-- lVal
|
|
| | | | | | | | `-- Ident: y
|
|
| | | | | | | |-- Assign: =
|
|
| | | | | | | |-- exp
|
|
| | | | | | | | `-- addExp
|
|
| | | | | | | | `-- mulExp
|
|
| | | | | | | | `-- unaryExp
|
|
| | | | | | | | `-- primaryExp
|
|
| | | | | | | | `-- number
|
|
| | | | | | | | `-- IntConst: 1
|
|
| | | | | | | `-- Semi: ;
|
|
| | | | | | |-- blockItem
|
|
| | | | | | | `-- stmt
|
|
| | | | | | | |-- If: if
|
|
| | | | | | | |-- L_PAREN: (
|
|
| | | | | | | |-- cond
|
|
| | | | | | | | `-- lOrExp
|
|
| | | | | | | | `-- lAndExp
|
|
| | | | | | | | `-- eqExp
|
|
| | | | | | | | `-- relExp
|
|
| | | | | | | | |-- relExp
|
|
| | | | | | | | | `-- addExp
|
|
| | | | | | | | | `-- mulExp
|
|
| | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | `-- lVal
|
|
| | | | | | | | | `-- Ident: y
|
|
| | | | | | | | |-- GeOp: >=
|
|
| | | | | | | | `-- addExp
|
|
| | | | | | | | `-- mulExp
|
|
| | | | | | | | `-- unaryExp
|
|
| | | | | | | | `-- primaryExp
|
|
| | | | | | | | `-- number
|
|
| | | | | | | | `-- IntConst: 15
|
|
| | | | | | | |-- R_PAREN: )
|
|
| | | | | | | |-- stmt
|
|
| | | | | | | | `-- block
|
|
| | | | | | | | |-- L_BRACE: {
|
|
| | | | | | | | |-- blockItem
|
|
| | | | | | | | | `-- stmt
|
|
| | | | | | | | | |-- If: if
|
|
| | | | | | | | | |-- L_PAREN: (
|
|
| | | | | | | | | |-- cond
|
|
| | | | | | | | | | `-- lOrExp
|
|
| | | | | | | | | | `-- lAndExp
|
|
| | | | | | | | | | `-- eqExp
|
|
| | | | | | | | | | `-- relExp
|
|
| | | | | | | | | | |-- relExp
|
|
| | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | `-- Ident: x
|
|
| | | | | | | | | | |-- LtOp: <
|
|
| | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | `-- number
|
|
| | | | | | | | | | `-- IntConst: 0
|
|
| | | | | | | | | |-- R_PAREN: )
|
|
| | | | | | | | | |-- stmt
|
|
| | | | | | | | | | `-- block
|
|
| | | | | | | | | | |-- L_BRACE: {
|
|
| | | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | `-- IntConst: 0xffff
|
|
| | | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | | `-- R_BRACE: }
|
|
| | | | | | | | | |-- Else: else
|
|
| | | | | | | | | `-- stmt
|
|
| | | | | | | | | `-- block
|
|
| | | | | | | | | |-- L_BRACE: {
|
|
| | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | `-- IntConst: 0
|
|
| | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | `-- R_BRACE: }
|
|
| | | | | | | | `-- R_BRACE: }
|
|
| | | | | | | |-- Else: else
|
|
| | | | | | | `-- stmt
|
|
| | | | | | | |-- If: if
|
|
| | | | | | | |-- L_PAREN: (
|
|
| | | | | | | |-- cond
|
|
| | | | | | | | `-- lOrExp
|
|
| | | | | | | | `-- lAndExp
|
|
| | | | | | | | `-- eqExp
|
|
| | | | | | | | `-- relExp
|
|
| | | | | | | | |-- relExp
|
|
| | | | | | | | | `-- addExp
|
|
| | | | | | | | | `-- mulExp
|
|
| | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | `-- lVal
|
|
| | | | | | | | | `-- Ident: y
|
|
| | | | | | | | |-- GtOp: >
|
|
| | | | | | | | `-- addExp
|
|
| | | | | | | | `-- mulExp
|
|
| | | | | | | | `-- unaryExp
|
|
| | | | | | | | `-- primaryExp
|
|
| | | | | | | | `-- number
|
|
| | | | | | | | `-- IntConst: 0
|
|
| | | | | | | |-- R_PAREN: )
|
|
| | | | | | | |-- stmt
|
|
| | | | | | | | `-- block
|
|
| | | | | | | | |-- L_BRACE: {
|
|
| | | | | | | | |-- blockItem
|
|
| | | | | | | | | `-- stmt
|
|
| | | | | | | | | |-- If: if
|
|
| | | | | | | | | |-- L_PAREN: (
|
|
| | | | | | | | | |-- cond
|
|
| | | | | | | | | | `-- lOrExp
|
|
| | | | | | | | | | `-- lAndExp
|
|
| | | | | | | | | | `-- eqExp
|
|
| | | | | | | | | | `-- relExp
|
|
| | | | | | | | | | |-- relExp
|
|
| | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | `-- Ident: x
|
|
| | | | | | | | | | |-- GtOp: >
|
|
| | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | `-- number
|
|
| | | | | | | | | | `-- IntConst: 0x7fff
|
|
| | | | | | | | | |-- R_PAREN: )
|
|
| | | | | | | | | |-- stmt
|
|
| | | | | | | | | | `-- block
|
|
| | | | | | | | | | |-- L_BRACE: {
|
|
| | | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | | `-- Ident: x
|
|
| | | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | `-- Ident: x
|
|
| | | | | | | | | | | | |-- DivOp: /
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | |-- Ident: SHIFT_TABLE
|
|
| | | | | | | | | | | | |-- L_BRACKET: [
|
|
| | | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | `-- Ident: y
|
|
| | | | | | | | | | | | `-- R_BRACKET: ]
|
|
| | | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | |-- addExp
|
|
| | | | | | | | | | | | | |-- addExp
|
|
| | | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | | `-- Ident: x
|
|
| | | | | | | | | | | | | |-- AddOp: +
|
|
| | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | | `-- IntConst: 65536
|
|
| | | | | | | | | | | | |-- SubOp: -
|
|
| | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | |-- Ident: SHIFT_TABLE
|
|
| | | | | | | | | | | | |-- L_BRACKET: [
|
|
| | | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | | |-- addExp
|
|
| | | | | | | | | | | | | | |-- addExp
|
|
| | | | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | | | | `-- IntConst: 15
|
|
| | | | | | | | | | | | | | |-- SubOp: -
|
|
| | | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | | | `-- Ident: y
|
|
| | | | | | | | | | | | | |-- AddOp: +
|
|
| | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | | `-- IntConst: 1
|
|
| | | | | | | | | | | | `-- R_BRACKET: ]
|
|
| | | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | | `-- R_BRACE: }
|
|
| | | | | | | | | |-- Else: else
|
|
| | | | | | | | | `-- stmt
|
|
| | | | | | | | | `-- block
|
|
| | | | | | | | | |-- L_BRACE: {
|
|
| | | | | | | | | |-- blockItem
|
|
| | | | | | | | | | `-- stmt
|
|
| | | | | | | | | | |-- lVal
|
|
| | | | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | `-- Ident: x
|
|
| | | | | | | | | | | |-- DivOp: /
|
|
| | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | |-- Ident: SHIFT_TABLE
|
|
| | | | | | | | | | | |-- L_BRACKET: [
|
|
| | | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | `-- Ident: y
|
|
| | | | | | | | | | | `-- R_BRACKET: ]
|
|
| | | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | | `-- R_BRACE: }
|
|
| | | | | | | | `-- R_BRACE: }
|
|
| | | | | | | |-- Else: else
|
|
| | | | | | | `-- stmt
|
|
| | | | | | | `-- block
|
|
| | | | | | | |-- L_BRACE: {
|
|
| | | | | | | |-- blockItem
|
|
| | | | | | | | `-- stmt
|
|
| | | | | | | | |-- lVal
|
|
| | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | |-- Assign: =
|
|
| | | | | | | | |-- exp
|
|
| | | | | | | | | `-- addExp
|
|
| | | | | | | | | `-- mulExp
|
|
| | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | `-- lVal
|
|
| | | | | | | | | `-- Ident: x
|
|
| | | | | | | | `-- Semi: ;
|
|
| | | | | | | `-- R_BRACE: }
|
|
| | | | | | |-- blockItem
|
|
| | | | | | | `-- stmt
|
|
| | | | | | | |-- lVal
|
|
| | | | | | | | `-- Ident: mr
|
|
| | | | | | | |-- Assign: =
|
|
| | | | | | | |-- exp
|
|
| | | | | | | | `-- addExp
|
|
| | | | | | | | `-- mulExp
|
|
| | | | | | | | `-- unaryExp
|
|
| | | | | | | | `-- primaryExp
|
|
| | | | | | | | `-- lVal
|
|
| | | | | | | | `-- Ident: ans
|
|
| | | | | | | `-- Semi: ;
|
|
| | | | | | `-- R_BRACE: }
|
|
| | | | | |-- blockItem
|
|
| | | | | | `-- stmt
|
|
| | | | | | |-- lVal
|
|
| | | | | | | `-- Ident: ans
|
|
| | | | | | |-- Assign: =
|
|
| | | | | | |-- exp
|
|
| | | | | | | `-- addExp
|
|
| | | | | | | `-- mulExp
|
|
| | | | | | | `-- unaryExp
|
|
| | | | | | | `-- primaryExp
|
|
| | | | | | | `-- lVal
|
|
| | | | | | | `-- Ident: mres
|
|
| | | | | | `-- Semi: ;
|
|
| | | | | `-- R_BRACE: }
|
|
| | | | |-- blockItem
|
|
| | | | | `-- stmt
|
|
| | | | | |-- lVal
|
|
| | | | | | `-- Ident: pl
|
|
| | | | | |-- Assign: =
|
|
| | | | | |-- exp
|
|
| | | | | | `-- addExp
|
|
| | | | | | `-- mulExp
|
|
| | | | | | `-- unaryExp
|
|
| | | | | | `-- primaryExp
|
|
| | | | | | `-- lVal
|
|
| | | | | | `-- Ident: ans
|
|
| | | | | `-- Semi: ;
|
|
| | | | |-- blockItem
|
|
| | | | | `-- stmt
|
|
| | | | | |-- lVal
|
|
| | | | | | `-- Ident: x
|
|
| | | | | |-- Assign: =
|
|
| | | | | |-- exp
|
|
| | | | | | `-- addExp
|
|
| | | | | | `-- mulExp
|
|
| | | | | | `-- unaryExp
|
|
| | | | | | `-- primaryExp
|
|
| | | | | | `-- lVal
|
|
| | | | | | `-- Ident: pr
|
|
| | | | | `-- Semi: ;
|
|
| | | | |-- blockItem
|
|
| | | | | `-- stmt
|
|
| | | | | |-- lVal
|
|
| | | | | | `-- Ident: y
|
|
| | | | | |-- Assign: =
|
|
| | | | | |-- exp
|
|
| | | | | | `-- addExp
|
|
| | | | | | `-- mulExp
|
|
| | | | | | `-- unaryExp
|
|
| | | | | | `-- primaryExp
|
|
| | | | | | `-- number
|
|
| | | | | | `-- IntConst: 1
|
|
| | | | | `-- Semi: ;
|
|
| | | | |-- blockItem
|
|
| | | | | `-- stmt
|
|
| | | | | |-- If: if
|
|
| | | | | |-- L_PAREN: (
|
|
| | | | | |-- cond
|
|
| | | | | | `-- lOrExp
|
|
| | | | | | `-- lAndExp
|
|
| | | | | | `-- eqExp
|
|
| | | | | | `-- relExp
|
|
| | | | | | |-- relExp
|
|
| | | | | | | `-- addExp
|
|
| | | | | | | `-- mulExp
|
|
| | | | | | | `-- unaryExp
|
|
| | | | | | | `-- primaryExp
|
|
| | | | | | | `-- lVal
|
|
| | | | | | | `-- Ident: y
|
|
| | | | | | |-- GeOp: >=
|
|
| | | | | | `-- addExp
|
|
| | | | | | `-- mulExp
|
|
| | | | | | `-- unaryExp
|
|
| | | | | | `-- primaryExp
|
|
| | | | | | `-- number
|
|
| | | | | | `-- IntConst: 15
|
|
| | | | | |-- R_PAREN: )
|
|
| | | | | |-- stmt
|
|
| | | | | | `-- block
|
|
| | | | | | |-- L_BRACE: {
|
|
| | | | | | |-- blockItem
|
|
| | | | | | | `-- stmt
|
|
| | | | | | | |-- If: if
|
|
| | | | | | | |-- L_PAREN: (
|
|
| | | | | | | |-- cond
|
|
| | | | | | | | `-- lOrExp
|
|
| | | | | | | | `-- lAndExp
|
|
| | | | | | | | `-- eqExp
|
|
| | | | | | | | `-- relExp
|
|
| | | | | | | | |-- relExp
|
|
| | | | | | | | | `-- addExp
|
|
| | | | | | | | | `-- mulExp
|
|
| | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | `-- lVal
|
|
| | | | | | | | | `-- Ident: x
|
|
| | | | | | | | |-- LtOp: <
|
|
| | | | | | | | `-- addExp
|
|
| | | | | | | | `-- mulExp
|
|
| | | | | | | | `-- unaryExp
|
|
| | | | | | | | `-- primaryExp
|
|
| | | | | | | | `-- number
|
|
| | | | | | | | `-- IntConst: 0
|
|
| | | | | | | |-- R_PAREN: )
|
|
| | | | | | | |-- stmt
|
|
| | | | | | | | `-- block
|
|
| | | | | | | | |-- L_BRACE: {
|
|
| | | | | | | | |-- blockItem
|
|
| | | | | | | | | `-- stmt
|
|
| | | | | | | | | |-- lVal
|
|
| | | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | |-- exp
|
|
| | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | `-- number
|
|
| | | | | | | | | | `-- IntConst: 0xffff
|
|
| | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | `-- R_BRACE: }
|
|
| | | | | | | |-- Else: else
|
|
| | | | | | | `-- stmt
|
|
| | | | | | | `-- block
|
|
| | | | | | | |-- L_BRACE: {
|
|
| | | | | | | |-- blockItem
|
|
| | | | | | | | `-- stmt
|
|
| | | | | | | | |-- lVal
|
|
| | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | |-- Assign: =
|
|
| | | | | | | | |-- exp
|
|
| | | | | | | | | `-- addExp
|
|
| | | | | | | | | `-- mulExp
|
|
| | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | `-- number
|
|
| | | | | | | | | `-- IntConst: 0
|
|
| | | | | | | | `-- Semi: ;
|
|
| | | | | | | `-- R_BRACE: }
|
|
| | | | | | `-- R_BRACE: }
|
|
| | | | | |-- Else: else
|
|
| | | | | `-- stmt
|
|
| | | | | |-- If: if
|
|
| | | | | |-- L_PAREN: (
|
|
| | | | | |-- cond
|
|
| | | | | | `-- lOrExp
|
|
| | | | | | `-- lAndExp
|
|
| | | | | | `-- eqExp
|
|
| | | | | | `-- relExp
|
|
| | | | | | |-- relExp
|
|
| | | | | | | `-- addExp
|
|
| | | | | | | `-- mulExp
|
|
| | | | | | | `-- unaryExp
|
|
| | | | | | | `-- primaryExp
|
|
| | | | | | | `-- lVal
|
|
| | | | | | | `-- Ident: y
|
|
| | | | | | |-- GtOp: >
|
|
| | | | | | `-- addExp
|
|
| | | | | | `-- mulExp
|
|
| | | | | | `-- unaryExp
|
|
| | | | | | `-- primaryExp
|
|
| | | | | | `-- number
|
|
| | | | | | `-- IntConst: 0
|
|
| | | | | |-- R_PAREN: )
|
|
| | | | | |-- stmt
|
|
| | | | | | `-- block
|
|
| | | | | | |-- L_BRACE: {
|
|
| | | | | | |-- blockItem
|
|
| | | | | | | `-- stmt
|
|
| | | | | | | |-- If: if
|
|
| | | | | | | |-- L_PAREN: (
|
|
| | | | | | | |-- cond
|
|
| | | | | | | | `-- lOrExp
|
|
| | | | | | | | `-- lAndExp
|
|
| | | | | | | | `-- eqExp
|
|
| | | | | | | | `-- relExp
|
|
| | | | | | | | |-- relExp
|
|
| | | | | | | | | `-- addExp
|
|
| | | | | | | | | `-- mulExp
|
|
| | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | `-- lVal
|
|
| | | | | | | | | `-- Ident: x
|
|
| | | | | | | | |-- GtOp: >
|
|
| | | | | | | | `-- addExp
|
|
| | | | | | | | `-- mulExp
|
|
| | | | | | | | `-- unaryExp
|
|
| | | | | | | | `-- primaryExp
|
|
| | | | | | | | `-- number
|
|
| | | | | | | | `-- IntConst: 0x7fff
|
|
| | | | | | | |-- R_PAREN: )
|
|
| | | | | | | |-- stmt
|
|
| | | | | | | | `-- block
|
|
| | | | | | | | |-- L_BRACE: {
|
|
| | | | | | | | |-- blockItem
|
|
| | | | | | | | | `-- stmt
|
|
| | | | | | | | | |-- lVal
|
|
| | | | | | | | | | `-- Ident: x
|
|
| | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | |-- exp
|
|
| | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | `-- Ident: x
|
|
| | | | | | | | | | |-- DivOp: /
|
|
| | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | |-- Ident: SHIFT_TABLE
|
|
| | | | | | | | | | |-- L_BRACKET: [
|
|
| | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | `-- Ident: y
|
|
| | | | | | | | | | `-- R_BRACKET: ]
|
|
| | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | |-- blockItem
|
|
| | | | | | | | | `-- stmt
|
|
| | | | | | | | | |-- lVal
|
|
| | | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | | |-- Assign: =
|
|
| | | | | | | | | |-- exp
|
|
| | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | |-- addExp
|
|
| | | | | | | | | | | |-- addExp
|
|
| | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | `-- Ident: x
|
|
| | | | | | | | | | | |-- AddOp: +
|
|
| | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | `-- IntConst: 65536
|
|
| | | | | | | | | | |-- SubOp: -
|
|
| | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | |-- Ident: SHIFT_TABLE
|
|
| | | | | | | | | | |-- L_BRACKET: [
|
|
| | | | | | | | | | |-- exp
|
|
| | | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | | |-- addExp
|
|
| | | | | | | | | | | | |-- addExp
|
|
| | | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | | | `-- IntConst: 15
|
|
| | | | | | | | | | | | |-- SubOp: -
|
|
| | | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | | | `-- Ident: y
|
|
| | | | | | | | | | | |-- AddOp: +
|
|
| | | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | | `-- number
|
|
| | | | | | | | | | | `-- IntConst: 1
|
|
| | | | | | | | | | `-- R_BRACKET: ]
|
|
| | | | | | | | | `-- Semi: ;
|
|
| | | | | | | | `-- R_BRACE: }
|
|
| | | | | | | |-- Else: else
|
|
| | | | | | | `-- stmt
|
|
| | | | | | | `-- block
|
|
| | | | | | | |-- L_BRACE: {
|
|
| | | | | | | |-- blockItem
|
|
| | | | | | | | `-- stmt
|
|
| | | | | | | | |-- lVal
|
|
| | | | | | | | | `-- Ident: ans
|
|
| | | | | | | | |-- Assign: =
|
|
| | | | | | | | |-- exp
|
|
| | | | | | | | | `-- addExp
|
|
| | | | | | | | | `-- mulExp
|
|
| | | | | | | | | |-- mulExp
|
|
| | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | `-- Ident: x
|
|
| | | | | | | | | |-- DivOp: /
|
|
| | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | `-- lVal
|
|
| | | | | | | | | |-- Ident: SHIFT_TABLE
|
|
| | | | | | | | | |-- L_BRACKET: [
|
|
| | | | | | | | | |-- exp
|
|
| | | | | | | | | | `-- addExp
|
|
| | | | | | | | | | `-- mulExp
|
|
| | | | | | | | | | `-- unaryExp
|
|
| | | | | | | | | | `-- primaryExp
|
|
| | | | | | | | | | `-- lVal
|
|
| | | | | | | | | | `-- Ident: y
|
|
| | | | | | | | | `-- R_BRACKET: ]
|
|
| | | | | | | | `-- Semi: ;
|
|
| | | | | | | `-- R_BRACE: }
|
|
| | | | | | `-- R_BRACE: }
|
|
| | | | | |-- Else: else
|
|
| | | | | `-- stmt
|
|
| | | | | `-- block
|
|
| | | | | |-- L_BRACE: {
|
|
| | | | | |-- blockItem
|
|
| | | | | | `-- stmt
|
|
| | | | | | |-- lVal
|
|
| | | | | | | `-- Ident: ans
|
|
| | | | | | |-- Assign: =
|
|
| | | | | | |-- exp
|
|
| | | | | | | `-- addExp
|
|
| | | | | | | `-- mulExp
|
|
| | | | | | | `-- unaryExp
|
|
| | | | | | | `-- primaryExp
|
|
| | | | | | | `-- lVal
|
|
| | | | | | | `-- Ident: x
|
|
| | | | | | `-- Semi: ;
|
|
| | | | | `-- R_BRACE: }
|
|
| | | | |-- blockItem
|
|
| | | | | `-- stmt
|
|
| | | | | |-- lVal
|
|
| | | | | | `-- Ident: pr
|
|
| | | | | |-- Assign: =
|
|
| | | | | |-- exp
|
|
| | | | | | `-- addExp
|
|
| | | | | | `-- mulExp
|
|
| | | | | | `-- unaryExp
|
|
| | | | | | `-- primaryExp
|
|
| | | | | | `-- lVal
|
|
| | | | | | `-- Ident: ans
|
|
| | | | | `-- Semi: ;
|
|
| | | | `-- R_BRACE: }
|
|
| | | |-- blockItem
|
|
| | | | `-- stmt
|
|
| | | | |-- lVal
|
|
| | | | | `-- Ident: ans
|
|
| | | | |-- Assign: =
|
|
| | | | |-- exp
|
|
| | | | | `-- addExp
|
|
| | | | | `-- mulExp
|
|
| | | | | `-- unaryExp
|
|
| | | | | `-- primaryExp
|
|
| | | | | `-- lVal
|
|
| | | | | `-- Ident: pres
|
|
| | | | `-- Semi: ;
|
|
| | | `-- R_BRACE: }
|
|
| | |-- blockItem
|
|
| | | `-- stmt
|
|
| | | |-- If: if
|
|
| | | |-- L_PAREN: (
|
|
| | | |-- cond
|
|
| | | | `-- lOrExp
|
|
| | | | `-- lAndExp
|
|
| | | | `-- eqExp
|
|
| | | | |-- eqExp
|
|
| | | | | `-- relExp
|
|
| | | | | `-- addExp
|
|
| | | | | `-- mulExp
|
|
| | | | | `-- unaryExp
|
|
| | | | | `-- primaryExp
|
|
| | | | | `-- lVal
|
|
| | | | | |-- Ident: SHIFT_TABLE
|
|
| | | | | |-- L_BRACKET: [
|
|
| | | | | |-- exp
|
|
| | | | | | `-- addExp
|
|
| | | | | | `-- mulExp
|
|
| | | | | | `-- unaryExp
|
|
| | | | | | `-- primaryExp
|
|
| | | | | | `-- lVal
|
|
| | | | | | `-- Ident: cur
|
|
| | | | | `-- R_BRACKET: ]
|
|
| | | | |-- NeOp: !=
|
|
| | | | `-- relExp
|
|
| | | | `-- addExp
|
|
| | | | `-- mulExp
|
|
| | | | `-- unaryExp
|
|
| | | | `-- primaryExp
|
|
| | | | `-- lVal
|
|
| | | | `-- Ident: ans
|
|
| | | |-- R_PAREN: )
|
|
| | | `-- stmt
|
|
| | | |-- Return: return
|
|
| | | |-- exp
|
|
| | | | `-- addExp
|
|
| | | | `-- mulExp
|
|
| | | | `-- unaryExp
|
|
| | | | `-- primaryExp
|
|
| | | | `-- number
|
|
| | | | `-- IntConst: 1
|
|
| | | `-- Semi: ;
|
|
| | |-- blockItem
|
|
| | | `-- stmt
|
|
| | | |-- lVal
|
|
| | | | `-- Ident: cur
|
|
| | | |-- Assign: =
|
|
| | | |-- exp
|
|
| | | | `-- addExp
|
|
| | | | |-- addExp
|
|
| | | | | `-- mulExp
|
|
| | | | | `-- unaryExp
|
|
| | | | | `-- primaryExp
|
|
| | | | | `-- lVal
|
|
| | | | | `-- Ident: cur
|
|
| | | | |-- AddOp: +
|
|
| | | | `-- mulExp
|
|
| | | | `-- unaryExp
|
|
| | | | `-- primaryExp
|
|
| | | | `-- number
|
|
| | | | `-- IntConst: 1
|
|
| | | `-- Semi: ;
|
|
| | `-- R_BRACE: }
|
|
| |-- blockItem
|
|
| | `-- stmt
|
|
| | |-- Return: return
|
|
| | |-- exp
|
|
| | | `-- addExp
|
|
| | | `-- mulExp
|
|
| | | `-- unaryExp
|
|
| | | `-- primaryExp
|
|
| | | `-- number
|
|
| | | `-- IntConst: 0
|
|
| | `-- Semi: ;
|
|
| `-- R_BRACE: }
|
|
|-- funcDef
|
|
| |-- funcType
|
|
| | `-- Int: int
|
|
| |-- Ident: main
|
|
| |-- L_PAREN: (
|
|
| |-- R_PAREN: )
|
|
| `-- block
|
|
| |-- L_BRACE: {
|
|
| |-- blockItem
|
|
| | `-- stmt
|
|
| | |-- Return: return
|
|
| | |-- exp
|
|
| | | `-- addExp
|
|
| | | `-- mulExp
|
|
| | | `-- unaryExp
|
|
| | | |-- Ident: long_func
|
|
| | | |-- L_PAREN: (
|
|
| | | `-- R_PAREN: )
|
|
| | `-- Semi: ;
|
|
| `-- R_BRACE: }
|
|
`-- EOF: <EOF>
|