compUnit |-- decl | `-- varDecl | |-- bType | | `-- Int: int | |-- varDef | | |-- Ident: w | | |-- Assign: = | | `-- initVal | | `-- exp | | `-- addExp | | `-- mulExp | | `-- unaryExp | | `-- primaryExp | | `-- number | | `-- IntConst: 512 | `-- Semi: ; |-- decl | `-- varDecl | |-- bType | | `-- Int: int | |-- varDef | | |-- Ident: h | | |-- Assign: = | | `-- initVal | | `-- exp | | `-- addExp | | `-- mulExp | | `-- unaryExp | | `-- primaryExp | | `-- number | | `-- IntConst: 270 | `-- Semi: ; |-- decl | `-- varDecl | |-- bType | | `-- Float: float | |-- varDef | | |-- Ident: imgIn | | |-- L_BRACKET: [ | | |-- constExp | | | `-- addExp | | | `-- mulExp | | | `-- unaryExp | | | `-- primaryExp | | | `-- number | | | `-- IntConst: 512 | | |-- R_BRACKET: ] | | |-- L_BRACKET: [ | | |-- constExp | | | `-- addExp | | | `-- mulExp | | | `-- unaryExp | | | `-- primaryExp | | | `-- number | | | `-- IntConst: 270 | | `-- R_BRACKET: ] | `-- Semi: ; |-- decl | `-- varDecl | |-- bType | | `-- Float: float | |-- varDef | | |-- Ident: imgOut | | |-- L_BRACKET: [ | | |-- constExp | | | `-- addExp | | | `-- mulExp | | | `-- unaryExp | | | `-- primaryExp | | | `-- number | | | `-- IntConst: 512 | | |-- R_BRACKET: ] | | |-- L_BRACKET: [ | | |-- constExp | | | `-- addExp | | | `-- mulExp | | | `-- unaryExp | | | `-- primaryExp | | | `-- number | | | `-- IntConst: 270 | | `-- R_BRACKET: ] | `-- Semi: ; |-- decl | `-- varDecl | |-- bType | | `-- Float: float | |-- varDef | | |-- Ident: my_y1 | | |-- L_BRACKET: [ | | |-- constExp | | | `-- addExp | | | `-- mulExp | | | `-- unaryExp | | | `-- primaryExp | | | `-- number | | | `-- IntConst: 512 | | |-- R_BRACKET: ] | | |-- L_BRACKET: [ | | |-- constExp | | | `-- addExp | | | `-- mulExp | | | `-- unaryExp | | | `-- primaryExp | | | `-- number | | | `-- IntConst: 270 | | `-- R_BRACKET: ] | `-- Semi: ; |-- decl | `-- varDecl | |-- bType | | `-- Float: float | |-- varDef | | |-- Ident: my_y2 | | |-- L_BRACKET: [ | | |-- constExp | | | `-- addExp | | | `-- mulExp | | | `-- unaryExp | | | `-- primaryExp | | | `-- number | | | `-- IntConst: 512 | | |-- R_BRACKET: ] | | |-- L_BRACKET: [ | | |-- constExp | | | `-- addExp | | | `-- mulExp | | | `-- unaryExp | | | `-- primaryExp | | | `-- number | | | `-- IntConst: 270 | | `-- R_BRACKET: ] | `-- Semi: ; |-- decl | `-- varDecl | |-- bType | | `-- Float: float | |-- varDef | | |-- Ident: alpha | | |-- Assign: = | | `-- initVal | | `-- exp | | `-- addExp | | `-- mulExp | | `-- unaryExp | | `-- primaryExp | | `-- number | | `-- FloatConst: 0.25 | `-- Semi: ; |-- funcDef | |-- funcType | | `-- Float: float | |-- Ident: newExp | |-- L_PAREN: ( | |-- funcFParams | | `-- funcFParam | | |-- bType | | | `-- Float: float | | `-- Ident: x | |-- R_PAREN: ) | `-- block | |-- L_BRACE: { | |-- blockItem | | `-- stmt | | |-- lVal | | | `-- Ident: x | | |-- Assign: = | | |-- exp | | | `-- addExp | | | |-- addExp | | | | `-- mulExp | | | | `-- unaryExp | | | | `-- primaryExp | | | | `-- number | | | | `-- FloatConst: 1.0 | | | |-- AddOp: + | | | `-- mulExp | | | |-- mulExp | | | | `-- unaryExp | | | | `-- primaryExp | | | | `-- lVal | | | | `-- Ident: x | | | |-- DivOp: / | | | `-- unaryExp | | | `-- primaryExp | | | `-- number | | | `-- IntConst: 256 | | `-- Semi: ; | |-- blockItem | | `-- stmt | | |-- lVal | | | `-- Ident: x | | |-- Assign: = | | |-- exp | | | `-- addExp | | | `-- mulExp | | | |-- mulExp | | | | `-- unaryExp | | | | `-- primaryExp | | | | `-- lVal | | | | `-- Ident: x | | | |-- MulOp: * | | | `-- unaryExp | | | `-- primaryExp | | | `-- lVal | | | `-- Ident: x | | `-- Semi: ; | |-- blockItem | | `-- stmt | | |-- lVal | | | `-- Ident: x | | |-- Assign: = | | |-- exp | | | `-- addExp | | | `-- mulExp | | | |-- mulExp | | | | `-- unaryExp | | | | `-- primaryExp | | | | `-- lVal | | | | `-- Ident: x | | | |-- MulOp: * | | | `-- unaryExp | | | `-- primaryExp | | | `-- lVal | | | `-- Ident: x | | `-- Semi: ; | |-- blockItem | | `-- stmt | | |-- lVal | | | `-- Ident: x | | |-- Assign: = | | |-- exp | | | `-- addExp | | | `-- mulExp | | | |-- mulExp | | | | `-- unaryExp | | | | `-- primaryExp | | | | `-- lVal | | | | `-- Ident: x | | | |-- MulOp: * | | | `-- unaryExp | | | `-- primaryExp | | | `-- lVal | | | `-- Ident: x | | `-- Semi: ; | |-- blockItem | | `-- stmt | | |-- lVal | | | `-- Ident: x | | |-- Assign: = | | |-- exp | | | `-- addExp | | | `-- mulExp | | | |-- mulExp | | | | `-- unaryExp | | | | `-- primaryExp | | | | `-- lVal | | | | `-- Ident: x | | | |-- MulOp: * | | | `-- unaryExp | | | `-- primaryExp | | | `-- lVal | | | `-- Ident: x | | `-- Semi: ; | |-- blockItem | | `-- stmt | | |-- lVal | | | `-- Ident: x | | |-- Assign: = | | |-- exp | | | `-- addExp | | | `-- mulExp | | | |-- mulExp | | | | `-- unaryExp | | | | `-- primaryExp | | | | `-- lVal | | | | `-- Ident: x | | | |-- MulOp: * | | | `-- unaryExp | | | `-- primaryExp | | | `-- lVal | | | `-- Ident: x | | `-- Semi: ; | |-- blockItem | | `-- stmt | | |-- lVal | | | `-- Ident: x | | |-- Assign: = | | |-- exp | | | `-- addExp | | | `-- mulExp | | | |-- mulExp | | | | `-- unaryExp | | | | `-- primaryExp | | | | `-- lVal | | | | `-- Ident: x | | | |-- MulOp: * | | | `-- unaryExp | | | `-- primaryExp | | | `-- lVal | | | `-- Ident: x | | `-- Semi: ; | |-- blockItem | | `-- stmt | | |-- lVal | | | `-- Ident: x | | |-- Assign: = | | |-- exp | | | `-- addExp | | | `-- mulExp | | | |-- mulExp | | | | `-- unaryExp | | | | `-- primaryExp | | | | `-- lVal | | | | `-- Ident: x | | | |-- MulOp: * | | | `-- unaryExp | | | `-- primaryExp | | | `-- lVal | | | `-- Ident: x | | `-- Semi: ; | |-- blockItem | | `-- stmt | | |-- lVal | | | `-- Ident: x | | |-- Assign: = | | |-- exp | | | `-- addExp | | | `-- mulExp | | | |-- mulExp | | | | `-- unaryExp | | | | `-- primaryExp | | | | `-- lVal | | | | `-- Ident: x | | | |-- MulOp: * | | | `-- unaryExp | | | `-- primaryExp | | | `-- lVal | | | `-- Ident: x | | `-- Semi: ; | |-- blockItem | | `-- stmt | | |-- Return: return | | |-- exp | | | `-- addExp | | | `-- mulExp | | | `-- unaryExp | | | `-- primaryExp | | | `-- lVal | | | `-- Ident: x | | `-- Semi: ; | `-- R_BRACE: } |-- funcDef | |-- funcType | | `-- Float: float | |-- Ident: newPow | |-- L_PAREN: ( | |-- funcFParams | | |-- funcFParam | | | |-- bType | | | | `-- Float: float | | | `-- Ident: num | | |-- Comma: , | | `-- funcFParam | | |-- bType | | | `-- Int: int | | `-- Ident: n | |-- R_PAREN: ) | `-- block | |-- L_BRACE: { | |-- blockItem | | `-- stmt | | |-- If: if | | |-- L_PAREN: ( | | |-- cond | | | `-- lOrExp | | | `-- lAndExp | | | `-- eqExp | | | `-- relExp | | | |-- relExp | | | | `-- addExp | | | | `-- mulExp | | | | `-- unaryExp | | | | `-- primaryExp | | | | `-- lVal | | | | `-- Ident: n | | | |-- LtOp: < | | | `-- addExp | | | `-- mulExp | | | `-- unaryExp | | | `-- primaryExp | | | `-- number | | | `-- IntConst: 0 | | |-- R_PAREN: ) | | |-- stmt | | | |-- Return: return | | | |-- exp | | | | `-- addExp | | | | `-- mulExp | | | | |-- mulExp | | | | | `-- unaryExp | | | | | `-- primaryExp | | | | | `-- number | | | | | `-- FloatConst: 1.0 | | | | |-- DivOp: / | | | | `-- unaryExp | | | | |-- Ident: newPow | | | | |-- L_PAREN: ( | | | | |-- funcRParams | | | | | |-- exp | | | | | | `-- addExp | | | | | | `-- mulExp | | | | | | `-- unaryExp | | | | | | `-- primaryExp | | | | | | `-- lVal | | | | | | `-- Ident: num | | | | | |-- Comma: , | | | | | `-- exp | | | | | `-- addExp | | | | | `-- mulExp | | | | | `-- unaryExp | | | | | |-- unaryOp | | | | | | `-- SubOp: - | | | | | `-- unaryExp | | | | | `-- primaryExp | | | | | `-- lVal | | | | | `-- Ident: n | | | | `-- R_PAREN: ) | | | `-- Semi: ; | | |-- Else: else | | `-- stmt | | |-- If: if | | |-- L_PAREN: ( | | |-- cond | | | `-- lOrExp | | | `-- lAndExp | | | `-- eqExp | | | |-- eqExp | | | | `-- relExp | | | | `-- addExp | | | | `-- mulExp | | | | `-- unaryExp | | | | `-- primaryExp | | | | `-- lVal | | | | `-- Ident: n | | | |-- EqOp: == | | | `-- relExp | | | `-- addExp | | | `-- mulExp | | | `-- unaryExp | | | `-- primaryExp | | | `-- number | | | `-- IntConst: 0 | | |-- R_PAREN: ) | | |-- stmt | | | |-- Return: return | | | |-- exp | | | | `-- addExp | | | | `-- mulExp | | | | `-- unaryExp | | | | `-- primaryExp | | | | `-- number | | | | `-- FloatConst: 1.0 | | | `-- Semi: ; | | |-- Else: else | | `-- stmt | | |-- If: if | | |-- L_PAREN: ( | | |-- cond | | | `-- lOrExp | | | `-- lAndExp | | | `-- eqExp | | | `-- relExp | | | |-- relExp | | | | `-- addExp | | | | `-- mulExp | | | | `-- unaryExp | | | | `-- primaryExp | | | | `-- lVal | | | | `-- Ident: n | | | |-- GtOp: > | | | `-- addExp | | | `-- mulExp | | | `-- unaryExp | | | `-- primaryExp | | | `-- number | | | `-- IntConst: 0 | | |-- R_PAREN: ) | | `-- stmt | | |-- Return: return | | |-- exp | | | `-- addExp | | | `-- mulExp | | | |-- mulExp | | | | `-- unaryExp | | | | `-- primaryExp | | | | `-- lVal | | | | `-- Ident: num | | | |-- MulOp: * | | | `-- unaryExp | | | |-- Ident: newPow | | | |-- L_PAREN: ( | | | |-- funcRParams | | | | |-- exp | | | | | `-- addExp | | | | | `-- mulExp | | | | | `-- unaryExp | | | | | `-- primaryExp | | | | | `-- lVal | | | | | `-- Ident: num | | | | |-- Comma: , | | | | `-- exp | | | | `-- addExp | | | | |-- addExp | | | | | `-- mulExp | | | | | `-- unaryExp | | | | | `-- primaryExp | | | | | `-- lVal | | | | | `-- Ident: n | | | | |-- SubOp: - | | | | `-- mulExp | | | | `-- unaryExp | | | | `-- primaryExp | | | | `-- number | | | | `-- IntConst: 1 | | | `-- R_PAREN: ) | | `-- Semi: ; | `-- R_BRACE: } |-- funcDef | |-- funcType | | `-- Void: void | |-- Ident: kernel_deriche | |-- L_PAREN: ( | |-- funcFParams | | |-- funcFParam | | | |-- bType | | | | `-- Int: int | | | `-- Ident: w | | |-- Comma: , | | |-- funcFParam | | | |-- bType | | | | `-- Int: int | | | `-- Ident: h | | |-- Comma: , | | |-- funcFParam | | | |-- bType | | | | `-- Float: float | | | `-- Ident: alpha | | |-- Comma: , | | |-- funcFParam | | | |-- bType | | | | `-- Float: float | | | |-- Ident: imgIn | | | |-- L_BRACKET: [ | | | |-- R_BRACKET: ] | | | |-- L_BRACKET: [ | | | |-- exp | | | | `-- addExp | | | | `-- mulExp | | | | `-- unaryExp | | | | `-- primaryExp | | | | `-- number | | | | `-- IntConst: 270 | | | `-- R_BRACKET: ] | | |-- Comma: , | | |-- funcFParam | | | |-- bType | | | | `-- Float: float | | | |-- Ident: imgOut | | | |-- L_BRACKET: [ | | | |-- R_BRACKET: ] | | | |-- L_BRACKET: [ | | | |-- exp | | | | `-- addExp | | | | `-- mulExp | | | | `-- unaryExp | | | | `-- primaryExp | | | | `-- number | | | | `-- IntConst: 270 | | | `-- R_BRACKET: ] | | |-- Comma: , | | |-- funcFParam | | | |-- bType | | | | `-- Float: float | | | |-- Ident: y1 | | | |-- L_BRACKET: [ | | | |-- R_BRACKET: ] | | | |-- L_BRACKET: [ | | | |-- exp | | | | `-- addExp | | | | `-- mulExp | | | | `-- unaryExp | | | | `-- primaryExp | | | | `-- number | | | | `-- IntConst: 270 | | | `-- R_BRACKET: ] | | |-- Comma: , | | `-- funcFParam | | |-- bType | | | `-- Float: float | | |-- Ident: y2 | | |-- L_BRACKET: [ | | |-- R_BRACKET: ] | | |-- L_BRACKET: [ | | |-- exp | | | `-- addExp | | | `-- mulExp | | | `-- unaryExp | | | `-- primaryExp | | | `-- number | | | `-- IntConst: 270 | | `-- R_BRACKET: ] | |-- R_PAREN: ) | `-- block | |-- L_BRACE: { | |-- blockItem | | `-- decl | | `-- varDecl | | |-- bType | | | `-- Int: int | | |-- varDef | | | `-- Ident: i | | |-- Comma: , | | |-- varDef | | | `-- Ident: j | | `-- Semi: ; | |-- blockItem | | `-- decl | | `-- varDecl | | |-- bType | | | `-- Float: float | | |-- varDef | | | `-- Ident: xm1 | | |-- Comma: , | | |-- varDef | | | `-- Ident: tm1 | | |-- Comma: , | | |-- varDef | | | `-- Ident: ym1 | | |-- Comma: , | | |-- varDef | | | `-- Ident: ym2 | | `-- Semi: ; | |-- blockItem | | `-- decl | | `-- varDecl | | |-- bType | | | `-- Float: float | | |-- varDef | | | `-- Ident: xp1 | | |-- Comma: , | | |-- varDef | | | `-- Ident: xp2 | | `-- Semi: ; | |-- blockItem | | `-- decl | | `-- varDecl | | |-- bType | | | `-- Float: float | | |-- varDef | | | `-- Ident: tp1 | | |-- Comma: , | | |-- varDef | | | `-- Ident: tp2 | | `-- Semi: ; | |-- blockItem | | `-- decl | | `-- varDecl | | |-- bType | | | `-- Float: float | | |-- varDef | | | `-- Ident: yp1 | | |-- Comma: , | | |-- varDef | | | `-- Ident: yp2 | | `-- Semi: ; | |-- blockItem | | `-- decl | | `-- varDecl | | |-- bType | | | `-- Float: float | | |-- varDef | | | `-- Ident: k | | `-- Semi: ; | |-- blockItem | | `-- decl | | `-- varDecl | | |-- bType | | | `-- Float: float | | |-- varDef | | | `-- Ident: a1 | | |-- Comma: , | | |-- varDef | | | `-- Ident: a2 | | |-- Comma: , | | |-- varDef | | | `-- Ident: a3 | | |-- Comma: , | | |-- varDef | | | `-- Ident: a4 | | |-- Comma: , | | |-- varDef | | | `-- Ident: a5 | | |-- Comma: , | | |-- varDef | | | `-- Ident: a6 | | |-- Comma: , | | |-- varDef | | | `-- Ident: a7 | | |-- Comma: , | | |-- varDef | | | `-- Ident: a8 | | `-- Semi: ; | |-- blockItem | | `-- decl | | `-- varDecl | | |-- bType | | | `-- Float: float | | |-- varDef | | | `-- Ident: b1 | | |-- Comma: , | | |-- varDef | | | `-- Ident: b2 | | |-- Comma: , | | |-- varDef | | | `-- Ident: c1 | | |-- Comma: , | | |-- varDef | | | `-- Ident: c2 | | `-- Semi: ; | |-- blockItem | | `-- stmt | | |-- lVal | | | `-- Ident: k | | |-- Assign: = | | |-- exp | | | `-- addExp | | | `-- mulExp | | | |-- mulExp | | | | |-- mulExp | | | | | `-- unaryExp | | | | | `-- primaryExp | | | | | |-- L_PAREN: ( | | | | | |-- exp | | | | | | `-- addExp | | | | | | |-- addExp | | | | | | | `-- mulExp | | | | | | | `-- unaryExp | | | | | | | `-- primaryExp | | | | | | | `-- number | | | | | | | `-- FloatConst: 1.0 | | | | | | |-- SubOp: - | | | | | | `-- mulExp | | | | | | `-- unaryExp | | | | | | |-- Ident: newExp | | | | | | |-- L_PAREN: ( | | | | | | |-- funcRParams | | | | | | | `-- exp | | | | | | | `-- addExp | | | | | | | `-- mulExp | | | | | | | `-- unaryExp | | | | | | | |-- unaryOp | | | | | | | | `-- SubOp: - | | | | | | | `-- unaryExp | | | | | | | `-- primaryExp | | | | | | | `-- lVal | | | | | | | `-- Ident: alpha | | | | | | `-- R_PAREN: ) | | | | | `-- R_PAREN: ) | | | | |-- MulOp: * | | | | `-- unaryExp | | | | `-- primaryExp | | | | |-- L_PAREN: ( | | | | |-- exp | | | | | `-- addExp | | | | | |-- addExp | | | | | | `-- mulExp | | | | | | `-- unaryExp | | | | | | `-- primaryExp | | | | | | `-- number | | | | | | `-- FloatConst: 1.0 | | | | | |-- SubOp: - | | | | | `-- mulExp | | | | | `-- unaryExp | | | | | |-- Ident: newExp | | | | | |-- L_PAREN: ( | | | | | |-- funcRParams | | | | | | `-- exp | | | | | | `-- addExp | | | | | | `-- mulExp | | | | | | `-- unaryExp | | | | | | |-- unaryOp | | | | | | | `-- SubOp: - | | | | | | `-- unaryExp | | | | | | `-- primaryExp | | | | | | `-- lVal | | | | | | `-- Ident: alpha | | | | | `-- R_PAREN: ) | | | | `-- R_PAREN: ) | | | |-- DivOp: / | | | `-- unaryExp | | | `-- primaryExp | | | |-- L_PAREN: ( | | | |-- exp | | | | `-- addExp | | | | |-- addExp | | | | | |-- addExp | | | | | | `-- mulExp | | | | | | `-- unaryExp | | | | | | `-- primaryExp | | | | | | `-- number | | | | | | `-- FloatConst: 1.0 | | | | | |-- AddOp: + | | | | | `-- mulExp | | | | | |-- mulExp | | | | | | |-- mulExp | | | | | | | `-- unaryExp | | | | | | | `-- primaryExp | | | | | | | `-- number | | | | | | | `-- FloatConst: 2.0 | | | | | | |-- MulOp: * | | | | | | `-- unaryExp | | | | | | `-- primaryExp | | | | | | `-- lVal | | | | | | `-- Ident: alpha | | | | | |-- MulOp: * | | | | | `-- unaryExp | | | | | |-- Ident: newExp | | | | | |-- L_PAREN: ( | | | | | |-- funcRParams | | | | | | `-- exp | | | | | | `-- addExp | | | | | | `-- mulExp | | | | | | `-- unaryExp | | | | | | |-- unaryOp | | | | | | | `-- SubOp: - | | | | | | `-- unaryExp | | | | | | `-- primaryExp | | | | | | `-- lVal | | | | | | `-- Ident: alpha | | | | | `-- R_PAREN: ) | | | | |-- SubOp: - | | | | `-- mulExp | | | | `-- unaryExp | | | | |-- Ident: newExp | | | | |-- L_PAREN: ( | | | | |-- funcRParams | | | | | `-- exp | | | | | `-- addExp | | | | | `-- mulExp | | | | | |-- mulExp | | | | | | `-- unaryExp | | | | | | `-- primaryExp | | | | | | `-- number | | | | | | `-- FloatConst: 2.0 | | | | | |-- MulOp: * | | | | | `-- unaryExp | | | | | `-- primaryExp | | | | | `-- lVal | | | | | `-- Ident: alpha | | | | `-- R_PAREN: ) | | | `-- R_PAREN: ) | | `-- Semi: ; | |-- blockItem | | `-- stmt | | |-- lVal | | | `-- Ident: a1 | | |-- Assign: = | | |-- exp | | | `-- addExp | | | `-- mulExp | | | `-- unaryExp | | | `-- primaryExp | | | `-- lVal | | | `-- Ident: k | | `-- Semi: ; | |-- blockItem | | `-- stmt | | |-- lVal | | | `-- Ident: a5 | | |-- Assign: = | | |-- exp | | | `-- addExp | | | `-- mulExp | | | `-- unaryExp | | | `-- primaryExp | | | `-- lVal | | | `-- Ident: k | | `-- Semi: ; | |-- blockItem | | `-- stmt | | |-- lVal | | | `-- Ident: a6 | | |-- Assign: = | | |-- exp | | | `-- addExp | | | `-- mulExp | | | |-- mulExp | | | | |-- mulExp | | | | | `-- unaryExp | | | | | `-- primaryExp | | | | | `-- lVal | | | | | `-- Ident: k | | | | |-- MulOp: * | | | | `-- unaryExp | | | | |-- Ident: newExp | | | | |-- L_PAREN: ( | | | | |-- funcRParams | | | | | `-- exp | | | | | `-- addExp | | | | | `-- mulExp | | | | | `-- unaryExp | | | | | |-- unaryOp | | | | | | `-- SubOp: - | | | | | `-- unaryExp | | | | | `-- primaryExp | | | | | `-- lVal | | | | | `-- Ident: alpha | | | | `-- R_PAREN: ) | | | |-- MulOp: * | | | `-- unaryExp | | | `-- primaryExp | | | |-- L_PAREN: ( | | | |-- exp | | | | `-- addExp | | | | |-- addExp | | | | | `-- mulExp | | | | | `-- unaryExp | | | | | `-- primaryExp | | | | | `-- lVal | | | | | `-- Ident: alpha | | | | |-- SubOp: - | | | | `-- mulExp | | | | `-- unaryExp | | | | `-- primaryExp | | | | `-- number | | | | `-- FloatConst: 1.0 | | | `-- R_PAREN: ) | | `-- Semi: ; | |-- blockItem | | `-- stmt | | |-- lVal | | | `-- Ident: a2 | | |-- Assign: = | | |-- exp | | | `-- addExp | | | `-- mulExp | | | `-- unaryExp | | | `-- primaryExp | | | `-- lVal | | | `-- Ident: a6 | | `-- Semi: ; | |-- blockItem | | `-- stmt | | |-- lVal | | | `-- Ident: a7 | | |-- Assign: = | | |-- exp | | | `-- addExp | | | `-- mulExp | | | |-- mulExp | | | | |-- mulExp | | | | | `-- unaryExp | | | | | `-- primaryExp | | | | | `-- lVal | | | | | `-- Ident: k | | | | |-- MulOp: * | | | | `-- unaryExp | | | | |-- Ident: newExp | | | | |-- L_PAREN: ( | | | | |-- funcRParams | | | | | `-- exp | | | | | `-- addExp | | | | | `-- mulExp | | | | | `-- unaryExp | | | | | |-- unaryOp | | | | | | `-- SubOp: - | | | | | `-- unaryExp | | | | | `-- primaryExp | | | | | `-- lVal | | | | | `-- Ident: alpha | | | | `-- R_PAREN: ) | | | |-- MulOp: * | | | `-- unaryExp | | | `-- primaryExp | | | |-- L_PAREN: ( | | | |-- exp | | | | `-- addExp | | | | |-- addExp | | | | | `-- mulExp | | | | | `-- unaryExp | | | | | `-- primaryExp | | | | | `-- lVal | | | | | `-- Ident: alpha | | | | |-- AddOp: + | | | | `-- mulExp | | | | `-- unaryExp | | | | `-- primaryExp | | | | `-- number | | | | `-- FloatConst: 1.0 | | | `-- R_PAREN: ) | | `-- Semi: ; | |-- blockItem | | `-- stmt | | |-- lVal | | | `-- Ident: a3 | | |-- Assign: = | | |-- exp | | | `-- addExp | | | `-- mulExp | | | `-- unaryExp | | | `-- primaryExp | | | `-- lVal | | | `-- Ident: a7 | | `-- Semi: ; | |-- blockItem | | `-- stmt | | |-- lVal | | | `-- Ident: a8 | | |-- Assign: = | | |-- exp | | | `-- addExp | | | `-- mulExp | | | |-- mulExp | | | | `-- unaryExp | | | | |-- unaryOp | | | | | `-- SubOp: - | | | | `-- unaryExp | | | | `-- primaryExp | | | | `-- lVal | | | | `-- Ident: k | | | |-- MulOp: * | | | `-- unaryExp | | | |-- Ident: newExp | | | |-- L_PAREN: ( | | | |-- funcRParams | | | | `-- exp | | | | `-- addExp | | | | `-- mulExp | | | | |-- mulExp | | | | | `-- unaryExp | | | | | |-- unaryOp | | | | | | `-- SubOp: - | | | | | `-- unaryExp | | | | | `-- primaryExp | | | | | `-- number | | | | | `-- FloatConst: 2.0 | | | | |-- MulOp: * | | | | `-- unaryExp | | | | `-- primaryExp | | | | `-- lVal | | | | `-- Ident: alpha | | | `-- R_PAREN: ) | | `-- Semi: ; | |-- blockItem | | `-- stmt | | |-- lVal | | | `-- Ident: a4 | | |-- Assign: = | | |-- exp | | | `-- addExp | | | `-- mulExp | | | `-- unaryExp | | | `-- primaryExp | | | `-- lVal | | | `-- Ident: a8 | | `-- Semi: ; | |-- blockItem | | `-- stmt | | |-- lVal | | | `-- Ident: b1 | | |-- Assign: = | | |-- exp | | | `-- addExp | | | `-- mulExp | | | `-- unaryExp | | | |-- Ident: newPow | | | |-- L_PAREN: ( | | | |-- funcRParams | | | | |-- exp | | | | | `-- addExp | | | | | `-- mulExp | | | | | `-- unaryExp | | | | | `-- primaryExp | | | | | `-- number | | | | | `-- FloatConst: 2.0 | | | | |-- Comma: , | | | | `-- exp | | | | `-- addExp | | | | `-- mulExp | | | | `-- unaryExp | | | | |-- unaryOp | | | | | `-- SubOp: - | | | | `-- unaryExp | | | | `-- primaryExp | | | | `-- lVal | | | | `-- Ident: alpha | | | `-- R_PAREN: ) | | `-- Semi: ; | |-- blockItem | | `-- stmt | | |-- lVal | | | `-- Ident: b2 | | |-- Assign: = | | |-- exp | | | `-- addExp | | | `-- mulExp | | | `-- unaryExp | | | |-- unaryOp | | | | `-- SubOp: - | | | `-- unaryExp | | | |-- Ident: newExp | | | |-- L_PAREN: ( | | | |-- funcRParams | | | | `-- exp | | | | `-- addExp | | | | `-- mulExp | | | | |-- mulExp | | | | | `-- unaryExp | | | | | |-- unaryOp | | | | | | `-- SubOp: - | | | | | `-- unaryExp | | | | | `-- primaryExp | | | | | `-- number | | | | | `-- FloatConst: 2.0 | | | | |-- MulOp: * | | | | `-- unaryExp | | | | `-- primaryExp | | | | `-- lVal | | | | `-- Ident: alpha | | | `-- R_PAREN: ) | | `-- Semi: ; | |-- blockItem | | `-- stmt | | |-- lVal | | | `-- Ident: c1 | | |-- Assign: = | | |-- exp | | | `-- addExp | | | `-- mulExp | | | `-- unaryExp | | | `-- primaryExp | | | `-- number | | | `-- IntConst: 1 | | `-- Semi: ; | |-- blockItem | | `-- stmt | | |-- lVal | | | `-- Ident: c2 | | |-- Assign: = | | |-- exp | | | `-- addExp | | | `-- mulExp | | | `-- unaryExp | | | `-- primaryExp | | | `-- number | | | `-- IntConst: 1 | | `-- Semi: ; | |-- blockItem | | `-- stmt | | |-- lVal | | | `-- Ident: i | | |-- 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: i | | | |-- LtOp: < | | | `-- addExp | | | `-- mulExp | | | `-- unaryExp | | | `-- primaryExp | | | `-- lVal | | | `-- Ident: w | | |-- R_PAREN: ) | | `-- stmt | | `-- block | | |-- L_BRACE: { | | |-- blockItem | | | `-- stmt | | | |-- lVal | | | | `-- Ident: ym1 | | | |-- Assign: = | | | |-- exp | | | | `-- addExp | | | | `-- mulExp | | | | `-- unaryExp | | | | `-- primaryExp | | | | `-- number | | | | `-- FloatConst: 0.0 | | | `-- Semi: ; | | |-- blockItem | | | `-- stmt | | | |-- lVal | | | | `-- Ident: ym2 | | | |-- Assign: = | | | |-- exp | | | | `-- addExp | | | | `-- mulExp | | | | `-- unaryExp | | | | `-- primaryExp | | | | `-- number | | | | `-- FloatConst: 0.0 | | | `-- Semi: ; | | |-- blockItem | | | `-- stmt | | | |-- lVal | | | | `-- Ident: xm1 | | | |-- Assign: = | | | |-- exp | | | | `-- addExp | | | | `-- mulExp | | | | `-- unaryExp | | | | `-- primaryExp | | | | `-- number | | | | `-- FloatConst: 0.0 | | | `-- Semi: ; | | |-- blockItem | | | `-- stmt | | | |-- lVal | | | | `-- Ident: j | | | |-- 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: j | | | | |-- LtOp: < | | | | `-- addExp | | | | `-- mulExp | | | | `-- unaryExp | | | | `-- primaryExp | | | | `-- lVal | | | | `-- Ident: h | | | |-- R_PAREN: ) | | | `-- stmt | | | `-- block | | | |-- L_BRACE: { | | | |-- blockItem | | | | `-- stmt | | | | |-- lVal | | | | | |-- Ident: y1 | | | | | |-- L_BRACKET: [ | | | | | |-- exp | | | | | | `-- addExp | | | | | | `-- mulExp | | | | | | `-- unaryExp | | | | | | `-- primaryExp | | | | | | `-- lVal | | | | | | `-- Ident: i | | | | | |-- R_BRACKET: ] | | | | | |-- L_BRACKET: [ | | | | | |-- exp | | | | | | `-- addExp | | | | | | `-- mulExp | | | | | | `-- unaryExp | | | | | | `-- primaryExp | | | | | | `-- lVal | | | | | | `-- Ident: j | | | | | `-- R_BRACKET: ] | | | | |-- Assign: = | | | | |-- exp | | | | | `-- addExp | | | | | |-- addExp | | | | | | |-- addExp | | | | | | | |-- addExp | | | | | | | | `-- mulExp | | | | | | | | |-- mulExp | | | | | | | | | `-- unaryExp | | | | | | | | | `-- primaryExp | | | | | | | | | `-- lVal | | | | | | | | | `-- Ident: a1 | | | | | | | | |-- MulOp: * | | | | | | | | `-- unaryExp | | | | | | | | `-- primaryExp | | | | | | | | `-- lVal | | | | | | | | |-- Ident: imgIn | | | | | | | | |-- L_BRACKET: [ | | | | | | | | |-- exp | | | | | | | | | `-- addExp | | | | | | | | | `-- mulExp | | | | | | | | | `-- unaryExp | | | | | | | | | `-- primaryExp | | | | | | | | | `-- lVal | | | | | | | | | `-- Ident: i | | | | | | | | |-- R_BRACKET: ] | | | | | | | | |-- L_BRACKET: [ | | | | | | | | |-- exp | | | | | | | | | `-- addExp | | | | | | | | | `-- mulExp | | | | | | | | | `-- unaryExp | | | | | | | | | `-- primaryExp | | | | | | | | | `-- lVal | | | | | | | | | `-- Ident: j | | | | | | | | `-- R_BRACKET: ] | | | | | | | |-- AddOp: + | | | | | | | `-- mulExp | | | | | | | |-- mulExp | | | | | | | | `-- unaryExp | | | | | | | | `-- primaryExp | | | | | | | | `-- lVal | | | | | | | | `-- Ident: a2 | | | | | | | |-- MulOp: * | | | | | | | `-- unaryExp | | | | | | | `-- primaryExp | | | | | | | `-- lVal | | | | | | | `-- Ident: xm1 | | | | | | |-- AddOp: + | | | | | | `-- mulExp | | | | | | |-- mulExp | | | | | | | `-- unaryExp | | | | | | | `-- primaryExp | | | | | | | `-- lVal | | | | | | | `-- Ident: b1 | | | | | | |-- MulOp: * | | | | | | `-- unaryExp | | | | | | `-- primaryExp | | | | | | `-- lVal | | | | | | `-- Ident: ym1 | | | | | |-- AddOp: + | | | | | `-- mulExp | | | | | |-- mulExp | | | | | | `-- unaryExp | | | | | | `-- primaryExp | | | | | | `-- lVal | | | | | | `-- Ident: b2 | | | | | |-- MulOp: * | | | | | `-- unaryExp | | | | | `-- primaryExp | | | | | `-- lVal | | | | | `-- Ident: ym2 | | | | `-- Semi: ; | | | |-- blockItem | | | | `-- stmt | | | | |-- lVal | | | | | `-- Ident: xm1 | | | | |-- Assign: = | | | | |-- exp | | | | | `-- addExp | | | | | `-- mulExp | | | | | `-- unaryExp | | | | | `-- primaryExp | | | | | `-- lVal | | | | | |-- Ident: imgIn | | | | | |-- L_BRACKET: [ | | | | | |-- exp | | | | | | `-- addExp | | | | | | `-- mulExp | | | | | | `-- unaryExp | | | | | | `-- primaryExp | | | | | | `-- lVal | | | | | | `-- Ident: i | | | | | |-- R_BRACKET: ] | | | | | |-- L_BRACKET: [ | | | | | |-- exp | | | | | | `-- addExp | | | | | | `-- mulExp | | | | | | `-- unaryExp | | | | | | `-- primaryExp | | | | | | `-- lVal | | | | | | `-- Ident: j | | | | | `-- R_BRACKET: ] | | | | `-- Semi: ; | | | |-- blockItem | | | | `-- stmt | | | | |-- lVal | | | | | `-- Ident: ym2 | | | | |-- Assign: = | | | | |-- exp | | | | | `-- addExp | | | | | `-- mulExp | | | | | `-- unaryExp | | | | | `-- primaryExp | | | | | `-- lVal | | | | | `-- Ident: ym1 | | | | `-- Semi: ; | | | |-- blockItem | | | | `-- stmt | | | | |-- lVal | | | | | `-- Ident: ym1 | | | | |-- Assign: = | | | | |-- exp | | | | | `-- addExp | | | | | `-- mulExp | | | | | `-- unaryExp | | | | | `-- primaryExp | | | | | `-- lVal | | | | | |-- Ident: y1 | | | | | |-- L_BRACKET: [ | | | | | |-- exp | | | | | | `-- addExp | | | | | | `-- mulExp | | | | | | `-- unaryExp | | | | | | `-- primaryExp | | | | | | `-- lVal | | | | | | `-- Ident: i | | | | | |-- R_BRACKET: ] | | | | | |-- L_BRACKET: [ | | | | | |-- exp | | | | | | `-- addExp | | | | | | `-- mulExp | | | | | | `-- unaryExp | | | | | | `-- primaryExp | | | | | | `-- lVal | | | | | | `-- Ident: j | | | | | `-- R_BRACKET: ] | | | | `-- Semi: ; | | | |-- blockItem | | | | `-- stmt | | | | |-- lVal | | | | | `-- Ident: j | | | | |-- Assign: = | | | | |-- exp | | | | | `-- addExp | | | | | |-- addExp | | | | | | `-- mulExp | | | | | | `-- unaryExp | | | | | | `-- primaryExp | | | | | | `-- lVal | | | | | | `-- Ident: j | | | | | |-- AddOp: + | | | | | `-- mulExp | | | | | `-- unaryExp | | | | | `-- primaryExp | | | | | `-- number | | | | | `-- IntConst: 1 | | | | `-- Semi: ; | | | `-- R_BRACE: } | | |-- 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: i | | |-- 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: i | | | |-- LtOp: < | | | `-- addExp | | | `-- mulExp | | | `-- unaryExp | | | `-- primaryExp | | | `-- lVal | | | `-- Ident: w | | |-- R_PAREN: ) | | `-- stmt | | `-- block | | |-- L_BRACE: { | | |-- blockItem | | | `-- stmt | | | |-- lVal | | | | `-- Ident: yp1 | | | |-- Assign: = | | | |-- exp | | | | `-- addExp | | | | `-- mulExp | | | | `-- unaryExp | | | | `-- primaryExp | | | | `-- number | | | | `-- FloatConst: 0.0 | | | `-- Semi: ; | | |-- blockItem | | | `-- stmt | | | |-- lVal | | | | `-- Ident: yp2 | | | |-- Assign: = | | | |-- exp | | | | `-- addExp | | | | `-- mulExp | | | | `-- unaryExp | | | | `-- primaryExp | | | | `-- number | | | | `-- FloatConst: 0.0 | | | `-- Semi: ; | | |-- blockItem | | | `-- stmt | | | |-- lVal | | | | `-- Ident: xp1 | | | |-- Assign: = | | | |-- exp | | | | `-- addExp | | | | `-- mulExp | | | | `-- unaryExp | | | | `-- primaryExp | | | | `-- number | | | | `-- FloatConst: 0.0 | | | `-- Semi: ; | | |-- blockItem | | | `-- stmt | | | |-- lVal | | | | `-- Ident: xp2 | | | |-- Assign: = | | | |-- exp | | | | `-- addExp | | | | `-- mulExp | | | | `-- unaryExp | | | | `-- primaryExp | | | | `-- number | | | | `-- FloatConst: 0.0 | | | `-- Semi: ; | | |-- blockItem | | | `-- stmt | | | |-- lVal | | | | `-- Ident: j | | | |-- Assign: = | | | |-- exp | | | | `-- addExp | | | | |-- addExp | | | | | `-- mulExp | | | | | `-- unaryExp | | | | | `-- primaryExp | | | | | `-- lVal | | | | | `-- Ident: h | | | | |-- SubOp: - | | | | `-- 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: j | | | | |-- GeOp: >= | | | | `-- addExp | | | | `-- mulExp | | | | `-- unaryExp | | | | `-- primaryExp | | | | `-- number | | | | `-- IntConst: 0 | | | |-- R_PAREN: ) | | | `-- stmt | | | `-- block | | | |-- L_BRACE: { | | | |-- blockItem | | | | `-- stmt | | | | |-- lVal | | | | | |-- Ident: y2 | | | | | |-- L_BRACKET: [ | | | | | |-- exp | | | | | | `-- addExp | | | | | | `-- mulExp | | | | | | `-- unaryExp | | | | | | `-- primaryExp | | | | | | `-- lVal | | | | | | `-- Ident: i | | | | | |-- R_BRACKET: ] | | | | | |-- L_BRACKET: [ | | | | | |-- exp | | | | | | `-- addExp | | | | | | `-- mulExp | | | | | | `-- unaryExp | | | | | | `-- primaryExp | | | | | | `-- lVal | | | | | | `-- Ident: j | | | | | `-- R_BRACKET: ] | | | | |-- Assign: = | | | | |-- exp | | | | | `-- addExp | | | | | |-- addExp | | | | | | |-- addExp | | | | | | | |-- addExp | | | | | | | | `-- mulExp | | | | | | | | |-- mulExp | | | | | | | | | `-- unaryExp | | | | | | | | | `-- primaryExp | | | | | | | | | `-- lVal | | | | | | | | | `-- Ident: a3 | | | | | | | | |-- MulOp: * | | | | | | | | `-- unaryExp | | | | | | | | `-- primaryExp | | | | | | | | `-- lVal | | | | | | | | `-- Ident: xp1 | | | | | | | |-- AddOp: + | | | | | | | `-- mulExp | | | | | | | |-- mulExp | | | | | | | | `-- unaryExp | | | | | | | | `-- primaryExp | | | | | | | | `-- lVal | | | | | | | | `-- Ident: a4 | | | | | | | |-- MulOp: * | | | | | | | `-- unaryExp | | | | | | | `-- primaryExp | | | | | | | `-- lVal | | | | | | | `-- Ident: xp2 | | | | | | |-- AddOp: + | | | | | | `-- mulExp | | | | | | |-- mulExp | | | | | | | `-- unaryExp | | | | | | | `-- primaryExp | | | | | | | `-- lVal | | | | | | | `-- Ident: b1 | | | | | | |-- MulOp: * | | | | | | `-- unaryExp | | | | | | `-- primaryExp | | | | | | `-- lVal | | | | | | `-- Ident: yp1 | | | | | |-- AddOp: + | | | | | `-- mulExp | | | | | |-- mulExp | | | | | | `-- unaryExp | | | | | | `-- primaryExp | | | | | | `-- lVal | | | | | | `-- Ident: b2 | | | | | |-- MulOp: * | | | | | `-- unaryExp | | | | | `-- primaryExp | | | | | `-- lVal | | | | | `-- Ident: yp2 | | | | `-- Semi: ; | | | |-- blockItem | | | | `-- stmt | | | | |-- lVal | | | | | `-- Ident: xp2 | | | | |-- Assign: = | | | | |-- exp | | | | | `-- addExp | | | | | `-- mulExp | | | | | `-- unaryExp | | | | | `-- primaryExp | | | | | `-- lVal | | | | | `-- Ident: xp1 | | | | `-- Semi: ; | | | |-- blockItem | | | | `-- stmt | | | | |-- lVal | | | | | `-- Ident: xp1 | | | | |-- Assign: = | | | | |-- exp | | | | | `-- addExp | | | | | `-- mulExp | | | | | `-- unaryExp | | | | | `-- primaryExp | | | | | `-- lVal | | | | | |-- Ident: imgIn | | | | | |-- L_BRACKET: [ | | | | | |-- exp | | | | | | `-- addExp | | | | | | `-- mulExp | | | | | | `-- unaryExp | | | | | | `-- primaryExp | | | | | | `-- lVal | | | | | | `-- Ident: i | | | | | |-- R_BRACKET: ] | | | | | |-- L_BRACKET: [ | | | | | |-- exp | | | | | | `-- addExp | | | | | | `-- mulExp | | | | | | `-- unaryExp | | | | | | `-- primaryExp | | | | | | `-- lVal | | | | | | `-- Ident: j | | | | | `-- R_BRACKET: ] | | | | `-- Semi: ; | | | |-- blockItem | | | | `-- stmt | | | | |-- lVal | | | | | `-- Ident: yp2 | | | | |-- Assign: = | | | | |-- exp | | | | | `-- addExp | | | | | `-- mulExp | | | | | `-- unaryExp | | | | | `-- primaryExp | | | | | `-- lVal | | | | | `-- Ident: yp1 | | | | `-- Semi: ; | | | |-- blockItem | | | | `-- stmt | | | | |-- lVal | | | | | `-- Ident: yp1 | | | | |-- Assign: = | | | | |-- exp | | | | | `-- addExp | | | | | `-- mulExp | | | | | `-- unaryExp | | | | | `-- primaryExp | | | | | `-- lVal | | | | | |-- Ident: y2 | | | | | |-- L_BRACKET: [ | | | | | |-- exp | | | | | | `-- addExp | | | | | | `-- mulExp | | | | | | `-- unaryExp | | | | | | `-- primaryExp | | | | | | `-- lVal | | | | | | `-- Ident: i | | | | | |-- R_BRACKET: ] | | | | | |-- L_BRACKET: [ | | | | | |-- exp | | | | | | `-- addExp | | | | | | `-- mulExp | | | | | | `-- unaryExp | | | | | | `-- primaryExp | | | | | | `-- lVal | | | | | | `-- Ident: j | | | | | `-- R_BRACKET: ] | | | | `-- Semi: ; | | | |-- blockItem | | | | `-- stmt | | | | |-- lVal | | | | | `-- Ident: j | | | | |-- Assign: = | | | | |-- exp | | | | | `-- addExp | | | | | |-- addExp | | | | | | `-- mulExp | | | | | | `-- unaryExp | | | | | | `-- primaryExp | | | | | | `-- lVal | | | | | | `-- Ident: j | | | | | |-- SubOp: - | | | | | `-- mulExp | | | | | `-- unaryExp | | | | | `-- primaryExp | | | | | `-- number | | | | | `-- IntConst: 1 | | | | `-- Semi: ; | | | `-- R_BRACE: } | | |-- 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: i | | |-- 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: i | | | |-- LtOp: < | | | `-- addExp | | | `-- mulExp | | | `-- unaryExp | | | `-- primaryExp | | | `-- lVal | | | `-- Ident: w | | |-- R_PAREN: ) | | `-- stmt | | `-- block | | |-- L_BRACE: { | | |-- blockItem | | | `-- stmt | | | |-- lVal | | | | `-- Ident: j | | | |-- 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: j | | | | |-- LtOp: < | | | | `-- addExp | | | | `-- mulExp | | | | `-- unaryExp | | | | `-- primaryExp | | | | `-- lVal | | | | `-- Ident: h | | | |-- R_PAREN: ) | | | `-- stmt | | | `-- block | | | |-- L_BRACE: { | | | |-- blockItem | | | | `-- stmt | | | | |-- lVal | | | | | |-- Ident: imgOut | | | | | |-- L_BRACKET: [ | | | | | |-- exp | | | | | | `-- addExp | | | | | | `-- mulExp | | | | | | `-- unaryExp | | | | | | `-- primaryExp | | | | | | `-- lVal | | | | | | `-- Ident: i | | | | | |-- R_BRACKET: ] | | | | | |-- L_BRACKET: [ | | | | | |-- exp | | | | | | `-- addExp | | | | | | `-- mulExp | | | | | | `-- unaryExp | | | | | | `-- primaryExp | | | | | | `-- lVal | | | | | | `-- Ident: j | | | | | `-- R_BRACKET: ] | | | | |-- Assign: = | | | | |-- exp | | | | | `-- addExp | | | | | `-- mulExp | | | | | |-- mulExp | | | | | | `-- unaryExp | | | | | | `-- primaryExp | | | | | | `-- lVal | | | | | | `-- Ident: c1 | | | | | |-- MulOp: * | | | | | `-- unaryExp | | | | | `-- primaryExp | | | | | |-- L_PAREN: ( | | | | | |-- exp | | | | | | `-- addExp | | | | | | |-- addExp | | | | | | | `-- mulExp | | | | | | | `-- unaryExp | | | | | | | `-- primaryExp | | | | | | | `-- lVal | | | | | | | |-- Ident: y1 | | | | | | | |-- L_BRACKET: [ | | | | | | | |-- exp | | | | | | | | `-- addExp | | | | | | | | `-- mulExp | | | | | | | | `-- unaryExp | | | | | | | | `-- primaryExp | | | | | | | | `-- lVal | | | | | | | | `-- Ident: i | | | | | | | |-- R_BRACKET: ] | | | | | | | |-- L_BRACKET: [ | | | | | | | |-- exp | | | | | | | | `-- addExp | | | | | | | | `-- mulExp | | | | | | | | `-- unaryExp | | | | | | | | `-- primaryExp | | | | | | | | `-- lVal | | | | | | | | `-- Ident: j | | | | | | | `-- R_BRACKET: ] | | | | | | |-- AddOp: + | | | | | | `-- mulExp | | | | | | `-- unaryExp | | | | | | `-- primaryExp | | | | | | `-- lVal | | | | | | |-- Ident: y2 | | | | | | |-- L_BRACKET: [ | | | | | | |-- exp | | | | | | | `-- addExp | | | | | | | `-- mulExp | | | | | | | `-- unaryExp | | | | | | | `-- primaryExp | | | | | | | `-- lVal | | | | | | | `-- Ident: i | | | | | | |-- R_BRACKET: ] | | | | | | |-- L_BRACKET: [ | | | | | | |-- exp | | | | | | | `-- addExp | | | | | | | `-- mulExp | | | | | | | `-- unaryExp | | | | | | | `-- primaryExp | | | | | | | `-- lVal | | | | | | | `-- Ident: j | | | | | | `-- R_BRACKET: ] | | | | | `-- R_PAREN: ) | | | | `-- Semi: ; | | | |-- blockItem | | | | `-- stmt | | | | |-- lVal | | | | | `-- Ident: j | | | | |-- Assign: = | | | | |-- exp | | | | | `-- addExp | | | | | |-- addExp | | | | | | `-- mulExp | | | | | | `-- unaryExp | | | | | | `-- primaryExp | | | | | | `-- lVal | | | | | | `-- Ident: j | | | | | |-- AddOp: + | | | | | `-- mulExp | | | | | `-- unaryExp | | | | | `-- primaryExp | | | | | `-- number | | | | | `-- IntConst: 1 | | | | `-- Semi: ; | | | `-- R_BRACE: } | | |-- 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: j | | |-- 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: j | | | |-- LtOp: < | | | `-- addExp | | | `-- mulExp | | | `-- unaryExp | | | `-- primaryExp | | | `-- lVal | | | `-- Ident: h | | |-- R_PAREN: ) | | `-- stmt | | `-- block | | |-- L_BRACE: { | | |-- blockItem | | | `-- stmt | | | |-- lVal | | | | `-- Ident: tm1 | | | |-- Assign: = | | | |-- exp | | | | `-- addExp | | | | `-- mulExp | | | | `-- unaryExp | | | | `-- primaryExp | | | | `-- number | | | | `-- FloatConst: 0.0 | | | `-- Semi: ; | | |-- blockItem | | | `-- stmt | | | |-- lVal | | | | `-- Ident: ym1 | | | |-- Assign: = | | | |-- exp | | | | `-- addExp | | | | `-- mulExp | | | | `-- unaryExp | | | | `-- primaryExp | | | | `-- number | | | | `-- FloatConst: 0.0 | | | `-- Semi: ; | | |-- blockItem | | | `-- stmt | | | |-- lVal | | | | `-- Ident: ym2 | | | |-- Assign: = | | | |-- exp | | | | `-- addExp | | | | `-- mulExp | | | | `-- unaryExp | | | | `-- primaryExp | | | | `-- number | | | | `-- FloatConst: 0.0 | | | `-- Semi: ; | | |-- blockItem | | | `-- stmt | | | |-- lVal | | | | `-- Ident: i | | | |-- 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: i | | | | |-- LtOp: < | | | | `-- addExp | | | | `-- mulExp | | | | `-- unaryExp | | | | `-- primaryExp | | | | `-- lVal | | | | `-- Ident: w | | | |-- R_PAREN: ) | | | `-- stmt | | | `-- block | | | |-- L_BRACE: { | | | |-- blockItem | | | | `-- stmt | | | | |-- lVal | | | | | |-- Ident: y1 | | | | | |-- L_BRACKET: [ | | | | | |-- exp | | | | | | `-- addExp | | | | | | `-- mulExp | | | | | | `-- unaryExp | | | | | | `-- primaryExp | | | | | | `-- lVal | | | | | | `-- Ident: i | | | | | |-- R_BRACKET: ] | | | | | |-- L_BRACKET: [ | | | | | |-- exp | | | | | | `-- addExp | | | | | | `-- mulExp | | | | | | `-- unaryExp | | | | | | `-- primaryExp | | | | | | `-- lVal | | | | | | `-- Ident: j | | | | | `-- R_BRACKET: ] | | | | |-- Assign: = | | | | |-- exp | | | | | `-- addExp | | | | | |-- addExp | | | | | | |-- addExp | | | | | | | |-- addExp | | | | | | | | `-- mulExp | | | | | | | | |-- mulExp | | | | | | | | | `-- unaryExp | | | | | | | | | `-- primaryExp | | | | | | | | | `-- lVal | | | | | | | | | `-- Ident: a5 | | | | | | | | |-- MulOp: * | | | | | | | | `-- unaryExp | | | | | | | | `-- primaryExp | | | | | | | | `-- lVal | | | | | | | | |-- Ident: imgOut | | | | | | | | |-- L_BRACKET: [ | | | | | | | | |-- exp | | | | | | | | | `-- addExp | | | | | | | | | `-- mulExp | | | | | | | | | `-- unaryExp | | | | | | | | | `-- primaryExp | | | | | | | | | `-- lVal | | | | | | | | | `-- Ident: i | | | | | | | | |-- R_BRACKET: ] | | | | | | | | |-- L_BRACKET: [ | | | | | | | | |-- exp | | | | | | | | | `-- addExp | | | | | | | | | `-- mulExp | | | | | | | | | `-- unaryExp | | | | | | | | | `-- primaryExp | | | | | | | | | `-- lVal | | | | | | | | | `-- Ident: j | | | | | | | | `-- R_BRACKET: ] | | | | | | | |-- AddOp: + | | | | | | | `-- mulExp | | | | | | | |-- mulExp | | | | | | | | `-- unaryExp | | | | | | | | `-- primaryExp | | | | | | | | `-- lVal | | | | | | | | `-- Ident: a6 | | | | | | | |-- MulOp: * | | | | | | | `-- unaryExp | | | | | | | `-- primaryExp | | | | | | | `-- lVal | | | | | | | `-- Ident: tm1 | | | | | | |-- AddOp: + | | | | | | `-- mulExp | | | | | | |-- mulExp | | | | | | | `-- unaryExp | | | | | | | `-- primaryExp | | | | | | | `-- lVal | | | | | | | `-- Ident: b1 | | | | | | |-- MulOp: * | | | | | | `-- unaryExp | | | | | | `-- primaryExp | | | | | | `-- lVal | | | | | | `-- Ident: ym1 | | | | | |-- AddOp: + | | | | | `-- mulExp | | | | | |-- mulExp | | | | | | `-- unaryExp | | | | | | `-- primaryExp | | | | | | `-- lVal | | | | | | `-- Ident: b2 | | | | | |-- MulOp: * | | | | | `-- unaryExp | | | | | `-- primaryExp | | | | | `-- lVal | | | | | `-- Ident: ym2 | | | | `-- Semi: ; | | | |-- blockItem | | | | `-- stmt | | | | |-- lVal | | | | | `-- Ident: tm1 | | | | |-- Assign: = | | | | |-- exp | | | | | `-- addExp | | | | | `-- mulExp | | | | | `-- unaryExp | | | | | `-- primaryExp | | | | | `-- lVal | | | | | |-- Ident: imgOut | | | | | |-- L_BRACKET: [ | | | | | |-- exp | | | | | | `-- addExp | | | | | | `-- mulExp | | | | | | `-- unaryExp | | | | | | `-- primaryExp | | | | | | `-- lVal | | | | | | `-- Ident: i | | | | | |-- R_BRACKET: ] | | | | | |-- L_BRACKET: [ | | | | | |-- exp | | | | | | `-- addExp | | | | | | `-- mulExp | | | | | | `-- unaryExp | | | | | | `-- primaryExp | | | | | | `-- lVal | | | | | | `-- Ident: j | | | | | `-- R_BRACKET: ] | | | | `-- Semi: ; | | | |-- blockItem | | | | `-- stmt | | | | |-- lVal | | | | | `-- Ident: ym2 | | | | |-- Assign: = | | | | |-- exp | | | | | `-- addExp | | | | | `-- mulExp | | | | | `-- unaryExp | | | | | `-- primaryExp | | | | | `-- lVal | | | | | `-- Ident: ym1 | | | | `-- Semi: ; | | | |-- blockItem | | | | `-- stmt | | | | |-- lVal | | | | | `-- Ident: ym1 | | | | |-- Assign: = | | | | |-- exp | | | | | `-- addExp | | | | | `-- mulExp | | | | | `-- unaryExp | | | | | `-- primaryExp | | | | | `-- lVal | | | | | |-- Ident: y1 | | | | | |-- L_BRACKET: [ | | | | | |-- exp | | | | | | `-- addExp | | | | | | `-- mulExp | | | | | | `-- unaryExp | | | | | | `-- primaryExp | | | | | | `-- lVal | | | | | | `-- Ident: i | | | | | |-- R_BRACKET: ] | | | | | |-- L_BRACKET: [ | | | | | |-- exp | | | | | | `-- addExp | | | | | | `-- mulExp | | | | | | `-- unaryExp | | | | | | `-- primaryExp | | | | | | `-- lVal | | | | | | `-- Ident: j | | | | | `-- R_BRACKET: ] | | | | `-- 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: j | | | |-- Assign: = | | | |-- exp | | | | `-- addExp | | | | |-- addExp | | | | | `-- mulExp | | | | | `-- unaryExp | | | | | `-- primaryExp | | | | | `-- lVal | | | | | `-- Ident: j | | | | |-- AddOp: + | | | | `-- mulExp | | | | `-- unaryExp | | | | `-- primaryExp | | | | `-- number | | | | `-- IntConst: 1 | | | `-- Semi: ; | | `-- R_BRACE: } | |-- blockItem | | `-- stmt | | |-- lVal | | | `-- Ident: j | | |-- 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: j | | | |-- LtOp: < | | | `-- addExp | | | `-- mulExp | | | `-- unaryExp | | | `-- primaryExp | | | `-- lVal | | | `-- Ident: h | | |-- R_PAREN: ) | | `-- stmt | | `-- block | | |-- L_BRACE: { | | |-- blockItem | | | `-- stmt | | | |-- lVal | | | | `-- Ident: tp1 | | | |-- Assign: = | | | |-- exp | | | | `-- addExp | | | | `-- mulExp | | | | `-- unaryExp | | | | `-- primaryExp | | | | `-- number | | | | `-- FloatConst: 0.0 | | | `-- Semi: ; | | |-- blockItem | | | `-- stmt | | | |-- lVal | | | | `-- Ident: tp2 | | | |-- Assign: = | | | |-- exp | | | | `-- addExp | | | | `-- mulExp | | | | `-- unaryExp | | | | `-- primaryExp | | | | `-- number | | | | `-- FloatConst: 0.0 | | | `-- Semi: ; | | |-- blockItem | | | `-- stmt | | | |-- lVal | | | | `-- Ident: yp1 | | | |-- Assign: = | | | |-- exp | | | | `-- addExp | | | | `-- mulExp | | | | `-- unaryExp | | | | `-- primaryExp | | | | `-- number | | | | `-- FloatConst: 0.0 | | | `-- Semi: ; | | |-- blockItem | | | `-- stmt | | | |-- lVal | | | | `-- Ident: yp2 | | | |-- Assign: = | | | |-- exp | | | | `-- addExp | | | | `-- mulExp | | | | `-- unaryExp | | | | `-- primaryExp | | | | `-- number | | | | `-- FloatConst: 0.0 | | | `-- Semi: ; | | |-- blockItem | | | `-- stmt | | | |-- lVal | | | | `-- Ident: i | | | |-- Assign: = | | | |-- exp | | | | `-- addExp | | | | |-- addExp | | | | | `-- mulExp | | | | | `-- unaryExp | | | | | `-- primaryExp | | | | | `-- lVal | | | | | `-- Ident: w | | | | |-- SubOp: - | | | | `-- 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 | | | | |-- GeOp: >= | | | | `-- addExp | | | | `-- mulExp | | | | `-- unaryExp | | | | `-- primaryExp | | | | `-- number | | | | `-- IntConst: 0 | | | |-- R_PAREN: ) | | | `-- stmt | | | `-- block | | | |-- L_BRACE: { | | | |-- blockItem | | | | `-- stmt | | | | |-- lVal | | | | | |-- Ident: y2 | | | | | |-- L_BRACKET: [ | | | | | |-- exp | | | | | | `-- addExp | | | | | | `-- mulExp | | | | | | `-- unaryExp | | | | | | `-- primaryExp | | | | | | `-- lVal | | | | | | `-- Ident: i | | | | | |-- R_BRACKET: ] | | | | | |-- L_BRACKET: [ | | | | | |-- exp | | | | | | `-- addExp | | | | | | `-- mulExp | | | | | | `-- unaryExp | | | | | | `-- primaryExp | | | | | | `-- lVal | | | | | | `-- Ident: j | | | | | `-- R_BRACKET: ] | | | | |-- Assign: = | | | | |-- exp | | | | | `-- addExp | | | | | |-- addExp | | | | | | |-- addExp | | | | | | | |-- addExp | | | | | | | | `-- mulExp | | | | | | | | |-- mulExp | | | | | | | | | `-- unaryExp | | | | | | | | | `-- primaryExp | | | | | | | | | `-- lVal | | | | | | | | | `-- Ident: a7 | | | | | | | | |-- MulOp: * | | | | | | | | `-- unaryExp | | | | | | | | `-- primaryExp | | | | | | | | `-- lVal | | | | | | | | `-- Ident: tp1 | | | | | | | |-- AddOp: + | | | | | | | `-- mulExp | | | | | | | |-- mulExp | | | | | | | | `-- unaryExp | | | | | | | | `-- primaryExp | | | | | | | | `-- lVal | | | | | | | | `-- Ident: a8 | | | | | | | |-- MulOp: * | | | | | | | `-- unaryExp | | | | | | | `-- primaryExp | | | | | | | `-- lVal | | | | | | | `-- Ident: tp2 | | | | | | |-- AddOp: + | | | | | | `-- mulExp | | | | | | |-- mulExp | | | | | | | `-- unaryExp | | | | | | | `-- primaryExp | | | | | | | `-- lVal | | | | | | | `-- Ident: b1 | | | | | | |-- MulOp: * | | | | | | `-- unaryExp | | | | | | `-- primaryExp | | | | | | `-- lVal | | | | | | `-- Ident: yp1 | | | | | |-- AddOp: + | | | | | `-- mulExp | | | | | |-- mulExp | | | | | | `-- unaryExp | | | | | | `-- primaryExp | | | | | | `-- lVal | | | | | | `-- Ident: b2 | | | | | |-- MulOp: * | | | | | `-- unaryExp | | | | | `-- primaryExp | | | | | `-- lVal | | | | | `-- Ident: yp2 | | | | `-- Semi: ; | | | |-- blockItem | | | | `-- stmt | | | | |-- lVal | | | | | `-- Ident: tp2 | | | | |-- Assign: = | | | | |-- exp | | | | | `-- addExp | | | | | `-- mulExp | | | | | `-- unaryExp | | | | | `-- primaryExp | | | | | `-- lVal | | | | | `-- Ident: tp1 | | | | `-- Semi: ; | | | |-- blockItem | | | | `-- stmt | | | | |-- lVal | | | | | `-- Ident: tp1 | | | | |-- Assign: = | | | | |-- exp | | | | | `-- addExp | | | | | `-- mulExp | | | | | `-- unaryExp | | | | | `-- primaryExp | | | | | `-- lVal | | | | | |-- Ident: imgOut | | | | | |-- L_BRACKET: [ | | | | | |-- exp | | | | | | `-- addExp | | | | | | `-- mulExp | | | | | | `-- unaryExp | | | | | | `-- primaryExp | | | | | | `-- lVal | | | | | | `-- Ident: i | | | | | |-- R_BRACKET: ] | | | | | |-- L_BRACKET: [ | | | | | |-- exp | | | | | | `-- addExp | | | | | | `-- mulExp | | | | | | `-- unaryExp | | | | | | `-- primaryExp | | | | | | `-- lVal | | | | | | `-- Ident: j | | | | | `-- R_BRACKET: ] | | | | `-- Semi: ; | | | |-- blockItem | | | | `-- stmt | | | | |-- lVal | | | | | `-- Ident: yp2 | | | | |-- Assign: = | | | | |-- exp | | | | | `-- addExp | | | | | `-- mulExp | | | | | `-- unaryExp | | | | | `-- primaryExp | | | | | `-- lVal | | | | | `-- Ident: yp1 | | | | `-- Semi: ; | | | |-- blockItem | | | | `-- stmt | | | | |-- lVal | | | | | `-- Ident: yp1 | | | | |-- Assign: = | | | | |-- exp | | | | | `-- addExp | | | | | `-- mulExp | | | | | `-- unaryExp | | | | | `-- primaryExp | | | | | `-- lVal | | | | | |-- Ident: y2 | | | | | |-- L_BRACKET: [ | | | | | |-- exp | | | | | | `-- addExp | | | | | | `-- mulExp | | | | | | `-- unaryExp | | | | | | `-- primaryExp | | | | | | `-- lVal | | | | | | `-- Ident: i | | | | | |-- R_BRACKET: ] | | | | | |-- L_BRACKET: [ | | | | | |-- exp | | | | | | `-- addExp | | | | | | `-- mulExp | | | | | | `-- unaryExp | | | | | | `-- primaryExp | | | | | | `-- lVal | | | | | | `-- Ident: j | | | | | `-- R_BRACKET: ] | | | | `-- Semi: ; | | | |-- blockItem | | | | `-- stmt | | | | |-- lVal | | | | | `-- Ident: i | | | | |-- Assign: = | | | | |-- exp | | | | | `-- addExp | | | | | |-- addExp | | | | | | `-- mulExp | | | | | | `-- unaryExp | | | | | | `-- primaryExp | | | | | | `-- lVal | | | | | | `-- Ident: i | | | | | |-- SubOp: - | | | | | `-- mulExp | | | | | `-- unaryExp | | | | | `-- primaryExp | | | | | `-- number | | | | | `-- IntConst: 1 | | | | `-- Semi: ; | | | `-- R_BRACE: } | | |-- blockItem | | | `-- stmt | | | |-- lVal | | | | `-- Ident: j | | | |-- Assign: = | | | |-- exp | | | | `-- addExp | | | | |-- addExp | | | | | `-- mulExp | | | | | `-- unaryExp | | | | | `-- primaryExp | | | | | `-- lVal | | | | | `-- Ident: j | | | | |-- AddOp: + | | | | `-- mulExp | | | | `-- unaryExp | | | | `-- primaryExp | | | | `-- number | | | | `-- IntConst: 1 | | | `-- Semi: ; | | `-- R_BRACE: } | |-- blockItem | | `-- stmt | | |-- lVal | | | `-- Ident: i | | |-- 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: i | | | |-- LtOp: < | | | `-- addExp | | | `-- mulExp | | | `-- unaryExp | | | `-- primaryExp | | | `-- lVal | | | `-- Ident: w | | |-- R_PAREN: ) | | `-- stmt | | `-- block | | |-- L_BRACE: { | | |-- blockItem | | | `-- stmt | | | |-- lVal | | | | `-- Ident: j | | | |-- 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: j | | | | |-- LtOp: < | | | | `-- addExp | | | | `-- mulExp | | | | `-- unaryExp | | | | `-- primaryExp | | | | `-- lVal | | | | `-- Ident: h | | | |-- R_PAREN: ) | | | `-- stmt | | | `-- block | | | |-- L_BRACE: { | | | |-- blockItem | | | | `-- stmt | | | | |-- lVal | | | | | |-- Ident: imgOut | | | | | |-- L_BRACKET: [ | | | | | |-- exp | | | | | | `-- addExp | | | | | | `-- mulExp | | | | | | `-- unaryExp | | | | | | `-- primaryExp | | | | | | `-- lVal | | | | | | `-- Ident: i | | | | | |-- R_BRACKET: ] | | | | | |-- L_BRACKET: [ | | | | | |-- exp | | | | | | `-- addExp | | | | | | `-- mulExp | | | | | | `-- unaryExp | | | | | | `-- primaryExp | | | | | | `-- lVal | | | | | | `-- Ident: j | | | | | `-- R_BRACKET: ] | | | | |-- Assign: = | | | | |-- exp | | | | | `-- addExp | | | | | `-- mulExp | | | | | |-- mulExp | | | | | | `-- unaryExp | | | | | | `-- primaryExp | | | | | | `-- lVal | | | | | | `-- Ident: c2 | | | | | |-- MulOp: * | | | | | `-- unaryExp | | | | | `-- primaryExp | | | | | |-- L_PAREN: ( | | | | | |-- exp | | | | | | `-- addExp | | | | | | |-- addExp | | | | | | | `-- mulExp | | | | | | | `-- unaryExp | | | | | | | `-- primaryExp | | | | | | | `-- lVal | | | | | | | |-- Ident: y1 | | | | | | | |-- L_BRACKET: [ | | | | | | | |-- exp | | | | | | | | `-- addExp | | | | | | | | `-- mulExp | | | | | | | | `-- unaryExp | | | | | | | | `-- primaryExp | | | | | | | | `-- lVal | | | | | | | | `-- Ident: i | | | | | | | |-- R_BRACKET: ] | | | | | | | |-- L_BRACKET: [ | | | | | | | |-- exp | | | | | | | | `-- addExp | | | | | | | | `-- mulExp | | | | | | | | `-- unaryExp | | | | | | | | `-- primaryExp | | | | | | | | `-- lVal | | | | | | | | `-- Ident: j | | | | | | | `-- R_BRACKET: ] | | | | | | |-- AddOp: + | | | | | | `-- mulExp | | | | | | `-- unaryExp | | | | | | `-- primaryExp | | | | | | `-- lVal | | | | | | |-- Ident: y2 | | | | | | |-- L_BRACKET: [ | | | | | | |-- exp | | | | | | | `-- addExp | | | | | | | `-- mulExp | | | | | | | `-- unaryExp | | | | | | | `-- primaryExp | | | | | | | `-- lVal | | | | | | | `-- Ident: i | | | | | | |-- R_BRACKET: ] | | | | | | |-- L_BRACKET: [ | | | | | | |-- exp | | | | | | | `-- addExp | | | | | | | `-- mulExp | | | | | | | `-- unaryExp | | | | | | | `-- primaryExp | | | | | | | `-- lVal | | | | | | | `-- Ident: j | | | | | | `-- R_BRACKET: ] | | | | | `-- R_PAREN: ) | | | | `-- Semi: ; | | | |-- blockItem | | | | `-- stmt | | | | |-- lVal | | | | | `-- Ident: j | | | | |-- Assign: = | | | | |-- exp | | | | | `-- addExp | | | | | |-- addExp | | | | | | `-- mulExp | | | | | | `-- unaryExp | | | | | | `-- primaryExp | | | | | | `-- lVal | | | | | | `-- Ident: j | | | | | |-- AddOp: + | | | | | `-- mulExp | | | | | `-- unaryExp | | | | | `-- primaryExp | | | | | `-- number | | | | | `-- IntConst: 1 | | | | `-- Semi: ; | | | `-- R_BRACE: } | | |-- 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: } |-- funcDef | |-- funcType | | `-- Int: int | |-- Ident: main | |-- L_PAREN: ( | |-- R_PAREN: ) | `-- block | |-- L_BRACE: { | |-- blockItem | | `-- stmt | | |-- exp | | | `-- addExp | | | `-- mulExp | | | `-- unaryExp | | | |-- Ident: getfarray | | | |-- L_PAREN: ( | | | |-- funcRParams | | | | `-- exp | | | | `-- addExp | | | | `-- mulExp | | | | `-- unaryExp | | | | `-- primaryExp | | | | `-- lVal | | | | `-- Ident: imgIn | | | `-- R_PAREN: ) | | `-- Semi: ; | |-- blockItem | | `-- stmt | | |-- exp | | | `-- addExp | | | `-- mulExp | | | `-- unaryExp | | | |-- Ident: starttime | | | |-- L_PAREN: ( | | | `-- R_PAREN: ) | | `-- Semi: ; | |-- blockItem | | `-- stmt | | |-- exp | | | `-- addExp | | | `-- mulExp | | | `-- unaryExp | | | |-- Ident: kernel_deriche | | | |-- L_PAREN: ( | | | |-- funcRParams | | | | |-- exp | | | | | `-- addExp | | | | | `-- mulExp | | | | | `-- unaryExp | | | | | `-- primaryExp | | | | | `-- lVal | | | | | `-- Ident: w | | | | |-- Comma: , | | | | |-- exp | | | | | `-- addExp | | | | | `-- mulExp | | | | | `-- unaryExp | | | | | `-- primaryExp | | | | | `-- lVal | | | | | `-- Ident: h | | | | |-- Comma: , | | | | |-- exp | | | | | `-- addExp | | | | | `-- mulExp | | | | | `-- unaryExp | | | | | `-- primaryExp | | | | | `-- lVal | | | | | `-- Ident: alpha | | | | |-- Comma: , | | | | |-- exp | | | | | `-- addExp | | | | | `-- mulExp | | | | | `-- unaryExp | | | | | `-- primaryExp | | | | | `-- lVal | | | | | `-- Ident: imgIn | | | | |-- Comma: , | | | | |-- exp | | | | | `-- addExp | | | | | `-- mulExp | | | | | `-- unaryExp | | | | | `-- primaryExp | | | | | `-- lVal | | | | | `-- Ident: imgOut | | | | |-- Comma: , | | | | |-- exp | | | | | `-- addExp | | | | | `-- mulExp | | | | | `-- unaryExp | | | | | `-- primaryExp | | | | | `-- lVal | | | | | `-- Ident: my_y1 | | | | |-- Comma: , | | | | `-- exp | | | | `-- addExp | | | | `-- mulExp | | | | `-- unaryExp | | | | `-- primaryExp | | | | `-- lVal | | | | `-- Ident: my_y2 | | | `-- R_PAREN: ) | | `-- Semi: ; | |-- blockItem | | `-- stmt | | |-- exp | | | `-- addExp | | | `-- mulExp | | | `-- unaryExp | | | |-- Ident: stoptime | | | |-- L_PAREN: ( | | | `-- R_PAREN: ) | | `-- Semi: ; | |-- blockItem | | `-- stmt | | |-- exp | | | `-- addExp | | | `-- mulExp | | | `-- unaryExp | | | |-- Ident: putfarray | | | |-- L_PAREN: ( | | | |-- funcRParams | | | | |-- exp | | | | | `-- addExp | | | | | `-- mulExp | | | | | |-- mulExp | | | | | | `-- unaryExp | | | | | | `-- primaryExp | | | | | | `-- lVal | | | | | | `-- Ident: w | | | | | |-- MulOp: * | | | | | `-- unaryExp | | | | | `-- primaryExp | | | | | `-- lVal | | | | | `-- Ident: h | | | | |-- Comma: , | | | | `-- exp | | | | `-- addExp | | | | `-- mulExp | | | | `-- unaryExp | | | | `-- primaryExp | | | | `-- lVal | | | | `-- Ident: imgOut | | | `-- R_PAREN: ) | | `-- Semi: ; | |-- blockItem | | `-- stmt | | |-- Return: return | | |-- exp | | | `-- addExp | | | `-- mulExp | | | `-- unaryExp | | | `-- primaryExp | | | `-- number | | | `-- IntConst: 0 | | `-- Semi: ; | `-- R_BRACE: } `-- EOF: