|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object minijava.visitor.GJDepthFirst<PigletResult,PigletContext> minijava.translate.PigletTranslator
public final class PigletTranslator
Translates a MiniJava AST to a Piglet AST. The grammar for the Piglet language can be found here, and its specification here.
Constructor Summary | |
---|---|
PigletTranslator()
Creates a translator visitor. |
Method Summary | |
---|---|
Goal |
translate(Goal mj)
Visits a MiniJava AST, constructing a Piglet AST along the way, and then returns the root of the latter tree. |
PigletResult |
visit(AllocationExpression n,
PigletContext argu)
nodeToken -> "new" identifier -> Identifier() nodeToken1 -> "(" nodeToken2 -> ")" |
PigletResult |
visit(AndExpression n,
PigletContext argu)
primaryExpression -> PrimaryExpression() nodeToken -> "&&" primaryExpression1 -> PrimaryExpression() |
PigletResult |
visit(ArrayAllocationExpression n,
PigletContext argu)
nodeToken -> "new" nodeToken1 -> "int" nodeToken2 -> "[" expression -> Expression() nodeToken3 -> "]" |
PigletResult |
visit(ArrayAssignmentStatement n,
PigletContext argu)
identifier -> Identifier() nodeToken -> "[" expression -> Expression() nodeToken1 -> "]" nodeToken2 -> "=" expression1 -> Expression() nodeToken3 -> ";" |
PigletResult |
visit(ArrayLength n,
PigletContext argu)
primaryExpression -> PrimaryExpression() nodeToken -> "." nodeToken1 -> "length" |
PigletResult |
visit(ArrayLookup n,
PigletContext argu)
primaryExpression -> PrimaryExpression() nodeToken -> "[" primaryExpression1 -> PrimaryExpression() nodeToken1 -> "]" |
PigletResult |
visit(AssignmentStatement n,
PigletContext argu)
identifier -> Identifier() nodeToken -> "=" expression -> Expression() nodeToken1 -> ";" |
PigletResult |
visit(BracketExpression n,
PigletContext argu)
nodeToken -> "(" expression -> Expression() nodeToken1 -> ")" |
PigletResult |
visit(ClassDeclaration n,
PigletContext argu)
nodeToken -> "class" identifier -> Identifier() nodeToken1 -> "{" nodeListOptional -> ( VarDeclaration() )* nodeListOptional1 -> ( MethodDeclaration() )* nodeToken2 -> "}" |
PigletResult |
visit(ClassExtendsDeclaration n,
PigletContext argu)
nodeToken -> "class" identifier -> Identifier() nodeToken1 -> "extends" identifier1 -> Identifier() nodeToken2 -> "{" nodeListOptional -> ( VarDeclaration() )* nodeListOptional1 -> ( MethodDeclaration() )* nodeToken3 -> "}" |
PigletResult |
visit(CompareExpression n,
PigletContext argu)
primaryExpression -> PrimaryExpression() nodeToken -> "<" primaryExpression1 -> PrimaryExpression() |
PigletResult |
visit(Expression n,
PigletContext argu)
nodeChoice -> AndExpression() | CompareExpression() | PlusExpression() | MinusExpression() | TimesExpression() | ArrayLookup() | ArrayLength() | MessageSend() | PrimaryExpression() |
PigletResult |
visit(FalseLiteral n,
PigletContext argu)
nodeToken -> "false" |
PigletResult |
visit(Identifier n,
PigletContext argu)
nodeToken -> <IDENTIFIER> |
PigletResult |
visit(IfStatement n,
PigletContext argu)
nodeToken -> "if" nodeToken1 -> "(" expression -> Expression() nodeToken2 -> ")" statement -> Statement() nodeToken3 -> "else" statement1 -> Statement() |
PigletResult |
visit(IntegerLiteral n,
PigletContext argu)
nodeToken -> <INTEGER_LITERAL> |
PigletResult |
visit(MainClass n,
PigletContext argu)
nodeToken -> "class" identifier -> Identifier() nodeToken1 -> "{" nodeToken2 -> "public" nodeToken3 -> "static" nodeToken4 -> "void" nodeToken5 -> "main" nodeToken6 -> "(" nodeToken7 -> "String" nodeToken8 -> "[" nodeToken9 -> "]" identifier1 -> Identifier() nodeToken10 -> ")" nodeToken11 -> "{" nodeListOptional -> ( VarDeclaration() )* nodeListOptional1 -> ( Statement() )* nodeToken12 -> "}" nodeToken13 -> "}" |
PigletResult |
visit(MessageSend n,
PigletContext argu)
primaryExpression -> PrimaryExpression() nodeToken -> "." identifier -> Identifier() nodeToken1 -> "(" nodeOptional -> ( ExpressionList() )? nodeToken2 -> ")" |
PigletResult |
visit(MethodDeclaration n,
PigletContext argu)
nodeToken -> "public" type -> Type() identifier -> Identifier() nodeToken1 -> "(" nodeOptional -> ( FormalParameterList() )? nodeToken2 -> ")" nodeToken3 -> "{" nodeListOptional -> ( VarDeclaration() )* nodeListOptional1 -> ( Statement() )* nodeToken4 -> "return" expression -> Expression() nodeToken5 -> ";" nodeToken6 -> "}" |
PigletResult |
visit(MinusExpression n,
PigletContext argu)
primaryExpression -> PrimaryExpression() nodeToken -> "-" primaryExpression1 -> PrimaryExpression() |
PigletResult |
visit(NotExpression n,
PigletContext argu)
nodeToken -> "!" expression -> Expression() |
PigletResult |
visit(PlusExpression n,
PigletContext argu)
primaryExpression -> PrimaryExpression() nodeToken -> "+" primaryExpression1 -> PrimaryExpression() |
PigletResult |
visit(PrimaryExpression n,
PigletContext argu)
nodeChoice -> IntegerLiteral() | TrueLiteral() | FalseLiteral() | Identifier() | ThisExpression() | ArrayAllocationExpression() | AllocationExpression() | NotExpression() | BracketExpression() |
PigletResult |
visit(PrintStatement n,
PigletContext argu)
nodeToken -> "System.out.println" nodeToken1 -> "(" expression -> Expression() nodeToken2 -> ")" nodeToken3 -> ";" |
PigletResult |
visit(ThisExpression n,
PigletContext argu)
nodeToken -> "this" |
PigletResult |
visit(TimesExpression n,
PigletContext argu)
primaryExpression -> PrimaryExpression() nodeToken -> "*" primaryExpression1 -> PrimaryExpression() |
PigletResult |
visit(TrueLiteral n,
PigletContext argu)
nodeToken -> "true" |
PigletResult |
visit(WhileStatement n,
PigletContext argu)
nodeToken -> "while" nodeToken1 -> "(" expression -> Expression() nodeToken2 -> ")" statement -> Statement() |
Methods inherited from class minijava.visitor.GJDepthFirst |
---|
visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, 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 PigletTranslator()
translate(minijava.syntaxtree.Goal)
to produce
a Piglet AST from a given MiniJava AST.
Method Detail |
---|
public Goal translate(Goal mj)
mj
- the root of the MiniJava AST to be translated
minijava.type.TypeException
- when the given MiniJava AST contains a type errorpublic PigletResult visit(MainClass n, PigletContext argu)
GJDepthFirst
nodeToken -> "class" identifier -> Identifier() nodeToken1 -> "{" nodeToken2 -> "public" nodeToken3 -> "static" nodeToken4 -> "void" nodeToken5 -> "main" nodeToken6 -> "(" nodeToken7 -> "String" nodeToken8 -> "[" nodeToken9 -> "]" identifier1 -> Identifier() nodeToken10 -> ")" nodeToken11 -> "{" nodeListOptional -> ( VarDeclaration() )* nodeListOptional1 -> ( Statement() )* nodeToken12 -> "}" nodeToken13 -> "}"
visit
in interface GJVisitor<PigletResult,PigletContext>
visit
in class GJDepthFirst<PigletResult,PigletContext>
public PigletResult visit(ClassDeclaration n, PigletContext argu)
GJDepthFirst
nodeToken -> "class" identifier -> Identifier() nodeToken1 -> "{" nodeListOptional -> ( VarDeclaration() )* nodeListOptional1 -> ( MethodDeclaration() )* nodeToken2 -> "}"
visit
in interface GJVisitor<PigletResult,PigletContext>
visit
in class GJDepthFirst<PigletResult,PigletContext>
public PigletResult visit(ClassExtendsDeclaration n, PigletContext argu)
GJDepthFirst
nodeToken -> "class" identifier -> Identifier() nodeToken1 -> "extends" identifier1 -> Identifier() nodeToken2 -> "{" nodeListOptional -> ( VarDeclaration() )* nodeListOptional1 -> ( MethodDeclaration() )* nodeToken3 -> "}"
visit
in interface GJVisitor<PigletResult,PigletContext>
visit
in class GJDepthFirst<PigletResult,PigletContext>
public PigletResult visit(MethodDeclaration n, PigletContext argu)
GJDepthFirst
nodeToken -> "public" type -> Type() identifier -> Identifier() nodeToken1 -> "(" nodeOptional -> ( FormalParameterList() )? nodeToken2 -> ")" nodeToken3 -> "{" nodeListOptional -> ( VarDeclaration() )* nodeListOptional1 -> ( Statement() )* nodeToken4 -> "return" expression -> Expression() nodeToken5 -> ";" nodeToken6 -> "}"
visit
in interface GJVisitor<PigletResult,PigletContext>
visit
in class GJDepthFirst<PigletResult,PigletContext>
public PigletResult visit(AssignmentStatement n, PigletContext argu)
GJDepthFirst
identifier -> Identifier() nodeToken -> "=" expression -> Expression() nodeToken1 -> ";"
visit
in interface GJVisitor<PigletResult,PigletContext>
visit
in class GJDepthFirst<PigletResult,PigletContext>
public PigletResult visit(ArrayAssignmentStatement n, PigletContext argu)
GJDepthFirst
identifier -> Identifier() nodeToken -> "[" expression -> Expression() nodeToken1 -> "]" nodeToken2 -> "=" expression1 -> Expression() nodeToken3 -> ";"
visit
in interface GJVisitor<PigletResult,PigletContext>
visit
in class GJDepthFirst<PigletResult,PigletContext>
public PigletResult visit(PrintStatement n, PigletContext argu)
GJDepthFirst
nodeToken -> "System.out.println" nodeToken1 -> "(" expression -> Expression() nodeToken2 -> ")" nodeToken3 -> ";"
visit
in interface GJVisitor<PigletResult,PigletContext>
visit
in class GJDepthFirst<PigletResult,PigletContext>
public PigletResult visit(IfStatement n, PigletContext argu)
GJDepthFirst
nodeToken -> "if" nodeToken1 -> "(" expression -> Expression() nodeToken2 -> ")" statement -> Statement() nodeToken3 -> "else" statement1 -> Statement()
visit
in interface GJVisitor<PigletResult,PigletContext>
visit
in class GJDepthFirst<PigletResult,PigletContext>
public PigletResult visit(WhileStatement n, PigletContext argu)
GJDepthFirst
nodeToken -> "while" nodeToken1 -> "(" expression -> Expression() nodeToken2 -> ")" statement -> Statement()
visit
in interface GJVisitor<PigletResult,PigletContext>
visit
in class GJDepthFirst<PigletResult,PigletContext>
public PigletResult visit(Expression n, PigletContext argu)
GJDepthFirst
nodeChoice -> AndExpression() | CompareExpression() | PlusExpression() | MinusExpression() | TimesExpression() | ArrayLookup() | ArrayLength() | MessageSend() | PrimaryExpression()
visit
in interface GJVisitor<PigletResult,PigletContext>
visit
in class GJDepthFirst<PigletResult,PigletContext>
public PigletResult visit(PrimaryExpression n, PigletContext argu)
GJDepthFirst
nodeChoice -> IntegerLiteral() | TrueLiteral() | FalseLiteral() | Identifier() | ThisExpression() | ArrayAllocationExpression() | AllocationExpression() | NotExpression() | BracketExpression()
visit
in interface GJVisitor<PigletResult,PigletContext>
visit
in class GJDepthFirst<PigletResult,PigletContext>
public PigletResult visit(BracketExpression n, PigletContext argu)
GJDepthFirst
nodeToken -> "(" expression -> Expression() nodeToken1 -> ")"
visit
in interface GJVisitor<PigletResult,PigletContext>
visit
in class GJDepthFirst<PigletResult,PigletContext>
public PigletResult visit(IntegerLiteral n, PigletContext argu)
GJDepthFirst
nodeToken -> <INTEGER_LITERAL>
visit
in interface GJVisitor<PigletResult,PigletContext>
visit
in class GJDepthFirst<PigletResult,PigletContext>
public PigletResult visit(TrueLiteral n, PigletContext argu)
GJDepthFirst
nodeToken -> "true"
visit
in interface GJVisitor<PigletResult,PigletContext>
visit
in class GJDepthFirst<PigletResult,PigletContext>
public PigletResult visit(FalseLiteral n, PigletContext argu)
GJDepthFirst
nodeToken -> "false"
visit
in interface GJVisitor<PigletResult,PigletContext>
visit
in class GJDepthFirst<PigletResult,PigletContext>
public PigletResult visit(AndExpression n, PigletContext argu)
GJDepthFirst
primaryExpression -> PrimaryExpression() nodeToken -> "&&" primaryExpression1 -> PrimaryExpression()
visit
in interface GJVisitor<PigletResult,PigletContext>
visit
in class GJDepthFirst<PigletResult,PigletContext>
public PigletResult visit(NotExpression n, PigletContext argu)
GJDepthFirst
nodeToken -> "!" expression -> Expression()
visit
in interface GJVisitor<PigletResult,PigletContext>
visit
in class GJDepthFirst<PigletResult,PigletContext>
public PigletResult visit(CompareExpression n, PigletContext argu)
GJDepthFirst
primaryExpression -> PrimaryExpression() nodeToken -> "<" primaryExpression1 -> PrimaryExpression()
visit
in interface GJVisitor<PigletResult,PigletContext>
visit
in class GJDepthFirst<PigletResult,PigletContext>
public PigletResult visit(PlusExpression n, PigletContext argu)
GJDepthFirst
primaryExpression -> PrimaryExpression() nodeToken -> "+" primaryExpression1 -> PrimaryExpression()
visit
in interface GJVisitor<PigletResult,PigletContext>
visit
in class GJDepthFirst<PigletResult,PigletContext>
public PigletResult visit(MinusExpression n, PigletContext argu)
GJDepthFirst
primaryExpression -> PrimaryExpression() nodeToken -> "-" primaryExpression1 -> PrimaryExpression()
visit
in interface GJVisitor<PigletResult,PigletContext>
visit
in class GJDepthFirst<PigletResult,PigletContext>
public PigletResult visit(TimesExpression n, PigletContext argu)
GJDepthFirst
primaryExpression -> PrimaryExpression() nodeToken -> "*" primaryExpression1 -> PrimaryExpression()
visit
in interface GJVisitor<PigletResult,PigletContext>
visit
in class GJDepthFirst<PigletResult,PigletContext>
public PigletResult visit(Identifier n, PigletContext argu)
GJDepthFirst
nodeToken -> <IDENTIFIER>
visit
in interface GJVisitor<PigletResult,PigletContext>
visit
in class GJDepthFirst<PigletResult,PigletContext>
public PigletResult visit(ThisExpression n, PigletContext argu)
GJDepthFirst
nodeToken -> "this"
visit
in interface GJVisitor<PigletResult,PigletContext>
visit
in class GJDepthFirst<PigletResult,PigletContext>
public PigletResult visit(MessageSend n, PigletContext argu)
GJDepthFirst
primaryExpression -> PrimaryExpression() nodeToken -> "." identifier -> Identifier() nodeToken1 -> "(" nodeOptional -> ( ExpressionList() )? nodeToken2 -> ")"
visit
in interface GJVisitor<PigletResult,PigletContext>
visit
in class GJDepthFirst<PigletResult,PigletContext>
public PigletResult visit(AllocationExpression n, PigletContext argu)
GJDepthFirst
nodeToken -> "new" identifier -> Identifier() nodeToken1 -> "(" nodeToken2 -> ")"
visit
in interface GJVisitor<PigletResult,PigletContext>
visit
in class GJDepthFirst<PigletResult,PigletContext>
public PigletResult visit(ArrayAllocationExpression n, PigletContext argu)
GJDepthFirst
nodeToken -> "new" nodeToken1 -> "int" nodeToken2 -> "[" expression -> Expression() nodeToken3 -> "]"
visit
in interface GJVisitor<PigletResult,PigletContext>
visit
in class GJDepthFirst<PigletResult,PigletContext>
public PigletResult visit(ArrayLength n, PigletContext argu)
GJDepthFirst
primaryExpression -> PrimaryExpression() nodeToken -> "." nodeToken1 -> "length"
visit
in interface GJVisitor<PigletResult,PigletContext>
visit
in class GJDepthFirst<PigletResult,PigletContext>
public PigletResult visit(ArrayLookup n, PigletContext argu)
GJDepthFirst
primaryExpression -> PrimaryExpression() nodeToken -> "[" primaryExpression1 -> PrimaryExpression() nodeToken1 -> "]"
visit
in interface GJVisitor<PigletResult,PigletContext>
visit
in class GJDepthFirst<PigletResult,PigletContext>
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |