|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||
java.lang.Objectminijava.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 error
public 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)
GJDepthFirstidentifier -> Identifier() nodeToken -> "=" expression -> Expression() nodeToken1 -> ";"
visit in interface GJVisitor<PigletResult,PigletContext>visit in class GJDepthFirst<PigletResult,PigletContext>
public PigletResult visit(ArrayAssignmentStatement n,
PigletContext argu)
GJDepthFirstidentifier -> 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)
GJDepthFirstnodeToken -> <INTEGER_LITERAL>
visit in interface GJVisitor<PigletResult,PigletContext>visit in class GJDepthFirst<PigletResult,PigletContext>
public PigletResult visit(TrueLiteral n,
PigletContext argu)
GJDepthFirstnodeToken -> "true"
visit in interface GJVisitor<PigletResult,PigletContext>visit in class GJDepthFirst<PigletResult,PigletContext>
public PigletResult visit(FalseLiteral n,
PigletContext argu)
GJDepthFirstnodeToken -> "false"
visit in interface GJVisitor<PigletResult,PigletContext>visit in class GJDepthFirst<PigletResult,PigletContext>
public PigletResult visit(AndExpression n,
PigletContext argu)
GJDepthFirstprimaryExpression -> PrimaryExpression() nodeToken -> "&&" primaryExpression1 -> PrimaryExpression()
visit in interface GJVisitor<PigletResult,PigletContext>visit in class GJDepthFirst<PigletResult,PigletContext>
public PigletResult visit(NotExpression n,
PigletContext argu)
GJDepthFirstnodeToken -> "!" expression -> Expression()
visit in interface GJVisitor<PigletResult,PigletContext>visit in class GJDepthFirst<PigletResult,PigletContext>
public PigletResult visit(CompareExpression n,
PigletContext argu)
GJDepthFirstprimaryExpression -> PrimaryExpression() nodeToken -> "<" primaryExpression1 -> PrimaryExpression()
visit in interface GJVisitor<PigletResult,PigletContext>visit in class GJDepthFirst<PigletResult,PigletContext>
public PigletResult visit(PlusExpression n,
PigletContext argu)
GJDepthFirstprimaryExpression -> PrimaryExpression() nodeToken -> "+" primaryExpression1 -> PrimaryExpression()
visit in interface GJVisitor<PigletResult,PigletContext>visit in class GJDepthFirst<PigletResult,PigletContext>
public PigletResult visit(MinusExpression n,
PigletContext argu)
GJDepthFirstprimaryExpression -> PrimaryExpression() nodeToken -> "-" primaryExpression1 -> PrimaryExpression()
visit in interface GJVisitor<PigletResult,PigletContext>visit in class GJDepthFirst<PigletResult,PigletContext>
public PigletResult visit(TimesExpression n,
PigletContext argu)
GJDepthFirstprimaryExpression -> PrimaryExpression() nodeToken -> "*" primaryExpression1 -> PrimaryExpression()
visit in interface GJVisitor<PigletResult,PigletContext>visit in class GJDepthFirst<PigletResult,PigletContext>
public PigletResult visit(Identifier n,
PigletContext argu)
GJDepthFirstnodeToken -> <IDENTIFIER>
visit in interface GJVisitor<PigletResult,PigletContext>visit in class GJDepthFirst<PigletResult,PigletContext>
public PigletResult visit(ThisExpression n,
PigletContext argu)
GJDepthFirstnodeToken -> "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)
GJDepthFirstnodeToken -> "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)
GJDepthFirstprimaryExpression -> PrimaryExpression() nodeToken -> "." nodeToken1 -> "length"
visit in interface GJVisitor<PigletResult,PigletContext>visit in class GJDepthFirst<PigletResult,PigletContext>
public PigletResult visit(ArrayLookup n,
PigletContext argu)
GJDepthFirstprimaryExpression -> 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 | ||||||||