-
JavaCC컴파일러/중간 표현 2013. 7. 25. 12:56
단계적으로 기계어에 가까운 표현
모두 점프문(jump statement)
제어 구조
연산자에 부호
모두 포인터
구조체
배열
포인터
트리 구조
중간 표현 노드
three-address code
Quadruple
문장(Stmt)의 리스트
Assign -> Stmt
CJump -> Stmt
.cond() // Expr
Jump -> Stmt
.label()
Return -> Stmt
.expr()
LabelStmt -> Stmt
.label()
Expr(식)
.type()
.asmValue() // ImmediateValue
Uni -> Expr
e.g. .. notl %eax
.expr()
Bin -> Expr
e.g. .. push %eax .. pop %ecx .. addl %ecx, %eax
.op()
.left() // Expr
.right() // Expr
Mem -> Expr // 디레퍼런스
Var -> Expr // 변수 참조
.memref()
Call -> Expr
.isStaticCall()
.function()
.expr()
.args()
.numArgs()
Int -> Expr
movl $n, %eax
.value()
Str -> Expr