kanga.visitor
Interface Visitor

All Known Implementing Classes:
DepthFirstVisitor, KangaFormatter, TreeDumper, TreeFormatter

public interface Visitor

All void visitors must implement this interface.


Method Summary
 void visit(ALoadStmt n)
           nodeToken -> "ALOAD" reg -> Reg() spilledArg -> SpilledArg()
 void visit(AStoreStmt n)
           nodeToken -> "ASTORE" spilledArg -> SpilledArg() reg -> Reg()
 void visit(BinOp n)
           operator -> Operator() reg -> Reg() simpleExp -> SimpleExp()
 void visit(CallStmt n)
           nodeToken -> "CALL" simpleExp -> SimpleExp()
 void visit(CJumpStmt n)
           nodeToken -> "CJUMP" reg -> Reg() label -> Label()
 void visit(ErrorStmt n)
           nodeToken -> "ERROR"
 void visit(Exp n)
           nodeChoice -> HAllocate() | BinOp() | SimpleExp()
 void visit(Goal n)
           nodeToken -> "MAIN" nodeToken1 -> "[" integerLiteral -> IntegerLiteral() nodeToken2 -> "]" nodeToken3 -> "[" integerLiteral1 -> IntegerLiteral() nodeToken4 -> "]" nodeToken5 -> "[" integerLiteral2 -> IntegerLiteral() nodeToken6 -> "]" stmtList -> StmtList() nodeToken7 -> "END" nodeListOptional -> ( Procedure() )* nodeToken8 -> <EOF>
 void visit(HAllocate n)
           nodeToken -> "HALLOCATE" simpleExp -> SimpleExp()
 void visit(HLoadStmt n)
           nodeToken -> "HLOAD" reg -> Reg() reg1 -> Reg() integerLiteral -> IntegerLiteral()
 void visit(HStoreStmt n)
           nodeToken -> "HSTORE" reg -> Reg() integerLiteral -> IntegerLiteral() reg1 -> Reg()
 void visit(IntegerLiteral n)
           nodeToken -> <INTEGER_LITERAL>
 void visit(JumpStmt n)
           nodeToken -> "JUMP" label -> Label()
 void visit(Label n)
           nodeToken -> <IDENTIFIER>
 void visit(MoveStmt n)
           nodeToken -> "MOVE" reg -> Reg() exp -> Exp()
 void visit(NodeList n)
           
 void visit(NodeListOptional n)
           
 void visit(NodeOptional n)
           
 void visit(NodeSequence n)
           
 void visit(NodeToken n)
           
 void visit(NoOpStmt n)
           nodeToken -> "NOOP"
 void visit(Operator n)
           nodeChoice -> "LT" | "PLUS" | "MINUS" | "TIMES"
 void visit(PassArgStmt n)
           nodeToken -> "PASSARG" integerLiteral -> IntegerLiteral() reg -> Reg()
 void visit(PrintStmt n)
           nodeToken -> "PRINT" simpleExp -> SimpleExp()
 void visit(Procedure n)
           label -> Label() nodeToken -> "[" integerLiteral -> IntegerLiteral() nodeToken1 -> "]" nodeToken2 -> "[" integerLiteral1 -> IntegerLiteral() nodeToken3 -> "]" nodeToken4 -> "[" integerLiteral2 -> IntegerLiteral() nodeToken5 -> "]" stmtList -> StmtList() nodeToken6 -> "END"
 void visit(Reg n)
           nodeChoice -> "a0" | "a1" | "a2" | "a3" | "t0" | "t1" | "t2" | "t3" | "t4" | "t5" | "t6" | "t7" | "s0" | "s1" | "s2" | "s3" | "s4" | "s5" | "s6" | "s7" | "t8" | "t9" | "v0" | "v1"
 void visit(SimpleExp n)
           nodeChoice -> Reg() | IntegerLiteral() | Label()
 void visit(SpilledArg n)
           nodeToken -> "SPILLEDARG" integerLiteral -> IntegerLiteral()
 void visit(Stmt n)
           nodeChoice -> NoOpStmt() | ErrorStmt() | CJumpStmt() | JumpStmt() | HStoreStmt() | HLoadStmt() | MoveStmt() | PrintStmt() | ALoadStmt() | AStoreStmt() | PassArgStmt() | CallStmt()
 void visit(StmtList n)
           nodeListOptional -> ( ( Label() )? Stmt() )*
 

Method Detail

visit

void visit(NodeList n)

visit

void visit(NodeListOptional n)

visit

void visit(NodeOptional n)

visit

void visit(NodeSequence n)

visit

void visit(NodeToken n)

visit

void visit(Goal n)
 nodeToken -> "MAIN"
 nodeToken1 -> "["
 integerLiteral -> IntegerLiteral()
 nodeToken2 -> "]"
 nodeToken3 -> "["
 integerLiteral1 -> IntegerLiteral()
 nodeToken4 -> "]"
 nodeToken5 -> "["
 integerLiteral2 -> IntegerLiteral()
 nodeToken6 -> "]"
 stmtList -> StmtList()
 nodeToken7 -> "END"
 nodeListOptional -> ( Procedure() )*
 nodeToken8 -> <EOF>
 


visit

void visit(StmtList n)
 nodeListOptional -> ( ( Label() )? Stmt() )*
 


visit

void visit(Procedure n)
 label -> Label()
 nodeToken -> "["
 integerLiteral -> IntegerLiteral()
 nodeToken1 -> "]"
 nodeToken2 -> "["
 integerLiteral1 -> IntegerLiteral()
 nodeToken3 -> "]"
 nodeToken4 -> "["
 integerLiteral2 -> IntegerLiteral()
 nodeToken5 -> "]"
 stmtList -> StmtList()
 nodeToken6 -> "END"
 


visit

void visit(Stmt n)
 nodeChoice -> NoOpStmt()
       | ErrorStmt()
       | CJumpStmt()
       | JumpStmt()
       | HStoreStmt()
       | HLoadStmt()
       | MoveStmt()
       | PrintStmt()
       | ALoadStmt()
       | AStoreStmt()
       | PassArgStmt()
       | CallStmt()
 


visit

void visit(NoOpStmt n)
 nodeToken -> "NOOP"
 


visit

void visit(ErrorStmt n)
 nodeToken -> "ERROR"
 


visit

void visit(CJumpStmt n)
 nodeToken -> "CJUMP"
 reg -> Reg()
 label -> Label()
 


visit

void visit(JumpStmt n)
 nodeToken -> "JUMP"
 label -> Label()
 


visit

void visit(HStoreStmt n)
 nodeToken -> "HSTORE"
 reg -> Reg()
 integerLiteral -> IntegerLiteral()
 reg1 -> Reg()
 


visit

void visit(HLoadStmt n)
 nodeToken -> "HLOAD"
 reg -> Reg()
 reg1 -> Reg()
 integerLiteral -> IntegerLiteral()
 


visit

void visit(MoveStmt n)
 nodeToken -> "MOVE"
 reg -> Reg()
 exp -> Exp()
 


visit

void visit(PrintStmt n)
 nodeToken -> "PRINT"
 simpleExp -> SimpleExp()
 


visit

void visit(ALoadStmt n)
 nodeToken -> "ALOAD"
 reg -> Reg()
 spilledArg -> SpilledArg()
 


visit

void visit(AStoreStmt n)
 nodeToken -> "ASTORE"
 spilledArg -> SpilledArg()
 reg -> Reg()
 


visit

void visit(PassArgStmt n)
 nodeToken -> "PASSARG"
 integerLiteral -> IntegerLiteral()
 reg -> Reg()
 


visit

void visit(CallStmt n)
 nodeToken -> "CALL"
 simpleExp -> SimpleExp()
 


visit

void visit(Exp n)
 nodeChoice -> HAllocate()
       | BinOp()
       | SimpleExp()
 


visit

void visit(HAllocate n)
 nodeToken -> "HALLOCATE"
 simpleExp -> SimpleExp()
 


visit

void visit(BinOp n)
 operator -> Operator()
 reg -> Reg()
 simpleExp -> SimpleExp()
 


visit

void visit(Operator n)
 nodeChoice -> "LT"
       | "PLUS"
       | "MINUS"
       | "TIMES"
 


visit

void visit(SpilledArg n)
 nodeToken -> "SPILLEDARG"
 integerLiteral -> IntegerLiteral()
 


visit

void visit(SimpleExp n)
 nodeChoice -> Reg()
       | IntegerLiteral()
       | Label()
 


visit

void visit(Reg n)
 nodeChoice -> "a0"
       | "a1"
       | "a2"
       | "a3"
       | "t0"
       | "t1"
       | "t2"
       | "t3"
       | "t4"
       | "t5"
       | "t6"
       | "t7"
       | "s0"
       | "s1"
       | "s2"
       | "s3"
       | "s4"
       | "s5"
       | "s6"
       | "s7"
       | "t8"
       | "t9"
       | "v0"
       | "v1"
 


visit

void visit(IntegerLiteral n)
 nodeToken -> <INTEGER_LITERAL>
 


visit

void visit(Label n)
 nodeToken -> <IDENTIFIER>