org.tromer.jie.visitor
Interface ObjectVisitor

All Known Implementing Classes:
CallingDepthFirst, NullObjectVisitor, ObjectDepthFirst, GreedyDepthFirst

public interface ObjectVisitor

All Object visitors must implement this interface.


Method Summary
 java.lang.Object visit(AdditiveExpression n, java.lang.Object argu)
           multiplicativeExpression -> MultiplicativeExpression() nodeListOptional -> ( ( "+" | "-" ) MultiplicativeExpression() )*
 java.lang.Object visit(AllocationExpression n, java.lang.Object argu)
           nodeChoice -> "new" PrimitiveType() ArrayDimsAndInits() | "new" Name() ( ArrayDimsAndInits() | Arguments() [ ClassBody() ] )
 java.lang.Object visit(AndExpression n, java.lang.Object argu)
           equalityExpression -> EqualityExpression() nodeListOptional -> ( "&" EqualityExpression() )*
 java.lang.Object visit(ArgumentList n, java.lang.Object argu)
           expression -> Expression() nodeListOptional -> ( "," Expression() )*
 java.lang.Object visit(Arguments n, java.lang.Object argu)
           nodeToken -> "(" nodeOptional -> [ ArgumentList() ] nodeToken1 -> ")"
 java.lang.Object visit(ArrayDimsAndInits n, java.lang.Object argu)
           nodeChoice -> ( "[" Expression() "]" )+ ( "[" "]" )* | ( "[" "]" )+ ArrayInitializer()
 java.lang.Object visit(ArrayInitializer n, java.lang.Object argu)
           nodeToken -> "{" nodeOptional -> [ VariableInitializer() ( "," VariableInitializer() )* ] nodeOptional1 -> [ "," ] nodeToken1 -> "}"
 java.lang.Object visit(AssignmentOperator n, java.lang.Object argu)
           nodeChoice -> "=" | "*=" | "/=" | "%=" | "+=" | "-=" | "<<=" | ">>=" | ">>>=" | "&=" | "^=" | "|="
 java.lang.Object visit(Block n, java.lang.Object argu)
           nodeToken -> "{" nodeListOptional -> ( BlockStatement() )* nodeToken1 -> "}"
 java.lang.Object visit(BlockStatement n, java.lang.Object argu)
           nodeChoice -> LocalVariableDeclaration() ";" | Statement() | UnmodifiedClassDeclaration() | UnmodifiedInterfaceDeclaration()
 java.lang.Object visit(BooleanLiteral n, java.lang.Object argu)
           nodeChoice -> "true" | "false"
 java.lang.Object visit(BreakStatement n, java.lang.Object argu)
           nodeToken -> "break" nodeOptional -> [ <IDENTIFIER> ] nodeToken1 -> ";"
 java.lang.Object visit(CastExpression n, java.lang.Object argu)
           nodeChoice -> "(" Type() ")" UnaryExpression() | "(" Type() ")" UnaryExpressionNotPlusMinus()
 java.lang.Object visit(CastLookahead n, java.lang.Object argu)
           nodeChoice -> "(" PrimitiveType() | "(" Name() "[" "]" | "(" Name() ")" ( "~" | "!" | "(" | <IDENTIFIER> | "this" | "super" | "new" | Literal() )
 java.lang.Object visit(ClassBodyDeclaration n, java.lang.Object argu)
           nodeChoice -> Initializer() | NestedClassDeclaration() | NestedInterfaceDeclaration() | ConstructorDeclaration() | MethodDeclaration() | FieldDeclaration() | ";"
 java.lang.Object visit(ClassBody n, java.lang.Object argu)
           nodeToken -> "{" nodeListOptional -> ( ClassBodyDeclaration() )* nodeToken1 -> "}"
 java.lang.Object visit(ClassDeclaration n, java.lang.Object argu)
           nodeListOptional -> ( "abstract" | "final" | "public" | "strictfp" )* unmodifiedClassDeclaration -> UnmodifiedClassDeclaration()
 java.lang.Object visit(CompilationUnit n, java.lang.Object argu)
           nodeOptional -> [ PackageDeclaration() ] nodeListOptional -> ( ImportDeclaration() )* nodeListOptional1 -> ( TypeDeclaration() )* nodeToken -> <EOF>
 java.lang.Object visit(ConditionalAndExpression n, java.lang.Object argu)
           inclusiveOrExpression -> InclusiveOrExpression() nodeListOptional -> ( "&&" InclusiveOrExpression() )*
 java.lang.Object visit(ConditionalAndExpressionWrapper n, java.lang.Object argu)
           conditionalAndExpression -> ConditionalAndExpression()
 java.lang.Object visit(ConditionalExpression n, java.lang.Object argu)
           conditionalOrExpression -> ConditionalOrExpression() nodeOptional -> [ "?" Expression() ":" ConditionalExpression() ]
 java.lang.Object visit(ConditionalOrExpression n, java.lang.Object argu)
           conditionalAndExpressionWrapper -> ConditionalAndExpressionWrapper() nodeListOptional -> ( "||" ConditionalAndExpressionWrapper() )*
 java.lang.Object visit(ConstructorDeclaration n, java.lang.Object argu)
           nodeOptional -> [ "public" | "protected" | "private" ] nodeToken -> <IDENTIFIER> formalParameters -> FormalParameters() nodeOptional1 -> [ "throws" NameList() ] nodeToken1 -> "{" nodeOptional2 -> [ ExplicitConstructorInvocation() ] topBlockStatements -> TopBlockStatements() nodeToken2 -> "}"
 java.lang.Object visit(ContinueStatement n, java.lang.Object argu)
           nodeToken -> "continue" nodeOptional -> [ <IDENTIFIER> ] nodeToken1 -> ";"
 java.lang.Object visit(DoStatement n, java.lang.Object argu)
           nodeToken -> "do" statement -> Statement() nodeToken1 -> "while" nodeToken2 -> "(" expression -> Expression() nodeToken3 -> ")" nodeToken4 -> ";"
 java.lang.Object visit(EmptyStatement n, java.lang.Object argu)
           nodeToken -> ";"
 java.lang.Object visit(EqualityExpression n, java.lang.Object argu)
           instanceOfExpression -> InstanceOfExpression() nodeListOptional -> ( ( "==" | "!=" ) InstanceOfExpression() )*
 java.lang.Object visit(ExclusiveOrExpression n, java.lang.Object argu)
           andExpression -> AndExpression() nodeListOptional -> ( "^" AndExpression() )*
 java.lang.Object visit(ExplicitConstructorInvocation n, java.lang.Object argu)
           nodeChoice -> "this" Arguments() ";" | [ PrimaryExpression() "." ] "super" Arguments() ";"
 java.lang.Object visit(Expression n, java.lang.Object argu)
           conditionalExpression -> ConditionalExpression() nodeOptional -> [ AssignmentOperator() Expression() ]
 java.lang.Object visit(FieldDeclaration n, java.lang.Object argu)
           nodeListOptional -> ( "public" | "protected" | "private" | "static" | "final" | "transient" | "volatile" )* type -> Type() variableDeclarator -> VariableDeclarator() nodeListOptional1 -> ( "," VariableDeclarator() )* nodeToken -> ";"
 java.lang.Object visit(ForInit n, java.lang.Object argu)
           nodeChoice -> LocalVariableDeclaration() | StatementExpressionList()
 java.lang.Object visit(FormalParameter n, java.lang.Object argu)
           nodeOptional -> [ "final" ] type -> Type() variableDeclaratorId -> VariableDeclaratorId()
 java.lang.Object visit(FormalParameters n, java.lang.Object argu)
           nodeToken -> "(" nodeOptional -> [ FormalParameter() ( "," FormalParameter() )* ] nodeToken1 -> ")"
 java.lang.Object visit(ForStatement n, java.lang.Object argu)
           nodeToken -> "for" nodeToken1 -> "(" nodeOptional -> [ ForInit() ] nodeToken2 -> ";" nodeOptional1 -> [ Expression() ] nodeToken3 -> ";" nodeOptional2 -> [ ForUpdate() ] nodeToken4 -> ")" statement -> Statement()
 java.lang.Object visit(ForUpdate n, java.lang.Object argu)
           statementExpressionList -> StatementExpressionList()
 java.lang.Object visit(IfStatement n, java.lang.Object argu)
           nodeToken -> "if" nodeToken1 -> "(" expression -> Expression() nodeToken2 -> ")" statement -> Statement() nodeOptional -> [ "else" Statement() ]
 java.lang.Object visit(ImportDeclaration n, java.lang.Object argu)
           nodeToken -> "import" name -> Name() nodeOptional -> [ "." "*" ] nodeToken1 -> ";"
 java.lang.Object visit(InclusiveOrExpression n, java.lang.Object argu)
           exclusiveOrExpression -> ExclusiveOrExpression() nodeListOptional -> ( "|" ExclusiveOrExpression() )*
 java.lang.Object visit(Initializer n, java.lang.Object argu)
           nodeOptional -> [ "static" ] topBlock -> TopBlock()
 java.lang.Object visit(InstanceOfExpression n, java.lang.Object argu)
           relationalExpression -> RelationalExpression() nodeOptional -> [ "instanceof" Type() ]
 java.lang.Object visit(InterfaceDeclaration n, java.lang.Object argu)
           nodeListOptional -> ( "abstract" | "public" | "strictfp" )* unmodifiedInterfaceDeclaration -> UnmodifiedInterfaceDeclaration()
 java.lang.Object visit(InterfaceMemberDeclaration n, java.lang.Object argu)
           nodeChoice -> NestedClassDeclaration() | NestedInterfaceDeclaration() | MethodDeclaration() | FieldDeclaration() | ";"
 java.lang.Object visit(LabeledStatement n, java.lang.Object argu)
           nodeToken -> <IDENTIFIER> nodeToken1 -> ":" statement -> Statement()
 java.lang.Object visit(Literal n, java.lang.Object argu)
           nodeChoice -> <INTEGER_LITERAL> | <FLOATING_POINT_LITERAL> | <CHARACTER_LITERAL> | <STRING_LITERAL> | BooleanLiteral() | NullLiteral()
 java.lang.Object visit(LocalVariableDeclaration n, java.lang.Object argu)
           nodeOptional -> [ "final" ] type -> Type() variableDeclarator -> VariableDeclarator() nodeListOptional -> ( "," VariableDeclarator() )*
 java.lang.Object visit(MethodDeclarationLookahead n, java.lang.Object argu)
           nodeListOptional -> ( "public" | "protected" | "private" | "static" | "abstract" | "final" | "native" | "synchronized" | "strictfp" )* resultType -> ResultType() nodeToken -> <IDENTIFIER> nodeToken1 -> "("
 java.lang.Object visit(MethodDeclaration n, java.lang.Object argu)
           nodeListOptional -> ( "public" | "protected" | "private" | "static" | "abstract" | "final" | "native" | "synchronized" | "strictfp" )* resultType -> ResultType() methodDeclarator -> MethodDeclarator() nodeOptional -> [ "throws" NameList() ] nodeChoice -> ( TopBlock() | ";" )
 java.lang.Object visit(MethodDeclarator n, java.lang.Object argu)
           nodeToken -> <IDENTIFIER> formalParameters -> FormalParameters() nodeListOptional -> ( "[" "]" )*
 java.lang.Object visit(MultiplicativeExpression n, java.lang.Object argu)
           unaryExpression -> UnaryExpression() nodeListOptional -> ( ( "*" | "/" | "%" ) UnaryExpression() )*
 java.lang.Object visit(NameList n, java.lang.Object argu)
           name -> Name() nodeListOptional -> ( "," Name() )*
 java.lang.Object visit(Name n, java.lang.Object argu)
           nodeToken -> <IDENTIFIER> nodeListOptional -> ( "." <IDENTIFIER> )*
 java.lang.Object visit(NestedClassDeclaration n, java.lang.Object argu)
           nodeListOptional -> ( "static" | "abstract" | "final" | "public" | "protected" | "private" | "strictfp" )* unmodifiedClassDeclaration -> UnmodifiedClassDeclaration()
 java.lang.Object visit(NestedInterfaceDeclaration n, java.lang.Object argu)
           nodeListOptional -> ( "static" | "abstract" | "final" | "public" | "protected" | "private" | "strictfp" )* unmodifiedInterfaceDeclaration -> UnmodifiedInterfaceDeclaration()
 java.lang.Object visit(NodeList n, java.lang.Object argu)
           
 java.lang.Object visit(NodeListOptional n, java.lang.Object argu)
           
 java.lang.Object visit(NodeOptional n, java.lang.Object argu)
           
 java.lang.Object visit(NodeSequence n, java.lang.Object argu)
           
 java.lang.Object visit(NodeToken n, java.lang.Object argu)
           
 java.lang.Object visit(NullLiteral n, java.lang.Object argu)
           nodeToken -> "null"
 java.lang.Object visit(PackageDeclaration n, java.lang.Object argu)
           nodeToken -> "package" name -> Name() nodeToken1 -> ";"
 java.lang.Object visit(PostfixExpression n, java.lang.Object argu)
           primaryExpression -> PrimaryExpression() nodeOptional -> [ "++" | "--" ]
 java.lang.Object visit(PreDecrementExpression n, java.lang.Object argu)
           nodeToken -> "--" primaryExpression -> PrimaryExpression()
 java.lang.Object visit(PreIncrementExpression n, java.lang.Object argu)
           nodeToken -> "++" primaryExpression -> PrimaryExpression()
 java.lang.Object visit(PrimaryExpression n, java.lang.Object argu)
           primaryPrefix -> PrimaryPrefix() nodeListOptional -> ( PrimarySuffix() )*
 java.lang.Object visit(PrimaryPrefix n, java.lang.Object argu)
           nodeChoice -> Literal() | "this" | "super" "." <IDENTIFIER> | "(" Expression() ")" | AllocationExpression() | ResultType() "." "class" | Name()
 java.lang.Object visit(PrimarySuffix n, java.lang.Object argu)
           nodeChoice -> "." "this" | "." AllocationExpression() | "[" Expression() "]" | "." <IDENTIFIER> | Arguments()
 java.lang.Object visit(PrimitiveType n, java.lang.Object argu)
           nodeChoice -> "boolean" | "char" | "byte" | "short" | "int" | "long" | "float" | "double"
 java.lang.Object visit(RelationalExpression n, java.lang.Object argu)
           shiftExpression -> ShiftExpression() nodeListOptional -> ( ( "<" | ">" | "<=" | ">=" ) ShiftExpression() )*
 java.lang.Object visit(ResultType n, java.lang.Object argu)
           nodeChoice -> "void" | Type()
 java.lang.Object visit(ReturnStatement n, java.lang.Object argu)
           nodeToken -> "return" nodeOptional -> [ Expression() ] nodeToken1 -> ";"
 java.lang.Object visit(ShiftExpression n, java.lang.Object argu)
           additiveExpression -> AdditiveExpression() nodeListOptional -> ( ( "<<" | ">>" | ">>>" ) AdditiveExpression() )*
 java.lang.Object visit(StatementExpressionList n, java.lang.Object argu)
           statementExpression -> StatementExpression() nodeListOptional -> ( "," StatementExpression() )*
 java.lang.Object visit(StatementExpression n, java.lang.Object argu)
           nodeChoice -> PreIncrementExpression() | PreDecrementExpression() | PrimaryExpression() [ "++" | "--" | AssignmentOperator() Expression() ]
 java.lang.Object visit(Statement n, java.lang.Object argu)
           nodeChoice -> LabeledStatement() | Block() | EmptyStatement() | StatementExpression() ";" | SwitchStatement() | IfStatement() | WhileStatement() | DoStatement() | ForStatement() | BreakStatement() | ContinueStatement() | ReturnStatement() | ThrowStatement() | SynchronizedStatement() | TryStatement()
 java.lang.Object visit(SwitchLabel n, java.lang.Object argu)
           nodeChoice -> "case" Expression() ":" | "default" ":"
 java.lang.Object visit(SwitchStatement n, java.lang.Object argu)
           nodeToken -> "switch" nodeToken1 -> "(" expression -> Expression() nodeToken2 -> ")" nodeToken3 -> "{" nodeListOptional -> ( SwitchLabel() ( BlockStatement() )* )* nodeToken4 -> "}"
 java.lang.Object visit(SynchronizedStatement n, java.lang.Object argu)
           nodeToken -> "synchronized" nodeToken1 -> "(" expression -> Expression() nodeToken2 -> ")" block -> Block()
 java.lang.Object visit(ThrowStatement n, java.lang.Object argu)
           nodeToken -> "throw" expression -> Expression() nodeToken1 -> ";"
 java.lang.Object visit(TopBlock n, java.lang.Object argu)
           nodeToken -> "{" topBlockStatements -> TopBlockStatements() nodeToken1 -> "}"
 java.lang.Object visit(TopBlockStatements n, java.lang.Object argu)
           nodeListOptional -> ( BlockStatement() )*
 java.lang.Object visit(TryStatement n, java.lang.Object argu)
           nodeToken -> "try" block -> Block() nodeListOptional -> ( "catch" "(" FormalParameter() ")" Block() )* nodeOptional -> [ "finally" Block() ]
 java.lang.Object visit(TypeDeclaration n, java.lang.Object argu)
           nodeChoice -> ClassDeclaration() | InterfaceDeclaration() | ";"
 java.lang.Object visit(Type n, java.lang.Object argu)
           nodeChoice -> ( PrimitiveType() | Name() ) nodeListOptional -> ( "[" "]" )*
 java.lang.Object visit(UnaryExpressionNotPlusMinus n, java.lang.Object argu)
           nodeChoice -> ( "~" | "!" ) UnaryExpression() | CastExpression() | PostfixExpression()
 java.lang.Object visit(UnaryExpression n, java.lang.Object argu)
           nodeChoice -> ( "+" | "-" ) UnaryExpression() | PreIncrementExpression() | PreDecrementExpression() | UnaryExpressionNotPlusMinus()
 java.lang.Object visit(UnmodifiedClassDeclaration n, java.lang.Object argu)
           nodeToken -> "class" nodeToken1 -> <IDENTIFIER> nodeOptional -> [ "extends" Name() ] nodeOptional1 -> [ "implements" NameList() ] classBody -> ClassBody()
 java.lang.Object visit(UnmodifiedInterfaceDeclaration n, java.lang.Object argu)
           nodeToken -> "interface" nodeToken1 -> <IDENTIFIER> nodeOptional -> [ "extends" NameList() ] nodeToken2 -> "{" nodeListOptional -> ( InterfaceMemberDeclaration() )* nodeToken3 -> "}"
 java.lang.Object visit(VariableDeclaratorId n, java.lang.Object argu)
           nodeToken -> <IDENTIFIER> nodeListOptional -> ( "[" "]" )*
 java.lang.Object visit(VariableDeclarator n, java.lang.Object argu)
           variableDeclaratorId -> VariableDeclaratorId() nodeOptional -> [ "=" VariableInitializer() ]
 java.lang.Object visit(VariableInitializer n, java.lang.Object argu)
           nodeChoice -> ArrayInitializer() | Expression()
 java.lang.Object visit(WhileStatement n, java.lang.Object argu)
           nodeToken -> "while" nodeToken1 -> "(" expression -> Expression() nodeToken2 -> ")" statement -> Statement()
 

Method Detail

visit

public java.lang.Object visit(NodeList n,
                              java.lang.Object argu)

visit

public java.lang.Object visit(NodeListOptional n,
                              java.lang.Object argu)

visit

public java.lang.Object visit(NodeOptional n,
                              java.lang.Object argu)

visit

public java.lang.Object visit(NodeSequence n,
                              java.lang.Object argu)

visit

public java.lang.Object visit(NodeToken n,
                              java.lang.Object argu)

visit

public java.lang.Object visit(CompilationUnit n,
                              java.lang.Object argu)
 nodeOptional -> [ PackageDeclaration() ]
 nodeListOptional -> ( ImportDeclaration() )*
 nodeListOptional1 -> ( TypeDeclaration() )*
 nodeToken -> <EOF>
 

visit

public java.lang.Object visit(PackageDeclaration n,
                              java.lang.Object argu)
 nodeToken -> "package"
 name -> Name()
 nodeToken1 -> ";"
 

visit

public java.lang.Object visit(ImportDeclaration n,
                              java.lang.Object argu)
 nodeToken -> "import"
 name -> Name()
 nodeOptional -> [ "." "*" ]
 nodeToken1 -> ";"
 

visit

public java.lang.Object visit(TypeDeclaration n,
                              java.lang.Object argu)
 nodeChoice -> ClassDeclaration()
       | InterfaceDeclaration()
       | ";"
 

visit

public java.lang.Object visit(ClassDeclaration n,
                              java.lang.Object argu)
 nodeListOptional -> ( "abstract" | "final" | "public" | "strictfp" )*
 unmodifiedClassDeclaration -> UnmodifiedClassDeclaration()
 

visit

public java.lang.Object visit(UnmodifiedClassDeclaration n,
                              java.lang.Object argu)
 nodeToken -> "class"
 nodeToken1 -> <IDENTIFIER>
 nodeOptional -> [ "extends" Name() ]
 nodeOptional1 -> [ "implements" NameList() ]
 classBody -> ClassBody()
 

visit

public java.lang.Object visit(ClassBody n,
                              java.lang.Object argu)
 nodeToken -> "{"
 nodeListOptional -> ( ClassBodyDeclaration() )*
 nodeToken1 -> "}"
 

visit

public java.lang.Object visit(NestedClassDeclaration n,
                              java.lang.Object argu)
 nodeListOptional -> ( "static" | "abstract" | "final" | "public" | "protected" | "private" | "strictfp" )*
 unmodifiedClassDeclaration -> UnmodifiedClassDeclaration()
 

visit

public java.lang.Object visit(ClassBodyDeclaration n,
                              java.lang.Object argu)
 nodeChoice -> Initializer()
       | NestedClassDeclaration()
       | NestedInterfaceDeclaration()
       | ConstructorDeclaration()
       | MethodDeclaration()
       | FieldDeclaration()
       | ";"
 

