|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object piglet.visitor.GJDepthFirst<SpigletResult,SpigletContext> piglet.translate.SpigletTranslator
public final class SpigletTranslator
Translates a Piglet AST to a Spiglet AST. The grammar for the Spiglet language can be found here, and its specification here.
Constructor Summary | |
---|---|
SpigletTranslator()
Creates a translator visitor. |
Method Summary | |
---|---|
Goal |
translate(Goal p)
Visits a Piglet AST, constructing a Spiglet AST along the way, and then returns the root of the latter tree. |
SpigletResult |
visit(BinOp n,
SpigletContext argu)
operator -> Operator() exp -> Exp() exp1 -> Exp() |
SpigletResult |
visit(Call n,
SpigletContext argu)
nodeToken -> "CALL" exp -> Exp() nodeToken1 -> "(" nodeListOptional -> ( Exp() )* nodeToken2 -> ")" |
SpigletResult |
visit(CJumpStmt n,
SpigletContext argu)
nodeToken -> "CJUMP" exp -> Exp() label -> Label() |
SpigletResult |
visit(ErrorStmt n,
SpigletContext argu)
nodeToken -> "ERROR" |
SpigletResult |
visit(Exp n,
SpigletContext argu)
nodeChoice -> StmtExp() | Call() | HAllocate() | BinOp() | Temp() | IntegerLiteral() | Label() |
SpigletResult |
visit(HAllocate n,
SpigletContext argu)
nodeToken -> "HALLOCATE" exp -> Exp() |
SpigletResult |
visit(HLoadStmt n,
SpigletContext argu)
nodeToken -> "HLOAD" temp -> Temp() exp -> Exp() integerLiteral -> IntegerLiteral() |
SpigletResult |
visit(HStoreStmt n,
SpigletContext argu)
nodeToken -> "HSTORE" exp -> Exp() integerLiteral -> IntegerLiteral() exp1 -> Exp() |
SpigletResult |
visit(IntegerLiteral n,
SpigletContext argu)
nodeToken -> <INTEGER_LITERAL> |
SpigletResult |
visit(JumpStmt n,
SpigletContext argu)
nodeToken -> "JUMP" label -> Label() |
SpigletResult |
visit(Label n,
SpigletContext argu)
nodeToken -> <IDENTIFIER> |
SpigletResult |
visit(MoveStmt n,
SpigletContext argu)
nodeToken -> "MOVE" temp -> Temp() exp -> Exp() |
SpigletResult |
visit(NoOpStmt n,
SpigletContext argu)
nodeToken -> "NOOP" |
SpigletResult |
visit(PrintStmt n,
SpigletContext argu)
nodeToken -> "PRINT" exp -> Exp() |
SpigletResult |
visit(Procedure n,
SpigletContext argu)
label -> Label() nodeToken -> "[" integerLiteral -> IntegerLiteral() nodeToken1 -> "]" stmtExp -> StmtExp() |
SpigletResult |
visit(StmtExp n,
SpigletContext argu)
nodeToken -> "BEGIN" stmtList -> StmtList() nodeToken1 -> "RETURN" exp -> Exp() nodeToken2 -> "END" |
SpigletResult |
visit(StmtList n,
SpigletContext argu)
nodeListOptional -> ( ( Label() )? Stmt() )* |
SpigletResult |
visit(Temp n,
SpigletContext argu)
nodeToken -> "TEMP" integerLiteral -> IntegerLiteral() |
Methods inherited from class piglet.visitor.GJDepthFirst |
---|
visit, visit, visit, visit, visit, visit, visit, visit |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Constructor Detail |
---|
public SpigletTranslator()
translate(piglet.syntaxtree.Goal)
to produce
a Spiglet AST from a given Piglet AST.
Method Detail |
---|
public Goal translate(Goal p)
p
- the Piglet AST's root node (Goal)
public SpigletResult visit(StmtList n, SpigletContext argu)
GJDepthFirst
nodeListOptional -> ( ( Label() )? Stmt() )*
visit
in interface GJVisitor<SpigletResult,SpigletContext>
visit
in class GJDepthFirst<SpigletResult,SpigletContext>
public SpigletResult visit(Procedure n, SpigletContext argu)
GJDepthFirst
label -> Label() nodeToken -> "[" integerLiteral -> IntegerLiteral() nodeToken1 -> "]" stmtExp -> StmtExp()
visit
in interface GJVisitor<SpigletResult,SpigletContext>
visit
in class GJDepthFirst<SpigletResult,SpigletContext>
public SpigletResult visit(NoOpStmt n, SpigletContext argu)
GJDepthFirst
nodeToken -> "NOOP"
visit
in interface GJVisitor<SpigletResult,SpigletContext>
visit
in class GJDepthFirst<SpigletResult,SpigletContext>
public SpigletResult visit(ErrorStmt n, SpigletContext argu)
GJDepthFirst
nodeToken -> "ERROR"
visit
in interface GJVisitor<SpigletResult,SpigletContext>
visit
in class GJDepthFirst<SpigletResult,SpigletContext>
public SpigletResult visit(JumpStmt n, SpigletContext argu)
GJDepthFirst
nodeToken -> "JUMP" label -> Label()
visit
in interface GJVisitor<SpigletResult,SpigletContext>
visit
in class GJDepthFirst<SpigletResult,SpigletContext>
public SpigletResult visit(MoveStmt n, SpigletContext argu)
GJDepthFirst
nodeToken -> "MOVE" temp -> Temp() exp -> Exp()
visit
in interface GJVisitor<SpigletResult,SpigletContext>
visit
in class GJDepthFirst<SpigletResult,SpigletContext>
public SpigletResult visit(PrintStmt n, SpigletContext argu)
GJDepthFirst
nodeToken -> "PRINT" exp -> Exp()
visit
in interface GJVisitor<SpigletResult,SpigletContext>
visit
in class GJDepthFirst<SpigletResult,SpigletContext>
public SpigletResult visit(CJumpStmt n, SpigletContext argu)
GJDepthFirst
nodeToken -> "CJUMP" exp -> Exp() label -> Label()
visit
in interface GJVisitor<SpigletResult,SpigletContext>
visit
in class GJDepthFirst<SpigletResult,SpigletContext>
public SpigletResult visit(HLoadStmt n, SpigletContext argu)
GJDepthFirst
nodeToken -> "HLOAD" temp -> Temp() exp -> Exp() integerLiteral -> IntegerLiteral()
visit
in interface GJVisitor<SpigletResult,SpigletContext>
visit
in class GJDepthFirst<SpigletResult,SpigletContext>
public SpigletResult visit(HStoreStmt n, SpigletContext argu)
GJDepthFirst
nodeToken -> "HSTORE" exp -> Exp() integerLiteral -> IntegerLiteral() exp1 -> Exp()
visit
in interface GJVisitor<SpigletResult,SpigletContext>
visit
in class GJDepthFirst<SpigletResult,SpigletContext>
public SpigletResult visit(Exp n, SpigletContext argu)
GJDepthFirst
nodeChoice -> StmtExp() | Call() | HAllocate() | BinOp() | Temp() | IntegerLiteral() | Label()
visit
in interface GJVisitor<SpigletResult,SpigletContext>
visit
in class GJDepthFirst<SpigletResult,SpigletContext>
public SpigletResult visit(Call n, SpigletContext argu)
GJDepthFirst
nodeToken -> "CALL" exp -> Exp() nodeToken1 -> "(" nodeListOptional -> ( Exp() )* nodeToken2 -> ")"
visit
in interface GJVisitor<SpigletResult,SpigletContext>
visit
in class GJDepthFirst<SpigletResult,SpigletContext>
public SpigletResult visit(HAllocate n, SpigletContext argu)
GJDepthFirst
nodeToken -> "HALLOCATE" exp -> Exp()
visit
in interface GJVisitor<SpigletResult,SpigletContext>
visit
in class GJDepthFirst<SpigletResult,SpigletContext>
public SpigletResult visit(BinOp n, SpigletContext argu)
GJDepthFirst
operator -> Operator() exp -> Exp() exp1 -> Exp()
visit
in interface GJVisitor<SpigletResult,SpigletContext>
visit
in class GJDepthFirst<SpigletResult,SpigletContext>
public SpigletResult visit(StmtExp n, SpigletContext argu)
GJDepthFirst
nodeToken -> "BEGIN" stmtList -> StmtList() nodeToken1 -> "RETURN" exp -> Exp() nodeToken2 -> "END"
visit
in interface GJVisitor<SpigletResult,SpigletContext>
visit
in class GJDepthFirst<SpigletResult,SpigletContext>
public SpigletResult visit(IntegerLiteral n, SpigletContext argu)
GJDepthFirst
nodeToken -> <INTEGER_LITERAL>
visit
in interface GJVisitor<SpigletResult,SpigletContext>
visit
in class GJDepthFirst<SpigletResult,SpigletContext>
public SpigletResult visit(Temp n, SpigletContext argu)
GJDepthFirst
nodeToken -> "TEMP" integerLiteral -> IntegerLiteral()
visit
in interface GJVisitor<SpigletResult,SpigletContext>
visit
in class GJDepthFirst<SpigletResult,SpigletContext>
public SpigletResult visit(Label n, SpigletContext argu)
GJDepthFirst
nodeToken -> <IDENTIFIER>
visit
in interface GJVisitor<SpigletResult,SpigletContext>
visit
in class GJDepthFirst<SpigletResult,SpigletContext>
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |