|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||
java.lang.Objectpiglet.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)
GJDepthFirstnodeListOptional -> ( ( Label() )? Stmt() )*
visit in interface GJVisitor<SpigletResult,SpigletContext>visit in class GJDepthFirst<SpigletResult,SpigletContext>
public SpigletResult visit(Procedure n,
SpigletContext argu)
GJDepthFirstlabel -> 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)
GJDepthFirstnodeToken -> "NOOP"
visit in interface GJVisitor<SpigletResult,SpigletContext>visit in class GJDepthFirst<SpigletResult,SpigletContext>
public SpigletResult visit(ErrorStmt n,
SpigletContext argu)
GJDepthFirstnodeToken -> "ERROR"
visit in interface GJVisitor<SpigletResult,SpigletContext>visit in class GJDepthFirst<SpigletResult,SpigletContext>
public SpigletResult visit(JumpStmt n,
SpigletContext argu)
GJDepthFirstnodeToken -> "JUMP" label -> Label()
visit in interface GJVisitor<SpigletResult,SpigletContext>visit in class GJDepthFirst<SpigletResult,SpigletContext>
public SpigletResult visit(MoveStmt n,
SpigletContext argu)
GJDepthFirstnodeToken -> "MOVE" temp -> Temp() exp -> Exp()
visit in interface GJVisitor<SpigletResult,SpigletContext>visit in class GJDepthFirst<SpigletResult,SpigletContext>
public SpigletResult visit(PrintStmt n,
SpigletContext argu)
GJDepthFirstnodeToken -> "PRINT" exp -> Exp()
visit in interface GJVisitor<SpigletResult,SpigletContext>visit in class GJDepthFirst<SpigletResult,SpigletContext>
public SpigletResult visit(CJumpStmt n,
SpigletContext argu)
GJDepthFirstnodeToken -> "CJUMP" exp -> Exp() label -> Label()
visit in interface GJVisitor<SpigletResult,SpigletContext>visit in class GJDepthFirst<SpigletResult,SpigletContext>
public SpigletResult visit(HLoadStmt n,
SpigletContext argu)
GJDepthFirstnodeToken -> "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)
GJDepthFirstnodeToken -> "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)
GJDepthFirstnodeToken -> "HALLOCATE" exp -> Exp()
visit in interface GJVisitor<SpigletResult,SpigletContext>visit in class GJDepthFirst<SpigletResult,SpigletContext>
public SpigletResult visit(BinOp n,
SpigletContext argu)
GJDepthFirstoperator -> Operator() exp -> Exp() exp1 -> Exp()
visit in interface GJVisitor<SpigletResult,SpigletContext>visit in class GJDepthFirst<SpigletResult,SpigletContext>
public SpigletResult visit(StmtExp n,
SpigletContext argu)
GJDepthFirstnodeToken -> "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)
GJDepthFirstnodeToken -> <INTEGER_LITERAL>
visit in interface GJVisitor<SpigletResult,SpigletContext>visit in class GJDepthFirst<SpigletResult,SpigletContext>
public SpigletResult visit(Temp n,
SpigletContext argu)
GJDepthFirstnodeToken -> "TEMP" integerLiteral -> IntegerLiteral()
visit in interface GJVisitor<SpigletResult,SpigletContext>visit in class GJDepthFirst<SpigletResult,SpigletContext>
public SpigletResult visit(Label n,
SpigletContext argu)
GJDepthFirstnodeToken -> <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 | ||||||||