visit

public java.lang.Object visit(MethodDeclarationLookahead n,
                              java.lang.Object argu)
 nodeListOptional -> ( "public" | "protected" | "private" | "static" | "abstract" | "final" | "native" | "synchronized" | "strictfp" )*
 resultType -> ResultType()
 nodeToken -> <IDENTIFIER>
 nodeToken1 -> "("
 

visit

public java.lang.Object visit(InterfaceDeclaration n,
                              java.lang.Object argu)
 nodeListOptional -> ( "abstract" | "public" | "strictfp" )*
 unmodifiedInterfaceDeclaration -> UnmodifiedInterfaceDeclaration()
 

visit

public java.lang.Object visit(NestedInterfaceDeclaration n,
                              java.lang.Object argu)
 nodeListOptional -> ( "static" | "abstract" | "final" | "public" | "protected" | "private" | "strictfp" )*
 unmodifiedInterfaceDeclaration -> UnmodifiedInterfaceDeclaration()
 

visit

public java.lang.Object visit(UnmodifiedInterfaceDeclaration n,
                              java.lang.Object argu)
 nodeToken -> "interface"
 nodeToken1 -> <IDENTIFIER>
 nodeOptional -> [ "extends" NameList() ]
 nodeToken2 -> "{"
 nodeListOptional -> ( InterfaceMemberDeclaration() )*
 nodeToken3 -> "}"
 

