piglet.visitor
Interface GJVisitor<R,A>

All Known Implementing Classes:
GJDepthFirst, SpigletTranslator

public interface GJVisitor<R,A>

All GJ visitors must implement this interface.


Method Summary
 R visit(BinOp n, A argu)
           operator -> Operator() exp -> Exp() exp1 -> Exp()
 R visit(Call n, A argu)
           nodeToken -> "CALL" exp -> Exp() nodeToken1 -> "(" nodeListOptional -> ( Exp() )* nodeToken2 -> ")"
 R visit(CJumpStmt n, A argu)
           nodeToken -> "CJUMP" exp -> Exp() label -> Label()
 R visit(ErrorStmt n, A argu)
           nodeToken -> "ERROR"
 R visit(Exp n, A argu)
           nodeChoice -> StmtExp() | Call() | HAllocate() | BinOp() | Temp() | IntegerLiteral() | Label()
 R visit(Goal n, A argu)
           nodeToken -> "MAIN" stmtList -> StmtList() nodeToken1 -> "END" nodeListOptional -> ( Procedure() )* nodeToken2 -> <EOF>
 R visit(HAllocate n, A argu)
           nodeToken -> "HALLOCATE" exp -> Exp()
 R visit(HLoadStmt n, A argu)
           nodeToken -> "HLOAD" temp -> Temp() exp -> Exp() integerLiteral -> IntegerLiteral()
 R visit(HStoreStmt n, A argu)
           nodeToken -> "HSTORE" exp -> Exp() integerLiteral -> IntegerLiteral() exp1 -> Exp()
 R visit(IntegerLiteral n, A argu)
           nodeToken -> <INTEGER_LITERAL>
 R visit(JumpStmt n, A argu)
           nodeToken -> "JUMP" label -> Label()
 R visit(Label n, A argu)
           nodeToken -> <IDENTIFIER>
 R visit(MoveStmt n, A argu)
           nodeToken -> "MOVE" temp -> Temp() exp -> Exp()
 R visit(NodeList n, A argu)
           
 R visit(NodeListOptional n, A argu)
           
 R visit(NodeOptional n, A argu)
           
 R visit(NodeSequence n, A argu)
           
 R visit(NodeToken n, A argu)
           
 R visit(NoOpStmt n, A argu)
           nodeToken -> "NOOP"
 R visit(Operator n, A argu)
           nodeChoice -> "LT" | "PLUS" | "MINUS" | "TIMES"
 R visit(PrintStmt n, A argu)
           nodeToken -> "PRINT" exp -> Exp()
 R visit(Procedure n, A argu)
           label -> Label() nodeToken -> "[" integerLiteral -> IntegerLiteral() nodeToken1 -> "]" stmtExp -> StmtExp()
 R visit(Stmt n, A argu)
           nodeChoice -> NoOpStmt() | ErrorStmt() | CJumpStmt() | JumpStmt() | HStoreStmt() | HLoadStmt() | MoveStmt() | PrintStmt()
 R visit(StmtExp n, A argu)
           nodeToken -> "BEGIN" stmtList -> StmtList() nodeToken1 -> "RETURN" exp -> Exp() nodeToken2 -> "END"
 R visit(StmtList n, A argu)
           nodeListOptional -> ( ( Label() )? Stmt() )*
 R visit(Temp n, A argu)
           nodeToken -> "TEMP" integerLiteral -> IntegerLiteral()
 

Method Detail

visit

R visit(NodeList n,
        A argu)

visit

R visit(NodeListOptional n,
        A argu)

visit

R visit(NodeOptional n,
        A argu)

visit

R visit(NodeSequence n,
        A argu)

visit

R visit(NodeToken n,
        A argu)

visit

R visit(Goal n,
        A argu)
 nodeToken -> "MAIN"
 stmtList -> StmtList()
 nodeToken1 -> "END"
 nodeListOptional -> ( Procedure() )*
 nodeToken2 -> <EOF>
 


visit

R visit(StmtList n,
        A argu)
 nodeListOptional -> ( ( Label() )? Stmt() )*
 


visit

R visit(Procedure n,
        A argu)
 label -> Label()
 nodeToken -> "["
 integerLiteral -> IntegerLiteral()
 nodeToken1 -> "]"
 stmtExp -> StmtExp()
 


visit

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


visit

R visit(NoOpStmt n,
        A argu)
 nodeToken -> "NOOP"
 


visit

R visit(ErrorStmt n,
        A argu)
 nodeToken -> "ERROR"
 


visit

R visit(CJumpStmt n,
        A argu)
 nodeToken -> "CJUMP"
 exp -> Exp()
 label -> Label()
 


visit

R visit(JumpStmt n,
        A argu)
 nodeToken -> "JUMP"
 label -> Label()
 


visit

R visit(HStoreStmt n,
        A argu)
 nodeToken -> "HSTORE"
 exp -> Exp()
 integerLiteral -> IntegerLiteral()
 exp1 -> Exp()
 


visit

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


visit

R visit(MoveStmt n,
        A argu)
 nodeToken -> "MOVE"
 temp -> Temp()
 exp -> Exp()
 


visit

R visit(PrintStmt n,
        A argu)
 nodeToken -> "PRINT"
 exp -> Exp()
 


visit

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


visit

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


visit

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


visit

R visit(HAllocate n,
        A argu)
 nodeToken -> "HALLOCATE"
 exp -> Exp()
 


visit

R visit(BinOp n,
        A argu)
 operator -> Operator()
 exp -> Exp()
 exp1 -> Exp()
 


visit

R visit(Operator n,
        A argu)
 nodeChoice -> "LT"
       | "PLUS"
       | "MINUS"
       | "TIMES"
 


visit

R visit(Temp n,
        A argu)
 nodeToken -> "TEMP"
 integerLiteral -> IntegerLiteral()
 


visit

R visit(IntegerLiteral n,
        A argu)
 nodeToken -> <INTEGER_LITERAL>
 


visit

R visit(Label n,
        A argu)
 nodeToken -> <IDENTIFIER>