kanga.visitor
Class GJNoArguDepthFirst<R>

java.lang.Object
  extended by kanga.visitor.GJNoArguDepthFirst<R>
All Implemented Interfaces:
GJNoArguVisitor<R>

public class GJNoArguDepthFirst<R>
extends java.lang.Object
implements GJNoArguVisitor<R>

Provides default methods which visit each node in the tree in depth-first order. Your visitors may extend this class.


Constructor Summary
GJNoArguDepthFirst()
           
 
Method Summary
 R visit(ALoadStmt n)
           nodeToken -> "ALOAD" reg -> Reg() spilledArg -> SpilledArg()
 R visit(AStoreStmt n)
           nodeToken -> "ASTORE" spilledArg -> SpilledArg() reg -> Reg()
 R visit(BinOp n)
           operator -> Operator() reg -> Reg() simpleExp -> SimpleExp()
 R visit(CallStmt n)
           nodeToken -> "CALL" simpleExp -> SimpleExp()
 R visit(CJumpStmt n)
           nodeToken -> "CJUMP" reg -> Reg() label -> Label()
 R visit(ErrorStmt n)
           nodeToken -> "ERROR"
 R visit(Exp n)
           nodeChoice -> HAllocate() | BinOp() | SimpleExp()
 R 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>
 R visit(HAllocate n)
           nodeToken -> "HALLOCATE" simpleExp -> SimpleExp()
 R visit(HLoadStmt n)
           nodeToken -> "HLOAD" reg -> Reg() reg1 -> Reg() integerLiteral -> IntegerLiteral()
 R visit(HStoreStmt n)
           nodeToken -> "HSTORE" reg -> Reg() integerLiteral -> IntegerLiteral() reg1 -> Reg()
 R visit(IntegerLiteral n)
           nodeToken -> <INTEGER_LITERAL>
 R visit(JumpStmt n)
           nodeToken -> "JUMP" label -> Label()
 R visit(Label n)
           nodeToken -> <IDENTIFIER>
 R visit(MoveStmt n)
           nodeToken -> "MOVE" reg -> Reg() exp -> Exp()
 R visit(NodeList n)
           
 R visit(NodeListOptional n)
           
 R visit(NodeOptional n)
           
 R visit(NodeSequence n)
           
 R visit(NodeToken n)
           
 R visit(NoOpStmt n)
           nodeToken -> "NOOP"
 R visit(Operator n)
           nodeChoice -> "LT" | "PLUS" | "MINUS" | "TIMES"
 R visit(PassArgStmt n)
           nodeToken -> "PASSARG" integerLiteral -> IntegerLiteral() reg -> Reg()
 R visit(PrintStmt n)
           nodeToken -> "PRINT" simpleExp -> SimpleExp()
 R visit(Procedure n)
           label -> Label() nodeToken -> "[" integerLiteral -> IntegerLiteral() nodeToken1 -> "]" nodeToken2 -> "[" integerLiteral1 -> IntegerLiteral() nodeToken3 -> "]" nodeToken4 -> "[" integerLiteral2 -> IntegerLiteral() nodeToken5 -> "]" stmtList -> StmtList() nodeToken6 -> "END"
 R 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"
 R visit(SimpleExp n)
           nodeChoice -> Reg() | IntegerLiteral() | Label()
 R visit(SpilledArg n)
           nodeToken -> "SPILLEDARG" integerLiteral -> IntegerLiteral()
 R visit(Stmt n)
           nodeChoice -> NoOpStmt() | ErrorStmt() | CJumpStmt() | JumpStmt() | HStoreStmt() | HLoadStmt() | MoveStmt() | PrintStmt() | ALoadStmt() | AStoreStmt() | PassArgStmt() | CallStmt()
 R visit(StmtList n)
           nodeListOptional -> ( ( Label() )? Stmt() )*
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

GJNoArguDepthFirst

public GJNoArguDepthFirst()
Method Detail

visit

public R visit(NodeList n)
Specified by:
visit in interface GJNoArguVisitor<R>

visit

public R visit(NodeListOptional n)
Specified by:
visit in interface GJNoArguVisitor<R>

visit

public R visit(NodeOptional n)
Specified by:
visit in interface GJNoArguVisitor<R>

visit

public R visit(NodeSequence n)
Specified by:
visit in interface GJNoArguVisitor<R>

visit

public R visit(NodeToken n)
Specified by:
visit in interface GJNoArguVisitor<R>

visit

public R 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>
 

Specified by:
visit in interface GJNoArguVisitor<R>

visit

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

Specified by:
visit in interface GJNoArguVisitor<R>

visit

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

Specified by:
visit in interface GJNoArguVisitor<R>

visit

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

Specified by:
visit in interface GJNoArguVisitor<R>

visit

public R visit(NoOpStmt n)
 nodeToken -> "NOOP"
 

Specified by:
visit in interface GJNoArguVisitor<R>

visit

public R visit(ErrorStmt n)
 nodeToken -> "ERROR"
 

Specified by:
visit in interface GJNoArguVisitor<R>

visit

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

Specified by:
visit in interface GJNoArguVisitor<R>

visit

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

Specified by:
visit in interface GJNoArguVisitor<R>

visit

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

Specified by:
visit in interface GJNoArguVisitor<R>

visit

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

Specified by:
visit in interface GJNoArguVisitor<R>

visit

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

Specified by:
visit in interface GJNoArguVisitor<R>

visit

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

Specified by:
visit in interface GJNoArguVisitor<R>

visit

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

Specified by:
visit in interface GJNoArguVisitor<R>

visit

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

Specified by:
visit in interface GJNoArguVisitor<R>

visit

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

Specified by:
visit in interface GJNoArguVisitor<R>

visit

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

Specified by:
visit in interface GJNoArguVisitor<R>

visit

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

Specified by:
visit in interface GJNoArguVisitor<R>

visit

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

Specified by:
visit in interface GJNoArguVisitor<R>

visit

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

Specified by:
visit in interface GJNoArguVisitor<R>

visit

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

Specified by:
visit in interface GJNoArguVisitor<R>

visit

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

Specified by:
visit in interface GJNoArguVisitor<R>

visit

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

Specified by:
visit in interface GJNoArguVisitor<R>

visit

public R 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"
 

Specified by:
visit in interface GJNoArguVisitor<R>

visit

public R visit(IntegerLiteral n)
 nodeToken -> <INTEGER_LITERAL>
 

Specified by:
visit in interface GJNoArguVisitor<R>

visit

public R visit(Label n)
 nodeToken -> <IDENTIFIER>
 

Specified by:
visit in interface GJNoArguVisitor<R>