visit

public java.lang.Object visit(InterfaceMemberDeclaration n,
                              java.lang.Object argu)
 nodeChoice -> NestedClassDeclaration()
       | NestedInterfaceDeclaration()
       | MethodDeclaration()
       | FieldDeclaration()
       | ";"
 

visit

public java.lang.Object visit(FieldDeclaration n,
                              java.lang.Object argu)
 nodeListOptional -> ( "public" | "protected" | "private" | "static" | "final" | "transient" | "volatile" )*
 type -> Type()
 variableDeclarator -> VariableDeclarator()
 nodeListOptional1 -> ( "," VariableDeclarator() )*
 nodeToken -> ";"
 

visit

public java.lang.Object visit(VariableDeclarator n,
                              java.lang.Object argu)
 variableDeclaratorId -> VariableDeclaratorId()
 nodeOptional -> [ "=" VariableInitializer() ]
 

visit

public java.lang.Object visit(VariableDeclaratorId n,
                              java.lang.Object argu)
 nodeToken -> <IDENTIFIER>
 nodeListOptional -> ( "[" "]" )*
 

visit

public java.lang.Object visit(VariableInitializer n,
                              java.lang.Object argu)
 nodeChoice -> ArrayInitializer()
       | Expression()
 

visit

public java.lang.Object visit(ArrayInitializer n,
                              java.lang.Object argu)
 nodeToken -> "{"
 nodeOptional -> [ VariableInitializer() ( "," VariableInitializer() )* ]
 nodeOptional1 -> [ "," ]
 nodeToken1 -> "}"
 

visit

public java.lang.Object visit(MethodDeclaration n,
                              java.lang.Object argu)
 nodeListOptional -> ( "public" | "protected" | "private" | "static" | "abstract" | "final" | "native" | "synchronized" | "strictfp" )*
 resultType -> ResultType()
 methodDeclarator -> MethodDeclarator()
 nodeOptional -> [ "throws" NameList() ]
 nodeChoice -> ( TopBlock() | ";" )
 

visit

public java.lang.Object visit(MethodDeclarator n,
                              java.lang.Object argu)
 nodeToken -> <IDENTIFIER>
 formalParameters -> FormalParameters()
 nodeListOptional -> ( "[" "]" )*
 

visit

