|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object minijava.visitor.DepthFirstVisitor minijava.visitor.TreeFormatter
public class TreeFormatter
A skeleton output formatter for your language grammar. Using the add() method along with force(), indent(), and outdent(), you can easily specify how this visitor will format the given syntax tree. See the JTB documentation for more details. Pass your syntax tree to this visitor, and then to the TreeDumper visitor in order to "pretty print" your tree.
Constructor Summary | |
---|---|
TreeFormatter()
The default constructor assumes an indentation amount of 3 spaces and no line-wrap. |
|
TreeFormatter(int indentAmt,
int wrapWidth)
This constructor accepts an indent amount and a line width which is used to wrap long lines. |
Method Summary | |
---|---|
protected void |
add(minijava.visitor.FormatCommand cmd)
Use this method to add FormatCommands to the command queue to be executed when the next token in the tree is visited. |
protected minijava.visitor.FormatCommand |
force()
A Force command inserts a line break and indents the next line to the current indentation level. |
protected minijava.visitor.FormatCommand |
force(int i)
|
protected minijava.visitor.FormatCommand |
indent()
An Indent command increases the indentation level by one (or a user-specified amount). |
protected minijava.visitor.FormatCommand |
indent(int i)
|
protected minijava.visitor.FormatCommand |
outdent()
An Outdent command is the reverse of the Indent command: it reduces the indentation level. |
protected minijava.visitor.FormatCommand |
outdent(int i)
|
protected void |
processList(NodeListInterface n)
Accepts a NodeListInterface object and performs an optional format command between each node in the list (but not after the last node). |
protected void |
processList(NodeListInterface n,
minijava.visitor.FormatCommand cmd)
|
protected minijava.visitor.FormatCommand |
space()
A Space command simply adds one or a user-specified number of spaces between tokens. |
protected minijava.visitor.FormatCommand |
space(int i)
|
void |
visit(AllocationExpression n)
nodeToken -> "new" identifier -> Identifier() nodeToken1 -> "(" nodeToken2 -> ")" |
void |
visit(AndExpression n)
primaryExpression -> PrimaryExpression() nodeToken -> "&&" primaryExpression1 -> PrimaryExpression() |
void |
visit(ArrayAllocationExpression n)
nodeToken -> "new" nodeToken1 -> "int" nodeToken2 -> "[" expression -> Expression() nodeToken3 -> "]" |
void |
visit(ArrayAssignmentStatement n)
identifier -> Identifier() nodeToken -> "[" expression -> Expression() nodeToken1 -> "]" nodeToken2 -> "=" expression1 -> Expression() nodeToken3 -> ";" |
void |
visit(ArrayLength n)
primaryExpression -> PrimaryExpression() nodeToken -> "." nodeToken1 -> "length" |
void |
visit(ArrayLookup n)
primaryExpression -> PrimaryExpression() nodeToken -> "[" primaryExpression1 -> PrimaryExpression() nodeToken1 -> "]" |
void |
visit(ArrayType n)
nodeToken -> "int" nodeToken1 -> "[" nodeToken2 -> "]" |
void |
visit(AssignmentStatement n)
identifier -> Identifier() nodeToken -> "=" expression -> Expression() nodeToken1 -> ";" |
void |
visit(Block n)
nodeToken -> "{" nodeListOptional -> ( Statement() )* nodeToken1 -> "}" |
void |
visit(BooleanType n)
nodeToken -> "boolean" |
void |
visit(BracketExpression n)
nodeToken -> "(" expression -> Expression() nodeToken1 -> ")" |
void |
visit(ClassDeclaration n)
nodeToken -> "class" identifier -> Identifier() nodeToken1 -> "{" nodeListOptional -> ( VarDeclaration() )* nodeListOptional1 -> ( MethodDeclaration() )* nodeToken2 -> "}" |
void |
visit(ClassExtendsDeclaration n)
nodeToken -> "class" identifier -> Identifier() nodeToken1 -> "extends" identifier1 -> Identifier() nodeToken2 -> "{" nodeListOptional -> ( VarDeclaration() )* nodeListOptional1 -> ( MethodDeclaration() )* nodeToken3 -> "}" |
void |
visit(CompareExpression n)
primaryExpression -> PrimaryExpression() nodeToken -> "<" primaryExpression1 -> PrimaryExpression() |
void |
visit(Expression n)
nodeChoice -> AndExpression() | CompareExpression() | PlusExpression() | MinusExpression() | TimesExpression() | ArrayLookup() | ArrayLength() | MessageSend() | PrimaryExpression() |
void |
visit(ExpressionList n)
expression -> Expression() nodeListOptional -> ( ExpressionRest() )* |
void |
visit(ExpressionRest n)
nodeToken -> "," expression -> Expression() |
void |
visit(FalseLiteral n)
nodeToken -> "false" |
void |
visit(FormalParameter n)
type -> Type() identifier -> Identifier() |
void |
visit(FormalParameterList n)
formalParameter -> FormalParameter() nodeListOptional -> ( FormalParameterRest() )* |
void |
visit(FormalParameterRest n)
nodeToken -> "," formalParameter -> FormalParameter() |
void |
visit(Goal n)
mainClass -> MainClass() nodeListOptional -> ( TypeDeclaration() )* nodeToken -> <EOF> |
void |
visit(Identifier n)
nodeToken -> <IDENTIFIER> |
void |
visit(IfStatement n)
nodeToken -> "if" nodeToken1 -> "(" expression -> Expression() nodeToken2 -> ")" statement -> Statement() nodeToken3 -> "else" statement1 -> Statement() |
void |
visit(IntegerLiteral n)
nodeToken -> <INTEGER_LITERAL> |
void |
visit(IntegerType n)
nodeToken -> "int" |
void |
visit(MainClass n)
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 -> "}" |
void |
visit(MessageSend n)
primaryExpression -> PrimaryExpression() nodeToken -> "." identifier -> Identifier() nodeToken1 -> "(" nodeOptional -> ( ExpressionList() )? nodeToken2 -> ")" |
void |
visit(MethodDeclaration n)
nodeToken -> "public" type -> Type() identifier -> Identifier() nodeToken1 -> "(" nodeOptional -> ( FormalParameterList() )? nodeToken2 -> ")" nodeToken3 -> "{" nodeListOptional -> ( VarDeclaration() )* nodeListOptional1 -> ( Statement() )* nodeToken4 -> "return" expression -> Expression() nodeToken5 -> ";" nodeToken6 -> "}" |
void |
visit(MinusExpression n)
primaryExpression -> PrimaryExpression() nodeToken -> "-" primaryExpression1 -> PrimaryExpression() |
void |
visit(NodeToken n)
Executes the commands waiting in the command queue, then inserts the proper location information into the current NodeToken. |
void |
visit(NotExpression n)
nodeToken -> "!" expression -> Expression() |
void |
visit(PlusExpression n)
primaryExpression -> PrimaryExpression() nodeToken -> "+" primaryExpression1 -> PrimaryExpression() |
void |
visit(PrimaryExpression n)
nodeChoice -> IntegerLiteral() | TrueLiteral() | FalseLiteral() | Identifier() | ThisExpression() | ArrayAllocationExpression() | AllocationExpression() | NotExpression() | BracketExpression() |
void |
visit(PrintStatement n)
nodeToken -> "System.out.println" nodeToken1 -> "(" expression -> Expression() nodeToken2 -> ")" nodeToken3 -> ";" |
void |
visit(Statement n)
nodeChoice -> Block() | AssignmentStatement() | ArrayAssignmentStatement() | IfStatement() | WhileStatement() | PrintStatement() |
void |
visit(ThisExpression n)
nodeToken -> "this" |
void |
visit(TimesExpression n)
primaryExpression -> PrimaryExpression() nodeToken -> "*" primaryExpression1 -> PrimaryExpression() |
void |
visit(TrueLiteral n)
nodeToken -> "true" |
void |
visit(Type n)
nodeChoice -> ArrayType() | BooleanType() | IntegerType() | Identifier() |
void |
visit(TypeDeclaration n)
nodeChoice -> ClassDeclaration() | ClassExtendsDeclaration() |
void |
visit(VarDeclaration n)
type -> Type() identifier -> Identifier() nodeToken -> ";" |
void |
visit(WhileStatement n)
nodeToken -> "while" nodeToken1 -> "(" expression -> Expression() nodeToken2 -> ")" statement -> Statement() |
Methods inherited from class minijava.visitor.DepthFirstVisitor |
---|
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 TreeFormatter()
public TreeFormatter(int indentAmt, int wrapWidth)
indentAmt
- Amount of spaces per indentation level.wrapWidth
- Wrap lines longer than wrapWidth. 0 for no wrap.Method Detail |
---|
protected void processList(NodeListInterface n)
protected void processList(NodeListInterface n, minijava.visitor.FormatCommand cmd)
protected minijava.visitor.FormatCommand force()
protected minijava.visitor.FormatCommand force(int i)
protected minijava.visitor.FormatCommand indent()
protected minijava.visitor.FormatCommand indent(int i)
protected minijava.visitor.FormatCommand outdent()
protected minijava.visitor.FormatCommand outdent(int i)
protected minijava.visitor.FormatCommand space()
protected minijava.visitor.FormatCommand space(int i)
protected void add(minijava.visitor.FormatCommand cmd)
public void visit(NodeToken n)
visit
in interface Visitor
visit
in class DepthFirstVisitor
public void visit(Goal n)
mainClass -> MainClass() nodeListOptional -> ( TypeDeclaration() )* nodeToken -> <EOF>
visit
in interface Visitor
visit
in class DepthFirstVisitor
public void visit(MainClass n)
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 Visitor
visit
in class DepthFirstVisitor
public void visit(TypeDeclaration n)
nodeChoice -> ClassDeclaration() | ClassExtendsDeclaration()
visit
in interface Visitor
visit
in class DepthFirstVisitor
public void visit(ClassDeclaration n)
nodeToken -> "class" identifier -> Identifier() nodeToken1 -> "{" nodeListOptional -> ( VarDeclaration() )* nodeListOptional1 -> ( MethodDeclaration() )* nodeToken2 -> "}"
visit
in interface Visitor
visit
in class DepthFirstVisitor
public void visit(ClassExtendsDeclaration n)
nodeToken -> "class" identifier -> Identifier() nodeToken1 -> "extends" identifier1 -> Identifier() nodeToken2 -> "{" nodeListOptional -> ( VarDeclaration() )* nodeListOptional1 -> ( MethodDeclaration() )* nodeToken3 -> "}"
visit
in interface Visitor
visit
in class DepthFirstVisitor
public void visit(VarDeclaration n)
type -> Type() identifier -> Identifier() nodeToken -> ";"
visit
in interface Visitor
visit
in class DepthFirstVisitor
public void visit(MethodDeclaration n)
nodeToken -> "public" type -> Type() identifier -> Identifier() nodeToken1 -> "(" nodeOptional -> ( FormalParameterList() )? nodeToken2 -> ")" nodeToken3 -> "{" nodeListOptional -> ( VarDeclaration() )* nodeListOptional1 -> ( Statement() )* nodeToken4 -> "return" expression -> Expression() nodeToken5 -> ";" nodeToken6 -> "}"
visit
in interface Visitor
visit
in class DepthFirstVisitor
public void visit(FormalParameterList n)
formalParameter -> FormalParameter() nodeListOptional -> ( FormalParameterRest() )*
visit
in interface Visitor
visit
in class DepthFirstVisitor
public void visit(FormalParameter n)
type -> Type() identifier -> Identifier()
visit
in interface Visitor
visit
in class DepthFirstVisitor
public void visit(FormalParameterRest n)
nodeToken -> "," formalParameter -> FormalParameter()
visit
in interface Visitor
visit
in class DepthFirstVisitor
public void visit(Type n)
nodeChoice -> ArrayType() | BooleanType() | IntegerType() | Identifier()
visit
in interface Visitor
visit
in class DepthFirstVisitor
public void visit(ArrayType n)
nodeToken -> "int" nodeToken1 -> "[" nodeToken2 -> "]"
visit
in interface Visitor
visit
in class DepthFirstVisitor
public void visit(BooleanType n)
nodeToken -> "boolean"
visit
in interface Visitor
visit
in class DepthFirstVisitor
public void visit(IntegerType n)
nodeToken -> "int"
visit
in interface Visitor
visit
in class DepthFirstVisitor
public void visit(Statement n)
nodeChoice -> Block() | AssignmentStatement() | ArrayAssignmentStatement() | IfStatement() | WhileStatement() | PrintStatement()
visit
in interface Visitor
visit
in class DepthFirstVisitor
public void visit(Block n)
nodeToken -> "{" nodeListOptional -> ( Statement() )* nodeToken1 -> "}"
visit
in interface Visitor
visit
in class DepthFirstVisitor
public void visit(AssignmentStatement n)
identifier -> Identifier() nodeToken -> "=" expression -> Expression() nodeToken1 -> ";"
visit
in interface Visitor
visit
in class DepthFirstVisitor
public void visit(ArrayAssignmentStatement n)
identifier -> Identifier() nodeToken -> "[" expression -> Expression() nodeToken1 -> "]" nodeToken2 -> "=" expression1 -> Expression() nodeToken3 -> ";"
visit
in interface Visitor
visit
in class DepthFirstVisitor
public void visit(IfStatement n)
nodeToken -> "if" nodeToken1 -> "(" expression -> Expression() nodeToken2 -> ")" statement -> Statement() nodeToken3 -> "else" statement1 -> Statement()
visit
in interface Visitor
visit
in class DepthFirstVisitor
public void visit(WhileStatement n)
nodeToken -> "while" nodeToken1 -> "(" expression -> Expression() nodeToken2 -> ")" statement -> Statement()
visit
in interface Visitor
visit
in class DepthFirstVisitor
public void visit(PrintStatement n)
nodeToken -> "System.out.println" nodeToken1 -> "(" expression -> Expression() nodeToken2 -> ")" nodeToken3 -> ";"
visit
in interface Visitor
visit
in class DepthFirstVisitor
public void visit(Expression n)
nodeChoice -> AndExpression() | CompareExpression() | PlusExpression() | MinusExpression() | TimesExpression() | ArrayLookup() | ArrayLength() | MessageSend() | PrimaryExpression()
visit
in interface Visitor
visit
in class DepthFirstVisitor
public void visit(AndExpression n)
primaryExpression -> PrimaryExpression() nodeToken -> "&&" primaryExpression1 -> PrimaryExpression()
visit
in interface Visitor
visit
in class DepthFirstVisitor
public void visit(CompareExpression n)
primaryExpression -> PrimaryExpression() nodeToken -> "<" primaryExpression1 -> PrimaryExpression()
visit
in interface Visitor
visit
in class DepthFirstVisitor
public void visit(PlusExpression n)
primaryExpression -> PrimaryExpression() nodeToken -> "+" primaryExpression1 -> PrimaryExpression()
visit
in interface Visitor
visit
in class DepthFirstVisitor
public void visit(MinusExpression n)
primaryExpression -> PrimaryExpression() nodeToken -> "-" primaryExpression1 -> PrimaryExpression()
visit
in interface Visitor
visit
in class DepthFirstVisitor
public void visit(TimesExpression n)
primaryExpression -> PrimaryExpression() nodeToken -> "*" primaryExpression1 -> PrimaryExpression()
visit
in interface Visitor
visit
in class DepthFirstVisitor
public void visit(ArrayLookup n)
primaryExpression -> PrimaryExpression() nodeToken -> "[" primaryExpression1 -> PrimaryExpression() nodeToken1 -> "]"
visit
in interface Visitor
visit
in class DepthFirstVisitor
public void visit(ArrayLength n)
primaryExpression -> PrimaryExpression() nodeToken -> "." nodeToken1 -> "length"
visit
in interface Visitor
visit
in class DepthFirstVisitor
public void visit(MessageSend n)
primaryExpression -> PrimaryExpression() nodeToken -> "." identifier -> Identifier() nodeToken1 -> "(" nodeOptional -> ( ExpressionList() )? nodeToken2 -> ")"
visit
in interface Visitor
visit
in class DepthFirstVisitor
public void visit(ExpressionList n)
expression -> Expression() nodeListOptional -> ( ExpressionRest() )*
visit
in interface Visitor
visit
in class DepthFirstVisitor
public void visit(ExpressionRest n)
nodeToken -> "," expression -> Expression()
visit
in interface Visitor
visit
in class DepthFirstVisitor
public void visit(PrimaryExpression n)
nodeChoice -> IntegerLiteral() | TrueLiteral() | FalseLiteral() | Identifier() | ThisExpression() | ArrayAllocationExpression() | AllocationExpression() | NotExpression() | BracketExpression()
visit
in interface Visitor
visit
in class DepthFirstVisitor
public void visit(IntegerLiteral n)
nodeToken -> <INTEGER_LITERAL>
visit
in interface Visitor
visit
in class DepthFirstVisitor
public void visit(TrueLiteral n)
nodeToken -> "true"
visit
in interface Visitor
visit
in class DepthFirstVisitor
public void visit(FalseLiteral n)
nodeToken -> "false"
visit
in interface Visitor
visit
in class DepthFirstVisitor
public void visit(Identifier n)
nodeToken -> <IDENTIFIER>
visit
in interface Visitor
visit
in class DepthFirstVisitor
public void visit(ThisExpression n)
nodeToken -> "this"
visit
in interface Visitor
visit
in class DepthFirstVisitor
public void visit(ArrayAllocationExpression n)
nodeToken -> "new" nodeToken1 -> "int" nodeToken2 -> "[" expression -> Expression() nodeToken3 -> "]"
visit
in interface Visitor
visit
in class DepthFirstVisitor
public void visit(AllocationExpression n)
nodeToken -> "new" identifier -> Identifier() nodeToken1 -> "(" nodeToken2 -> ")"
visit
in interface Visitor
visit
in class DepthFirstVisitor
public void visit(NotExpression n)
nodeToken -> "!" expression -> Expression()
visit
in interface Visitor
visit
in class DepthFirstVisitor
public void visit(BracketExpression n)
nodeToken -> "(" expression -> Expression() nodeToken1 -> ")"
visit
in interface Visitor
visit
in class DepthFirstVisitor
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |