piglet.visitor
Class GJNoArguDepthFirst<R>

java.lang.Object
  extended by piglet.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(BinOp n)
           operator -> Operator() exp -> Exp() exp1 -> Exp()
 R visit(Call n)
           nodeToken -> "CALL" exp -> Exp() nodeToken1 -> "(" nodeListOptional -> ( Exp() )* nodeToken2 -> ")"
 R visit(CJumpStmt n)
           nodeToken -> "CJUMP" exp -> Exp() label -> Label()
 R visit(ErrorStmt n)
           nodeToken -> "ERROR"
 R visit(Exp n)
           nodeChoice -> StmtExp() | Call() | HAllocate() | BinOp() | Temp() | IntegerLiteral() | Label()
 R visit(Goal n)
           nodeToken -> "MAIN" stmtList -> StmtList() nodeToken1 -> "END" nodeListOptional -> ( Procedure() )* nodeToken2 -> <EOF>
 R visit(HAllocate n)
           nodeToken -> "HALLOCATE" exp -> Exp()
 R visit(HLoadStmt n)
           nodeToken -> "HLOAD" temp -> Temp() exp -> Exp() integerLiteral -> IntegerLiteral()
 R visit(HStoreStmt n)
           nodeToken -> "HSTORE" exp -> Exp() integerLiteral -> IntegerLiteral() exp1 -> Exp()
 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" temp -> Temp() 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(PrintStmt n)
           nodeToken -> "PRINT" exp -> Exp()
 R visit(Procedure n)
           label -> Label() nodeToken -> "[" integerLiteral -> IntegerLiteral() nodeToken1 -> "]" stmtExp -> StmtExp()
 R visit(Stmt n)
           nodeChoice -> NoOpStmt() | ErrorStmt() | CJumpStmt() | JumpStmt() | HStoreStmt() | HLoadStmt() | MoveStmt() | PrintStmt()
 R visit(StmtExp n)
           nodeToken -> "BEGIN" stmtList -> StmtList() nodeToken1 -> "RETURN" exp -> Exp() nodeToken2 -> "END"
 R visit(StmtList n)
           nodeListOptional -> ( ( Label() )? Stmt() )*
 R visit(Temp n)
           nodeToken -> "TEMP" integerLiteral -> IntegerLiteral()
 
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"
 stmtList -> StmtList()
 nodeToken1 -> "END"
 nodeListOptional -> ( Procedure() )*
 nodeToken2 -> <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 -> "]"
 stmtExp -> StmtExp()
 

Specified by:
visit in interface GJNoArguVisitor<R>

visit

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

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"
 exp -> Exp()
 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"
 exp -> Exp()
 integerLiteral -> IntegerLiteral()
 exp1 -> Exp()
 

Specified by:
visit in interface GJNoArguVisitor<R>

visit

public R visit(HLoadStmt n)
 nodeToken -> "HLOAD"
 temp -> Temp()
 exp -> Exp()
 integerLiteral -> IntegerLiteral()
 

Specified by:
visit in interface GJNoArguVisitor<R>

visit

public R visit(MoveStmt n)
 nodeToken -> "MOVE"
 temp -> Temp()
 exp -> Exp()
 

Specified by:
visit in interface GJNoArguVisitor<R>

visit

public R visit(PrintStmt n)
 nodeToken -> "PRINT"
 exp -> Exp()
 

Specified by:
visit in interface GJNoArguVisitor<R>

visit

public R visit(Exp n)
 nodeChoice -> StmtExp()
       | Call()
       | HAllocate()
       | BinOp()
       | Temp()
       | IntegerLiteral()
       | Label()
 

Specified by:
visit in interface GJNoArguVisitor<R>

visit

public R visit(StmtExp n)
 nodeToken -> "BEGIN"
 stmtList -> StmtList()
 nodeToken1 -> "RETURN"
 exp -> Exp()
 nodeToken2 -> "END"
 

Specified by:
visit in interface GJNoArguVisitor<R>

visit

public R visit(Call n)
 nodeToken -> "CALL"
 exp -> Exp()
 nodeToken1 -> "("
 nodeListOptional -> ( Exp() )*
 nodeToken2 -> ")"
 

Specified by:
visit in interface GJNoArguVisitor<R>

visit

public R visit(HAllocate n)
 nodeToken -> "HALLOCATE"
 exp -> Exp()
 

Specified by:
visit in interface GJNoArguVisitor<R>

visit

public R visit(BinOp n)
 operator -> Operator()
 exp -> Exp()
 exp1 -> Exp()
 

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(Temp n)
 nodeToken -> "TEMP"
 integerLiteral -> IntegerLiteral()
 

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>