public java.lang.Object visit(FormalParameters n,
                              java.lang.Object argu)
 nodeToken -> "("
 nodeOptional -> [ FormalParameter() ( "," FormalParameter() )* ]
 nodeToken1 -> ")"
 

visit

public java.lang.Object visit(FormalParameter n,
                              java.lang.Object argu)
 nodeOptional -> [ "final" ]
 type -> Type()
 variableDeclaratorId -> VariableDeclaratorId()
 

visit

public java.lang.Object visit(ConstructorDeclaration n,
                              java.lang.Object argu)
 nodeOptional -> [ "public" | "protected" | "private" ]
 nodeToken -> <IDENTIFIER>
 formalParameters -> FormalParameters()
 nodeOptional1 -> [ "throws" NameList() ]
 nodeToken1 -> "{"
 nodeOptional2 -> [ ExplicitConstructorInvocation() ]
 topBlockStatements -> TopBlockStatements()
 nodeToken2 -> "}"
 

visit

public java.lang.Object visit(ExplicitConstructorInvocation n,
                              java.lang.Object argu)
 nodeChoice -> "this" Arguments() ";"
       | [ PrimaryExpression() "." ] "super" Arguments() ";"
 

visit

public java.lang.Object visit(Initializer n,
                              java.lang.Object argu)
 nodeOptional -> [ "static" ]
 topBlock -> TopBlock()
 

visit

public java.lang.Object visit(Type n,
                              java.lang.Object argu)
 nodeChoice -> ( PrimitiveType() | Name() )
 nodeListOptional -> ( "[" "]" )*
 

visit

public java.lang.Object visit(PrimitiveType n,
                              java.lang.Object argu)
 nodeChoice -> "boolean"
       | "char"
       | "byte"
       | "short"
       | "int"
       | "long"
       | "float"
       | "double"
 

visit

public java.lang.Object visit(ResultType n,
                              java.lang.Object argu)
 nodeChoice -> "void"
       | Type()
 

visit

public java.lang.Object visit(Name n,
                              java.lang.Object argu)
 nodeToken -> <IDENTIFIER>
 nodeListOptional -> ( "." <IDENTIFIER> )*
 

visit

public java.lang.Object visit(NameList n,
                              java.lang.Object argu)
 name -> Name()
 nodeListOptional -> ( "," Name() )*
 

visit

public java.lang.Object visit(Expression n,
                              java.lang.Object argu)
 conditionalExpression -> ConditionalExpression()
 nodeOptional -> [ AssignmentOperator() Expression() ]
 

visit

public java.lang.Object visit(AssignmentOperator n,
                              java.lang.Object argu)
 nodeChoice -> "="
       | "*="
       | "/="
       | "%="
       | "+="
       | "-="
       | "<<="
       | ">>="
       | ">>>="
       | "&="
       | "^="
       | "|="
 

visit

public java.lang.Object visit(ConditionalExpression n,
                              java.lang.Object argu)
 conditionalOrExpression -> ConditionalOrExpression()
 nodeOptional -> [ "?" Expression() ":" ConditionalExpression() ]
 

visit

public java.lang.Object visit(ConditionalOrExpression n,
                              java.lang.Object argu)
 conditionalAndExpressionWrapper -> ConditionalAndExpressionWrapper()
 nodeListOptional -> ( "||" ConditionalAndExpressionWrapper() )*
 

visit

public java.lang.Object visit(ConditionalAndExpressionWrapper n,
                              java.lang.Object argu)
 conditionalAndExpression -> ConditionalAndExpression()
 

visit

public java.lang.Object visit(ConditionalAndExpression n,
                              java.lang.Object argu)
 inclusiveOrExpression -> InclusiveOrExpression()
 nodeListOptional -> ( "&&" InclusiveOrExpression() )*
 

visit

public java.lang.Object visit(InclusiveOrExpression n,
                              java.lang.Object argu)
 exclusiveOrExpression -> ExclusiveOrExpression()
 nodeListOptional -> ( "|" ExclusiveOrExpression() )*
 

visit

public java.lang.Object visit(ExclusiveOrExpression n,
                              java.lang.Object argu)
 andExpression -> AndExpression()
 nodeListOptional -> ( "^" AndExpression() )*
 

visit

public java.lang.Object visit(AndExpression n,
                              java.lang.Object argu)
 equalityExpression -> EqualityExpression()
 nodeListOptional -> ( "&" EqualityExpression() )*
 

visit

public java.lang.Object visit(EqualityExpression n,
                              java.lang.Object argu)
 instanceOfExpression -> InstanceOfExpression()
 nodeListOptional -> ( ( "==" | "!=" ) InstanceOfExpression() )*
 

visit

public java.lang.Object visit(InstanceOfExpression n,
                              java.lang.Object argu)
 relationalExpression -> RelationalExpression()
 nodeOptional -> [ "instanceof" Type() ]
 

visit

public java.lang.Object visit(RelationalExpression n,
                              java.lang.Object argu)
 shiftExpression -> ShiftExpression()
 nodeListOptional -> ( ( "<" | ">" | "<=" | ">=" ) ShiftExpression() )*
 

visit

public java.lang.Object visit(ShiftExpression n,
                              java.lang.Object argu)
 additiveExpression -> AdditiveExpression()
 nodeListOptional -> ( ( "<<" | ">>" | ">>>" ) AdditiveExpression() )*
 

visit

public java.lang.Object visit(AdditiveExpression n,
                              java.lang.Object argu)
 multiplicativeExpression -> MultiplicativeExpression()
 nodeListOptional -> ( ( "+" | "-" ) MultiplicativeExpression() )*
 

visit

public java.lang.Object visit(MultiplicativeExpression n,
                              java.lang.Object argu)
 unaryExpression -> UnaryExpression()
 nodeListOptional -> ( ( "*" | "/" | "%" ) UnaryExpression() )*
 

visit

public java.lang.Object visit(UnaryExpression n,
                              java.lang.Object argu)
 nodeChoice -> ( "+" | "-" ) UnaryExpression()
       | PreIncrementExpression()
       | PreDecrementExpression()
       | UnaryExpressionNotPlusMinus()
 

visit

public java.lang.Object visit(PreIncrementExpression n,
                              java.lang.Object argu)
 nodeToken -> "++"
 primaryExpression -> PrimaryExpression()
 

visit

public java.lang.Object visit(PreDecrementExpression n,
                              java.lang.Object argu)
 nodeToken -> "--"
 primaryExpression -> PrimaryExpression()
 

visit

public java.lang.Object visit(UnaryExpressionNotPlusMinus n,
                              java.lang.Object argu)
 nodeChoice -> ( "~" | "!" ) UnaryExpression()
       | CastExpression()
       | PostfixExpression()
 

visit

public java.lang.Object visit(CastLookahead n,
                              java.lang.Object argu)
 nodeChoice -> "(" PrimitiveType()
       | "(" Name() "[" "]"
       | "(" Name() ")" ( "~" | "!" | "(" | <IDENTIFIER> | "this" | "super" | "new" | Literal() )
 

visit

public java.lang.Object visit(PostfixExpression n,
                              java.lang.Object argu)
 primaryExpression -> PrimaryExpression()
 nodeOptional -> [ "++" | "--" ]
 

visit

public java.lang.Object visit(CastExpression n,
                              java.lang.Object argu)
 nodeChoice -> "(" Type() ")" UnaryExpression()
       | "(" Type() ")" UnaryExpressionNotPlusMinus()
 

visit

public java.lang.Object visit(PrimaryExpression n,
                              java.lang.Object argu)
 primaryPrefix -> PrimaryPrefix()
 nodeListOptional -> ( PrimarySuffix() )*
 

visit

public java.lang.Object visit(PrimaryPrefix n,
                              java.lang.Object argu)
 nodeChoice -> Literal()
       | "this"
       | "super" "." <IDENTIFIER>
       | "(" Expression() ")"
       | AllocationExpression()
       | ResultType() "." "class"
       | Name()
 

visit

public java.lang.Object visit(PrimarySuffix n,
                              java.lang.Object argu)
 nodeChoice -> "." "this"
       | "." AllocationExpression()
       | "[" Expression() "]"
       | "." <IDENTIFIER>
       | Arguments()
 

visit

public java.lang.Object visit(Literal n,
                              java.lang.Object argu)
 nodeChoice -> <INTEGER_LITERAL>
       | <FLOATING_POINT_LITERAL>
       | <CHARACTER_LITERAL>
       | <STRING_LITERAL>
       | BooleanLiteral()
       | NullLiteral()
 

visit

public java.lang.Object visit(BooleanLiteral n,
                              java.lang.Object argu)
 nodeChoice -> "true"
       | "false"
 

visit

public java.lang.Object visit(NullLiteral n,
                              java.lang.Object argu)
 nodeToken -> "null"
 

visit

public java.lang.Object visit(Arguments n,
                              java.lang.Object argu)
 nodeToken -> "("
 nodeOptional -> [ ArgumentList() ]
 nodeToken1 -> ")"
 

visit

public java.lang.Object visit(ArgumentList n,
                              java.lang.Object argu)
 expression -> Expression()
 nodeListOptional -> ( "," Expression() )*
 

visit

public java.lang.Object visit(AllocationExpression n,
                              java.lang.Object argu)
 nodeChoice -> "new" PrimitiveType() ArrayDimsAndInits()
       | "new" Name() ( ArrayDimsAndInits() | Arguments() [ ClassBody() ] )
 

visit

public java.lang.Object visit(ArrayDimsAndInits n,
                              java.lang.Object argu)
 nodeChoice -> ( "[" Expression() "]" )+ ( "[" "]" )*
       | ( "[" "]" )+ ArrayInitializer()
 

visit

public java.lang.Object visit(Statement n,
                              java.lang.Object argu)
 nodeChoice -> LabeledStatement()
       | Block()
       | EmptyStatement()
       | StatementExpression() ";"
       | SwitchStatement()
       | IfStatement()
       | WhileStatement()
       | DoStatement()
       | ForStatement()
       | BreakStatement()
       | ContinueStatement()
       | ReturnStatement()
       | ThrowStatement()
       | SynchronizedStatement()
       | TryStatement()
 

visit

public java.lang.Object visit(LabeledStatement n,
                              java.lang.Object argu)
 nodeToken -> <IDENTIFIER>
 nodeToken1 -> ":"
 statement -> Statement()
 

visit

