jtb.visitor
Interface GJVisitor<R,A>

All Known Implementing Classes:
GJDepthFirst

public interface GJVisitor<R,A>

All GJ visitors must implement this interface.


Method Summary
 R visit(AdditiveExpression n, A argu)
          f0 -> MultiplicativeExpression() f1 -> ( ( "+" | "-" ) MultiplicativeExpression() )*
 R visit(AllocationExpression n, A argu)
          f0 -> "new" PrimitiveType() ArrayDimsAndInits() | "new" ClassOrInterfaceType() [ TypeArguments() ] ( ArrayDimsAndInits() | Arguments() [ ClassOrInterfaceBody(false) ] )
 R visit(AndExpression n, A argu)
          f0 -> EqualityExpression() f1 -> ( "&" EqualityExpression() )*
 R visit(Annotation n, A argu)
          f0 -> NormalAnnotation() | SingleMemberAnnotation() | MarkerAnnotation()
 R visit(AnnotationTypeBody n, A argu)
          f0 -> "{" f1 -> ( AnnotationTypeMemberDeclaration() )* f2 -> "}"
 R visit(AnnotationTypeDeclaration n, A argu)
          f0 -> "@" f1 -> "interface" f2 -> f3 -> AnnotationTypeBody()
 R visit(AnnotationTypeMemberDeclaration n, A argu)
          f0 -> Modifiers() ( Type() "(" ")" [ DefaultValue() ] ";" | ClassOrInterfaceDeclaration(modifiers) | EnumDeclaration(modifiers) | AnnotationTypeDeclaration(modifiers) | FieldDeclaration(modifiers) ) | ( ";" )
 R visit(ArgumentList n, A argu)
          f0 -> Expression() f1 -> ( "," Expression() )*
 R visit(Arguments n, A argu)
          f0 -> "(" f1 -> [ ArgumentList() ] f2 -> ")"
 R visit(ArrayDimsAndInits n, A argu)
          f0 -> ( "[" Expression() "]" )+ ( "[" "]" )* | ( "[" "]" )+ ArrayInitializer()
 R visit(ArrayInitializer n, A argu)
          f0 -> "{" f1 -> [ VariableInitializer() ( "," VariableInitializer() )* ] f2 -> [ "," ] f3 -> "}"
 R visit(AssertStatement n, A argu)
          f0 -> "assert" f1 -> Expression() f2 -> [ ":" Expression() ] f3 -> ";"
 R visit(AssignmentOperator n, A argu)
          f0 -> "=" | "*=" | "/=" | "%=" | "+=" | "-=" | "<<=" | ">>=" | ">>>=" | "&=" | "^=" | "|="
 R visit(Block n, A argu)
          f0 -> "{" f1 -> ( BlockStatement() )* f2 -> "}"
 R visit(BlockStatement n, A argu)
          f0 -> LocalVariableDeclaration() ";" | Statement() | ClassOrInterfaceDeclaration(0)
 R visit(BooleanLiteral n, A argu)
          f0 -> "true" | "false"
 R visit(BreakStatement n, A argu)
          f0 -> "break" f1 -> [ ] f2 -> ";"
 R visit(CastExpression n, A argu)
          f0 -> "(" Type() ")" UnaryExpression() | "(" Type() ")" UnaryExpressionNotPlusMinus()
 R visit(CastLookahead n, A argu)
          f0 -> "(" PrimitiveType() | "(" Type() "[" "]" | "(" Type() ")" ( "~" | "!"
 R visit(ClassOrInterfaceBody n, A argu)
          f0 -> "{" f1 -> ( ClassOrInterfaceBodyDeclaration(isInterface) )* f2 -> "}"
 R visit(ClassOrInterfaceBodyDeclaration n, A argu)
          f0 -> Initializer() | Modifiers() ( ClassOrInterfaceDeclaration(modifiers) | EnumDeclaration(modifiers) | ConstructorDeclaration() | FieldDeclaration(modifiers) | MethodDeclaration(modifiers) ) | ";"
 R visit(ClassOrInterfaceDeclaration n, A argu)
          f0 -> ( "class" | "interface" ) f1 -> f2 -> [ TypeParameters() ] f3 -> [ ExtendsList(isInterface) ] f4 -> [ ImplementsList(isInterface) ] f5 -> ClassOrInterfaceBody(isInterface)
 R visit(ClassOrInterfaceType n, A argu)
          f0 -> f1 -> [ TypeArguments() ] f2 -> ( "."
 R visit(CompilationUnit n, A argu)
          f0 -> [ PackageDeclaration() ] f1 -> ( ImportDeclaration() )* f2 -> ( TypeDeclaration() )* f3 ->
 R visit(ConditionalAndExpression n, A argu)
          f0 -> InclusiveOrExpression() f1 -> ( "&&" InclusiveOrExpression() )*
 R visit(ConditionalExpression n, A argu)
          f0 -> ConditionalOrExpression() f1 -> [ "?"
 R visit(ConditionalOrExpression n, A argu)
          f0 -> ConditionalAndExpression() f1 -> ( "||" ConditionalAndExpression() )*
 R visit(ConstructorDeclaration n, A argu)
          f0 -> [ TypeParameters() ] f1 -> f2 -> FormalParameters() f3 -> [ "throws" NameList() ] f4 -> "{" f5 -> [ ExplicitConstructorInvocation() ] f6 -> ( BlockStatement() )* f7 -> "}"
 R visit(ContinueStatement n, A argu)
          f0 -> "continue" f1 -> [ ] f2 -> ";"
 R visit(DefaultValue n, A argu)
          f0 -> "default" f1 -> MemberValue()
 R visit(DoStatement n, A argu)
          f0 -> "do" f1 -> Statement() f2 -> "while" f3 -> "(" f4 -> Expression() f5 -> ")" f6 -> ";"
 R visit(EmptyStatement n, A argu)
          f0 -> ";"
 R visit(EnumBody n, A argu)
          f0 -> "{" f1 -> [ EnumConstant() ( "," EnumConstant() )* ] f2 -> [ "," ] f3 -> [ ";" ( ClassOrInterfaceBodyDeclaration(false) )* ] f4 -> "}"
 R visit(EnumConstant n, A argu)
          f0 -> f1 -> [ Arguments() ] f2 -> [ ClassOrInterfaceBody(false) ]
 R visit(EnumDeclaration n, A argu)
          f0 -> "enum" f1 -> f2 -> [ ImplementsList(false) ] f3 -> EnumBody()
 R visit(EqualityExpression n, A argu)
          f0 -> InstanceOfExpression() f1 -> ( ( "==" | "!
 R visit(ExclusiveOrExpression n, A argu)
          f0 -> AndExpression() f1 -> ( "^" AndExpression() )*
 R visit(ExplicitConstructorInvocation n, A argu)
          f0 -> "this" Arguments() ";" | [ PrimaryExpression() "." ] "super" Arguments() ";"
 R visit(Expression n, A argu)
          f0 -> ConditionalExpression() f1 -> [ AssignmentOperator() Expression() ]
 R visit(ExtendsList n, A argu)
          f0 -> "extends" f1 -> ClassOrInterfaceType() f2 -> ( "," ClassOrInterfaceType() )*
 R visit(FieldDeclaration n, A argu)
          f0 -> Type() f1 -> VariableDeclarator() f2 -> ( "," VariableDeclarator() )* f3 -> ";"
 R visit(ForInit n, A argu)
          f0 -> LocalVariableDeclaration() | StatementExpressionList()
 R visit(FormalParameter n, A argu)
          f0 -> [ "final" ] f1 -> Type() f2 -> [ "..." ] f3 -> VariableDeclaratorId()
 R visit(FormalParameters n, A argu)
          f0 -> "(" f1 -> [ FormalParameter() ( "," FormalParameter() )* ] f2 -> ")"
 R visit(ForStatement n, A argu)
          f0 -> "for" f1 -> "(" f2 -> ( Type() ":" Expression() | [ ForInit() ] ";" [ Expression() ] ";" [ ForUpdate() ] ) f3 -> ")" f4 -> Statement()
 R visit(ForUpdate n, A argu)
          f0 -> StatementExpressionList()
 R visit(IfStatement n, A argu)
          f0 -> "if" f1 -> "(" f2 -> Expression() f3 -> ")" f4 -> Statement() f5 -> [ "else" Statement() ]
 R visit(ImplementsList n, A argu)
          f0 -> "implements" f1 -> ClassOrInterfaceType() f2 -> ( "," ClassOrInterfaceType() )*
 R visit(ImportDeclaration n, A argu)
          f0 -> "import" f1 -> [ "static" ] f2 -> Name() f3 -> [ "." "*" ] f4 -> ";"
 R visit(InclusiveOrExpression n, A argu)
          f0 -> ExclusiveOrExpression() f1 -> ( "|" ExclusiveOrExpression() )*
 R visit(Initializer n, A argu)
          f0 -> [ "static" ] f1 -> Block()
 R visit(InstanceOfExpression n, A argu)
          f0 -> RelationalExpression() f1 -> [ "instanceof" Type() ]
 R visit(LabeledStatement n, A argu)
          f0 -> f1 -> ":" f2 -> Statement()
 R visit(Literal n, A argu)
          f0 -> | | | | BooleanLiteral() | NullLiteral()
 R visit(LocalVariableDeclaration n, A argu)
          f0 -> [ "final" ] f1 -> Type() f2 -> VariableDeclarator() f3 -> ( "," VariableDeclarator() )*
 R visit(MarkerAnnotation n, A argu)
          f0 -> "@" f1 -> Name()
 R visit(MemberSelector n, A argu)
          f0 -> "."
 R visit(MemberValue n, A argu)
          f0 -> Annotation() | MemberValueArrayInitializer() | ConditionalExpression()
 R visit(MemberValueArrayInitializer n, A argu)
          f0 -> "{" f1 -> MemberValue() f2 -> ( "," MemberValue() )* f3 -> [ "," ] f4 -> "}"
 R visit(MemberValuePair n, A argu)
          f0 -> f1 -> "=" f2 -> MemberValue()
 R visit(MemberValuePairs n, A argu)
          f0 -> MemberValuePair() f1 -> ( "," MemberValuePair() )*
 R visit(MethodDeclaration n, A argu)
          f0 -> [ TypeParameters() ] f1 -> ResultType() f2 -> MethodDeclarator() f3 -> [ "throws" NameList() ] f4 -> ( Block() | ";" )
 R visit(MethodDeclarator n, A argu)
          f0 -> f1 -> FormalParameters() f2 -> ( "[" "]" )*
 R visit(Modifiers n, A argu)
          f0 -> ( ( "public" | "static" | "protected" | "private" | "final" | "abstract" | "synchronized" | "native" | "transient" | "volatile" | "strictfp" | Annotation() ) )*
 R visit(MultiplicativeExpression n, A argu)
          f0 -> UnaryExpression() f1 -> ( ( "*" | "/" | "%" ) UnaryExpression() )*
 R visit(Name n, A argu)
          f0 -> f1 -> ( "."
 R visit(NameList n, A argu)
          f0 -> Name() f1 -> ( "," Name() )*
 R visit(NodeList n, A argu)
           
 R visit(NodeListOptional n, A argu)
           
 R visit(NodeOptional n, A argu)
           
 R visit(NodeSequence n, A argu)
           
 R visit(NodeToken n, A argu)
           
 R visit(NormalAnnotation n, A argu)
          f0 -> "@" f1 -> Name() f2 -> "(" f3 -> [ MemberValuePairs() ] f4 -> ")"
 R visit(NullLiteral n, A argu)
          f0 -> "null"
 R visit(PackageDeclaration n, A argu)
          f0 -> "package" f1 -> Name() f2 -> ";"
 R visit(PostfixExpression n, A argu)
          f0 -> PrimaryExpression() f1 -> [ "++" | "--" ]
 R visit(PreDecrementExpression n, A argu)
          f0 -> "--" f1 -> PrimaryExpression()
 R visit(PreIncrementExpression n, A argu)
          f0 -> "++" f1 -> PrimaryExpression()
 R visit(PrimaryExpression n, A argu)
          f0 -> PrimaryPrefix() f1 -> ( PrimarySuffix() )*
 R visit(PrimaryPrefix n, A argu)
          f0 -> Literal() | "this" | "super" "."
 R visit(PrimarySuffix n, A argu)
          f0 -> "."
 R visit(PrimitiveType n, A argu)
          f0 -> "boolean" | "char" | "byte" | "short" | "int" | "long" | "float" | "double"
 R visit(ReferenceType n, A argu)
          f0 -> PrimitiveType() ( "[" "]" )+ | ( ClassOrInterfaceType() ) ( "[" "]" )*
 R visit(RelationalExpression n, A argu)
          f0 -> ShiftExpression() f1 -> ( ( "<" | ">" | "<=" | ">=" ) ShiftExpression() )*
 R visit(ResultType n, A argu)
          f0 -> "void" | Type()
 R visit(ReturnStatement n, A argu)
          f0 -> "return" f1 -> [ Expression() ] f2 -> ";"
 R visit(RSIGNEDSHIFT n, A argu)
          f0 -> ( ">" ">" )
 R visit(RUNSIGNEDSHIFT n, A argu)
          f0 -> ( ">" ">" ">" )
 R visit(ShiftExpression n, A argu)
          f0 -> AdditiveExpression() f1 -> ( ( "<<" | RSIGNEDSHIFT() | RUNSIGNEDSHIFT() ) AdditiveExpression() )*
 R visit(SingleMemberAnnotation n, A argu)
          f0 -> "@" f1 -> Name() f2 -> "(" f3 -> MemberValue() f4 -> ")"
 R visit(Statement n, A argu)
          f0 -> LabeledStatement() | AssertStatement() | Block() | EmptyStatement() | StatementExpression() ";" | SwitchStatement() | IfStatement() | WhileStatement() | DoStatement() | ForStatement() | BreakStatement() | ContinueStatement() | ReturnStatement() | ThrowStatement() | SynchronizedStatement() | TryStatement()
 R visit(StatementExpression n, A argu)
          f0 -> PreIncrementExpression() | PreDecrementExpression() | PrimaryExpression() [ "++" | "--" | AssignmentOperator() Expression() ]
 R visit(StatementExpressionList n, A argu)
          f0 -> StatementExpression() f1 -> ( "," StatementExpression() )*
 R visit(SwitchLabel n, A argu)
          f0 -> "case" Expression() ":" | "default" ":"
 R visit(SwitchStatement n, A argu)
          f0 -> "switch" f1 -> "(" f2 -> Expression() f3 -> ")" f4 -> "{" f5 -> ( SwitchLabel() ( BlockStatement() )* )* f6 -> "}"
 R visit(SynchronizedStatement n, A argu)
          f0 -> "synchronized" f1 -> "(" f2 -> Expression() f3 -> ")" f4 -> Block()
 R visit(ThrowStatement n, A argu)
          f0 -> "throw" f1 -> Expression() f2 -> ";"
 R visit(TryStatement n, A argu)
          f0 -> "try" f1 -> Block() f2 -> ( "catch" "(" FormalParameter() ")" Block() )* f3 -> [ "finally" Block() ]
 R visit(Type n, A argu)
          f0 -> ReferenceType() | PrimitiveType()
 R visit(TypeArgument n, A argu)
          f0 -> ReferenceType() | "?"
 R visit(TypeArguments n, A argu)
          f0 -> "<" f1 -> TypeArgument() f2 -> ( "," TypeArgument() )* f3 -> ">"
 R visit(TypeBound n, A argu)
          f0 -> "extends" f1 -> ClassOrInterfaceType() f2 -> ( "&" ClassOrInterfaceType() )*
 R visit(TypeDeclaration n, A argu)
          f0 -> ";" | Modifiers() ( ClassOrInterfaceDeclaration(modifiers) | EnumDeclaration(modifiers) | AnnotationTypeDeclaration(modifiers) )
 R visit(TypeParameter n, A argu)
          f0 -> f1 -> [ TypeBound() ]
 R visit(TypeParameters n, A argu)
          f0 -> "<" f1 -> TypeParameter() f2 -> ( "," TypeParameter() )* f3 -> ">"
 R visit(UnaryExpression n, A argu)
          f0 -> ( "+" | "-" ) UnaryExpression() | PreIncrementExpression() | PreDecrementExpression() | UnaryExpressionNotPlusMinus()
 R visit(UnaryExpressionNotPlusMinus n, A argu)
          f0 -> ( "~" | "!"
 R visit(VariableDeclarator n, A argu)
          f0 -> VariableDeclaratorId() f1 -> [ "=" VariableInitializer() ]
 R visit(VariableDeclaratorId n, A argu)
          f0 -> f1 -> ( "[" "]" )*
 R visit(VariableInitializer n, A argu)
          f0 -> ArrayInitializer() | Expression()
 R visit(WhileStatement n, A argu)
          f0 -> "while" f1 -> "(" f2 -> Expression() f3 -> ")" f4 -> Statement()
 R visit(WildcardBounds n, A argu)
          f0 -> "extends" ReferenceType() | "super" ReferenceType()
 

Method Detail

visit

R visit(NodeList n,
        A argu)

visit

R visit(NodeListOptional n,
        A argu)

visit

R visit(NodeOptional n,
        A argu)

visit

R visit(NodeSequence n,
        A argu)

visit

R visit(NodeToken n,
        A argu)

visit

R visit(CompilationUnit n,
        A argu)
f0 -> [ PackageDeclaration() ] f1 -> ( ImportDeclaration() )* f2 -> ( TypeDeclaration() )* f3 ->


visit

R visit(PackageDeclaration n,
        A argu)
f0 -> "package" f1 -> Name() f2 -> ";"


visit

R visit(ImportDeclaration n,
        A argu)
f0 -> "import" f1 -> [ "static" ] f2 -> Name() f3 -> [ "." "*" ] f4 -> ";"


visit

R visit(Modifiers n,
        A argu)
f0 -> ( ( "public" | "static" | "protected" | "private" | "final" | "abstract" | "synchronized" | "native" | "transient" | "volatile" | "strictfp" | Annotation() ) )*


visit

R visit(TypeDeclaration n,
        A argu)
f0 -> ";" | Modifiers() ( ClassOrInterfaceDeclaration(modifiers) | EnumDeclaration(modifiers) | AnnotationTypeDeclaration(modifiers) )


visit

R visit(ClassOrInterfaceDeclaration n,
        A argu)
f0 -> ( "class" | "interface" ) f1 -> f2 -> [ TypeParameters() ] f3 -> [ ExtendsList(isInterface) ] f4 -> [ ImplementsList(isInterface) ] f5 -> ClassOrInterfaceBody(isInterface)


visit

R visit(ExtendsList n,
        A argu)
f0 -> "extends" f1 -> ClassOrInterfaceType() f2 -> ( "," ClassOrInterfaceType() )*


visit

R visit(ImplementsList n,
        A argu)
f0 -> "implements" f1 -> ClassOrInterfaceType() f2 -> ( "," ClassOrInterfaceType() )*


visit

R visit(EnumDeclaration n,
        A argu)
f0 -> "enum" f1 -> f2 -> [ ImplementsList(false) ] f3 -> EnumBody()


visit

R visit(EnumBody n,
        A argu)
f0 -> "{" f1 -> [ EnumConstant() ( "," EnumConstant() )* ] f2 -> [ "," ] f3 -> [ ";" ( ClassOrInterfaceBodyDeclaration(false) )* ] f4 -> "}"


visit

R visit(EnumConstant n,
        A argu)
f0 -> f1 -> [ Arguments() ] f2 -> [ ClassOrInterfaceBody(false) ]


visit

R visit(TypeParameters n,
        A argu)
f0 -> "<" f1 -> TypeParameter() f2 -> ( "," TypeParameter() )* f3 -> ">"


visit

R visit(TypeParameter n,
        A argu)
f0 -> f1 -> [ TypeBound() ]


visit

R visit(TypeBound n,
        A argu)
f0 -> "extends" f1 -> ClassOrInterfaceType() f2 -> ( "&" ClassOrInterfaceType() )*


visit

R visit(ClassOrInterfaceBody n,
        A argu)
f0 -> "{" f1 -> ( ClassOrInterfaceBodyDeclaration(isInterface) )* f2 -> "}"


visit

R visit(ClassOrInterfaceBodyDeclaration n,
        A argu)
f0 -> Initializer() | Modifiers() ( ClassOrInterfaceDeclaration(modifiers) | EnumDeclaration(modifiers) | ConstructorDeclaration() | FieldDeclaration(modifiers) | MethodDeclaration(modifiers) ) | ";"


visit

R visit(FieldDeclaration n,
        A argu)
f0 -> Type() f1 -> VariableDeclarator() f2 -> ( "," VariableDeclarator() )* f3 -> ";"


visit

R visit(VariableDeclarator n,
        A argu)
f0 -> VariableDeclaratorId() f1 -> [ "=" VariableInitializer() ]


visit

R visit(VariableDeclaratorId n,
        A argu)
f0 -> f1 -> ( "[" "]" )*


visit

R visit(VariableInitializer n,
        A argu)
f0 -> ArrayInitializer() | Expression()


visit

R visit(ArrayInitializer n,
        A argu)
f0 -> "{" f1 -> [ VariableInitializer() ( "," VariableInitializer() )* ] f2 -> [ "," ] f3 -> "}"


visit

R visit(MethodDeclaration n,
        A argu)
f0 -> [ TypeParameters() ] f1 -> ResultType() f2 -> MethodDeclarator() f3 -> [ "throws" NameList() ] f4 -> ( Block() | ";" )


visit

R visit(MethodDeclarator n,
        A argu)
f0 -> f1 -> FormalParameters() f2 -> ( "[" "]" )*


visit

R visit(FormalParameters n,
        A argu)
f0 -> "(" f1 -> [ FormalParameter() ( "," FormalParameter() )* ] f2 -> ")"


visit

R visit(FormalParameter n,
        A argu)
f0 -> [ "final" ] f1 -> Type() f2 -> [ "..." ] f3 -> VariableDeclaratorId()


visit

R visit(ConstructorDeclaration n,
        A argu)
f0 -> [ TypeParameters() ] f1 -> f2 -> FormalParameters() f3 -> [ "throws" NameList() ] f4 -> "{" f5 -> [ ExplicitConstructorInvocation() ] f6 -> ( BlockStatement() )* f7 -> "}"


visit

R visit(ExplicitConstructorInvocation n,
        A argu)
f0 -> "this" Arguments() ";" | [ PrimaryExpression() "." ] "super" Arguments() ";"


visit

R visit(Initializer n,
        A argu)
f0 -> [ "static" ] f1 -> Block()


visit

R visit(Type n,
        A argu)
f0 -> ReferenceType() | PrimitiveType()


visit

R visit(ReferenceType n,
        A argu)
f0 -> PrimitiveType() ( "[" "]" )+ | ( ClassOrInterfaceType() ) ( "[" "]" )*


visit

R visit(ClassOrInterfaceType n,
        A argu)
f0 -> f1 -> [ TypeArguments() ] f2 -> ( "." [ TypeArguments() ] )*


visit

R visit(TypeArguments n,
        A argu)
f0 -> "<" f1 -> TypeArgument() f2 -> ( "," TypeArgument() )* f3 -> ">"


visit

R visit(TypeArgument n,
        A argu)
f0 -> ReferenceType() | "?" [ WildcardBounds() ]


visit

R visit(WildcardBounds n,
        A argu)
f0 -> "extends" ReferenceType() | "super" ReferenceType()


visit

R visit(PrimitiveType n,
        A argu)
f0 -> "boolean" | "char" | "byte" | "short" | "int" | "long" | "float" | "double"


visit

R visit(ResultType n,
        A argu)
f0 -> "void" | Type()


visit

R visit(Name n,
        A argu)
f0 -> f1 -> ( "." )*


visit

R visit(NameList n,
        A argu)
f0 -> Name() f1 -> ( "," Name() )*


visit

R visit(Expression n,
        A argu)
f0 -> ConditionalExpression() f1 -> [ AssignmentOperator() Expression() ]


visit

R visit(AssignmentOperator n,
        A argu)
f0 -> "=" | "*=" | "/=" | "%=" | "+=" | "-=" | "<<=" | ">>=" | ">>>=" | "&=" | "^=" | "|="


visit

R visit(ConditionalExpression n,
        A argu)
f0 -> ConditionalOrExpression() f1 -> [ "?" Expression() ":" Expression() ]


visit

R visit(ConditionalOrExpression n,
        A argu)
f0 -> ConditionalAndExpression() f1 -> ( "||" ConditionalAndExpression() )*


visit

R visit(ConditionalAndExpression n,
        A argu)
f0 -> InclusiveOrExpression() f1 -> ( "&&" InclusiveOrExpression() )*


visit

R visit(InclusiveOrExpression n,
        A argu)
f0 -> ExclusiveOrExpression() f1 -> ( "|" ExclusiveOrExpression() )*


visit

R visit(ExclusiveOrExpression n,
        A argu)
f0 -> AndExpression() f1 -> ( "^" AndExpression() )*


visit

R visit(AndExpression n,
        A argu)
f0 -> EqualityExpression() f1 -> ( "&" EqualityExpression() )*


visit

R visit(EqualityExpression n,
        A argu)
f0 -> InstanceOfExpression() f1 -> ( ( "==" | "!=" ) InstanceOfExpression() )*


visit

R visit(InstanceOfExpression n,
        A argu)
f0 -> RelationalExpression() f1 -> [ "instanceof" Type() ]


visit

R visit(RelationalExpression n,
        A argu)
f0 -> ShiftExpression() f1 -> ( ( "<" | ">" | "<=" | ">=" ) ShiftExpression() )*


visit

R visit(ShiftExpression n,
        A argu)
f0 -> AdditiveExpression() f1 -> ( ( "<<" | RSIGNEDSHIFT() | RUNSIGNEDSHIFT() ) AdditiveExpression() )*


visit

R visit(AdditiveExpression n,
        A argu)
f0 -> MultiplicativeExpression() f1 -> ( ( "+" | "-" ) MultiplicativeExpression() )*


visit

R visit(MultiplicativeExpression n,
        A argu)
f0 -> UnaryExpression() f1 -> ( ( "*" | "/" | "%" ) UnaryExpression() )*


visit

R visit(UnaryExpression n,
        A argu)
f0 -> ( "+" | "-" ) UnaryExpression() | PreIncrementExpression() | PreDecrementExpression() | UnaryExpressionNotPlusMinus()


visit

R visit(PreIncrementExpression n,
        A argu)
f0 -> "++" f1 -> PrimaryExpression()


visit

R visit(PreDecrementExpression n,
        A argu)
f0 -> "--" f1 -> PrimaryExpression()


visit

R visit(UnaryExpressionNotPlusMinus n,
        A argu)
f0 -> ( "~" | "!" ) UnaryExpression() | CastExpression() | PostfixExpression()


visit

R visit(CastLookahead n,
        A argu)
f0 -> "(" PrimitiveType() | "(" Type() "[" "]" | "(" Type() ")" ( "~" | "!" | "(" | | "this" | "super" | "new" | Literal() )


visit

R visit(PostfixExpression n,
        A argu)
f0 -> PrimaryExpression() f1 -> [ "++" | "--" ]


visit

R visit(CastExpression n,
        A argu)
f0 -> "(" Type() ")" UnaryExpression() | "(" Type() ")" UnaryExpressionNotPlusMinus()


visit

R visit(PrimaryExpression n,
        A argu)
f0 -> PrimaryPrefix() f1 -> ( PrimarySuffix() )*


visit

R visit(MemberSelector n,
        A argu)
f0 -> "." f1 -> TypeArguments() f2 ->


visit

R visit(PrimaryPrefix n,
        A argu)
f0 -> Literal() | "this" | "super" "." | "(" Expression() ")" | AllocationExpression() | ResultType() "." "class" | Name()


visit

R visit(PrimarySuffix n,
        A argu)
f0 -> "." "this" | "." "super" | "." AllocationExpression() | MemberSelector() | "[" Expression() "]" | "." | Arguments()


visit

R visit(Literal n,
        A argu)
f0 -> | | | | BooleanLiteral() | NullLiteral()


visit

R visit(BooleanLiteral n,
        A argu)
f0 -> "true" | "false"


visit

R visit(NullLiteral n,
        A argu)
f0 -> "null"


visit

R visit(Arguments n,
        A argu)
f0 -> "(" f1 -> [ ArgumentList() ] f2 -> ")"


visit

R visit(ArgumentList n,
        A argu)
f0 -> Expression() f1 -> ( "," Expression() )*


visit

R visit(AllocationExpression n,
        A argu)
f0 -> "new" PrimitiveType() ArrayDimsAndInits() | "new" ClassOrInterfaceType() [ TypeArguments() ] ( ArrayDimsAndInits() | Arguments() [ ClassOrInterfaceBody(false) ] )


visit

R visit(ArrayDimsAndInits n,
        A argu)
f0 -> ( "[" Expression() "]" )+ ( "[" "]" )* | ( "[" "]" )+ ArrayInitializer()


visit

R visit(Statement n,
        A argu)
f0 -> LabeledStatement() | AssertStatement() | Block() | EmptyStatement() | StatementExpression() ";" | SwitchStatement() | IfStatement() | WhileStatement() | DoStatement() | ForStatement() | BreakStatement() | ContinueStatement() | ReturnStatement() | ThrowStatement() | SynchronizedStatement() | TryStatement()


visit

R visit(AssertStatement n,
        A argu)
f0 -> "assert" f1 -> Expression() f2 -> [ ":" Expression() ] f3 -> ";"


visit

R visit(LabeledStatement n,
        A argu)
f0 -> f1 -> ":" f2 -> Statement()


visit

R visit(Block n,
        A argu)
f0 -> "{" f1 -> ( BlockStatement() )* f2 -> "}"


visit

R visit(BlockStatement n,
        A argu)
f0 -> LocalVariableDeclaration() ";" | Statement() | ClassOrInterfaceDeclaration(0)


visit

R visit(LocalVariableDeclaration n,
        A argu)
f0 -> [ "final" ] f1 -> Type() f2 -> VariableDeclarator() f3 -> ( "," VariableDeclarator() )*


visit

R visit(EmptyStatement n,
        A argu)
f0 -> ";"


visit

R visit(StatementExpression n,
        A argu)
f0 -> PreIncrementExpression() | PreDecrementExpression() | PrimaryExpression() [ "++" | "--" | AssignmentOperator() Expression() ]


visit

R visit(SwitchStatement n,
        A argu)
f0 -> "switch" f1 -> "(" f2 -> Expression() f3 -> ")" f4 -> "{" f5 -> ( SwitchLabel() ( BlockStatement() )* )* f6 -> "}"


visit

R visit(SwitchLabel n,
        A argu)
f0 -> "case" Expression() ":" | "default" ":"


visit

R visit(IfStatement n,
        A argu)
f0 -> "if" f1 -> "(" f2 -> Expression() f3 -> ")" f4 -> Statement() f5 -> [ "else" Statement() ]


visit

R visit(WhileStatement n,
        A argu)
f0 -> "while" f1 -> "(" f2 -> Expression() f3 -> ")" f4 -> Statement()


visit

R visit(DoStatement n,
        A argu)
f0 -> "do" f1 -> Statement() f2 -> "while" f3 -> "(" f4 -> Expression() f5 -> ")" f6 -> ";"


visit

R visit(ForStatement n,
        A argu)
f0 -> "for" f1 -> "(" f2 -> ( Type() ":" Expression() | [ ForInit() ] ";" [ Expression() ] ";" [ ForUpdate() ] ) f3 -> ")" f4 -> Statement()


visit

R visit(ForInit n,
        A argu)
f0 -> LocalVariableDeclaration() | StatementExpressionList()


visit

R visit(StatementExpressionList n,
        A argu)
f0 -> StatementExpression() f1 -> ( "," StatementExpression() )*


visit

R visit(ForUpdate n,
        A argu)
f0 -> StatementExpressionList()


visit

R visit(BreakStatement n,
        A argu)
f0 -> "break" f1 -> [ ] f2 -> ";"


visit

R visit(ContinueStatement n,
        A argu)
f0 -> "continue" f1 -> [ ] f2 -> ";"


visit

R visit(ReturnStatement n,
        A argu)
f0 -> "return" f1 -> [ Expression() ] f2 -> ";"


visit

R visit(ThrowStatement n,
        A argu)
f0 -> "throw" f1 -> Expression() f2 -> ";"


visit

R visit(SynchronizedStatement n,
        A argu)
f0 -> "synchronized" f1 -> "(" f2 -> Expression() f3 -> ")" f4 -> Block()


visit

R visit(TryStatement n,
        A argu)
f0 -> "try" f1 -> Block() f2 -> ( "catch" "(" FormalParameter() ")" Block() )* f3 -> [ "finally" Block() ]


visit

R visit(RUNSIGNEDSHIFT n,
        A argu)
f0 -> ( ">" ">" ">" )


visit

R visit(RSIGNEDSHIFT n,
        A argu)
f0 -> ( ">" ">" )


visit

R visit(Annotation n,
        A argu)
f0 -> NormalAnnotation() | SingleMemberAnnotation() | MarkerAnnotation()


visit

R visit(NormalAnnotation n,
        A argu)
f0 -> "@" f1 -> Name() f2 -> "(" f3 -> [ MemberValuePairs() ] f4 -> ")"


visit

R visit(MarkerAnnotation n,
        A argu)
f0 -> "@" f1 -> Name()


visit

R visit(SingleMemberAnnotation n,
        A argu)
f0 -> "@" f1 -> Name() f2 -> "(" f3 -> MemberValue() f4 -> ")"


visit

R visit(MemberValuePairs n,
        A argu)
f0 -> MemberValuePair() f1 -> ( "," MemberValuePair() )*


visit

R visit(MemberValuePair n,
        A argu)
f0 -> f1 -> "=" f2 -> MemberValue()


visit

R visit(MemberValue n,
        A argu)
f0 -> Annotation() | MemberValueArrayInitializer() | ConditionalExpression()


visit

R visit(MemberValueArrayInitializer n,
        A argu)
f0 -> "{" f1 -> MemberValue() f2 -> ( "," MemberValue() )* f3 -> [ "," ] f4 -> "}"


visit

R visit(AnnotationTypeDeclaration n,
        A argu)
f0 -> "@" f1 -> "interface" f2 -> f3 -> AnnotationTypeBody()


visit

R visit(AnnotationTypeBody n,
        A argu)
f0 -> "{" f1 -> ( AnnotationTypeMemberDeclaration() )* f2 -> "}"


visit

R visit(AnnotationTypeMemberDeclaration n,
        A argu)
f0 -> Modifiers() ( Type() "(" ")" [ DefaultValue() ] ";" | ClassOrInterfaceDeclaration(modifiers) | EnumDeclaration(modifiers) | AnnotationTypeDeclaration(modifiers) | FieldDeclaration(modifiers) ) | ( ";" )


visit

R visit(DefaultValue n,
        A argu)
f0 -> "default" f1 -> MemberValue()