public java.lang.Object visit(Block n,
                              java.lang.Object argu)
 nodeToken -> "{"
 nodeListOptional -> ( BlockStatement() )*
 nodeToken1 -> "}"
 

visit

public java.lang.Object visit(BlockStatement n,
                              java.lang.Object argu)
 nodeChoice -> LocalVariableDeclaration() ";"
       | Statement()
       | UnmodifiedClassDeclaration()
       | UnmodifiedInterfaceDeclaration()
 

visit

public java.lang.Object visit(LocalVariableDeclaration n,
                              java.lang.Object argu)
 nodeOptional -> [ "final" ]
 type -> Type()
 variableDeclarator -> VariableDeclarator()
 nodeListOptional -> ( "," VariableDeclarator() )*
 

visit

public java.lang.Object visit(EmptyStatement n,
                              java.lang.Object argu)
 nodeToken -> ";"
 

visit

public java.lang.Object visit(StatementExpression n,
                              java.lang.Object argu)
 nodeChoice -> PreIncrementExpression()
       | PreDecrementExpression()
       | PrimaryExpression() [ "++" | "--" | AssignmentOperator() Expression() ]
 

visit

public java.lang.Object visit(SwitchStatement n,
                              java.lang.Object argu)
 nodeToken -> "switch"
 nodeToken1 -> "("
 expression -> Expression()
 nodeToken2 -> ")"
 nodeToken3 -> "{"
 nodeListOptional -> ( SwitchLabel() ( BlockStatement() )* )*
 nodeToken4 -> "}"
 

visit

public java.lang.Object visit(SwitchLabel n,
                              java.lang.Object argu)
 nodeChoice -> "case" Expression() ":"
       | "default" ":"
 

visit

public java.lang.Object visit(IfStatement n,
                              java.lang.Object argu)
 nodeToken -> "if"
 nodeToken1 -> "("
 expression -> Expression()
 nodeToken2 -> ")"
 statement -> Statement()
 nodeOptional -> [ "else" Statement() ]
 

visit

public java.lang.Object visit(WhileStatement n,
                              java.lang.Object argu)
 nodeToken -> "while"
 nodeToken1 -> "("
 expression -> Expression()
 nodeToken2 -> ")"
 statement -> Statement()
 

visit

public java.lang.Object visit(DoStatement n,
                              java.lang.Object argu)
 nodeToken -> "do"
 statement -> Statement()
 nodeToken1 -> "while"
 nodeToken2 -> "("
 expression -> Expression()
 nodeToken3 -> ")"
 nodeToken4 -> ";"
 

visit

public java.lang.Object visit(ForStatement n,
                              java.lang.Object argu)
 nodeToken -> "for"
 nodeToken1 -> "("
 nodeOptional -> [ ForInit() ]
 nodeToken2 -> ";"
 nodeOptional1 -> [ Expression() ]
 nodeToken3 -> ";"
 nodeOptional2 -> [ ForUpdate() ]
 nodeToken4 -> ")"
 statement -> Statement()
 

visit

public java.lang.Object visit(ForInit n,
                              java.lang.Object argu)
 nodeChoice -> LocalVariableDeclaration()
       | StatementExpressionList()
 

visit

public java.lang.Object visit(StatementExpressionList n,
                              java.lang.Object argu)
 statementExpression -> StatementExpression()
 nodeListOptional -> ( "," StatementExpression() )*
 

visit

public java.lang.Object visit(ForUpdate n,
                              java.lang.Object argu)
 statementExpressionList -> StatementExpressionList()
 

visit

public java.lang.Object visit(BreakStatement n,
                              java.lang.Object argu)
 nodeToken -> "break"
 nodeOptional -> [ <IDENTIFIER> ]
 nodeToken1 -> ";"
 

visit

public java.lang.Object visit(ContinueStatement n,
                              java.lang.Object argu)
 nodeToken -> "continue"
 nodeOptional -> [ <IDENTIFIER> ]
 nodeToken1 -> ";"
 

visit

public java.lang.Object visit(ReturnStatement n,
                              java.lang.Object argu)
 nodeToken -> "return"
 nodeOptional -> [ Expression() ]
 nodeToken1 -> ";"
 

visit

public java.lang.Object visit(ThrowStatement n,
                              java.lang.Object argu)
 nodeToken -> "throw"
 expression -> Expression()
 nodeToken1 -> ";"
 

visit

public java.lang.Object visit(SynchronizedStatement n,
                              java.lang.Object argu)
 nodeToken -> "synchronized"
 nodeToken1 -> "("
 expression -> Expression()
 nodeToken2 -> ")"
 block -> Block()
 

visit

public java.lang.Object visit(TryStatement n,
                              java.lang.Object argu)
 nodeToken -> "try"
 block -> Block()
 nodeListOptional -> ( "catch" "(" FormalParameter() ")" Block() )*
 nodeOptional -> [ "finally" Block() ]
 

visit

public java.lang.Object visit(TopBlock n,
                              java.lang.Object argu)
 nodeToken -> "{"
 topBlockStatements -> TopBlockStatements()
 nodeToken1 -> "}"
 

visit

public java.lang.Object visit(TopBlockStatements n,
                              java.lang.Object argu)
 nodeListOptional -> ( BlockStatement() )*