EDU.purdue.jtb.visitor
Interface GJVoidVisitor<A>

All Known Implementing Classes:
GJVoidDepthFirst

public interface GJVoidVisitor<A>

All GJ void visitors must implement this interface.


Method Summary
 void visit(AdditiveExpression n, A argu)
          f0 -> MultiplicativeExpression() f1 -> ( ( "+" | "-" ) MultiplicativeExpression() )*
 void visit(AllocationExpression n, A argu)
          f0 -> "new" PrimitiveType() ArrayDimensions() [ ArrayInitializer() ] | "new" Name() ( ArrayDimensions() [ ArrayInitializer() ] | Arguments() [ ClassBody() ] )
 void visit(AndExpression n, A argu)
          f0 -> EqualityExpression() f1 -> ( "&" EqualityExpression() )*
 void visit(ArgumentList n, A argu)
          f0 -> Expression() f1 -> ( "," Expression() )*
 void visit(Arguments n, A argu)
          f0 -> "(" f1 -> [ ArgumentList() ] f2 -> ")"
 void visit(ArrayDimensions n, A argu)
          f0 -> ( "[" Expression() "]" )+ f1 -> ( "[" "]" )*
 void visit(ArrayInitializer n, A argu)
          f0 -> "{" f1 -> [ VariableInitializer() ( "," VariableInitializer() )* ] f2 -> [ "," ] f3 -> "}"
 void visit(Assignment n, A argu)
          f0 -> PrimaryExpression() f1 -> AssignmentOperator() f2 -> Expression()
 void visit(AssignmentOperator n, A argu)
          f0 -> "=" | "*=" | "/=" | "%=" | "+=" | "-=" | "<<=" | ">>=" | ">>>=" | "&=" | "^=" | "|="
 void visit(Block n, A argu)
          f0 -> "{" f1 -> ( BlockStatement() )* f2 -> "}"
 void visit(BlockStatement n, A argu)
          f0 -> LocalVariableDeclaration() ";" | Statement() | UnmodifiedClassDeclaration()
 void visit(BNFProduction n, A argu)
          f0 -> ResultType() f1 -> f2 -> FormalParameters() f3 -> f4 -> "{" f5 -> ( BlockStatement() )* f6 -> "}" f7 -> f8 -> ExpansionChoices() f9 ->
 void visit(BooleanLiteral n, A argu)
          f0 -> "true" | "false"
 void visit(BreakStatement n, A argu)
          f0 -> "break" f1 -> [ ] f2 -> ";"
 void visit(CastExpression n, A argu)
          f0 -> "(" Type() ")" UnaryExpression() | "(" Type() ")" UnaryExpressionNotPlusMinus()
 void visit(CastLookahead n, A argu)
          f0 -> "(" PrimitiveType() | "(" Name() "[" "]" | "(" Name() ")" ( "~" | "!" | "(" | | "this" | "super" | "new" | Literal() )
 void visit(CharacterDescriptor n, A argu)
          f0 -> f1 -> [ ]
 void visit(CharacterList n, A argu)
          f0 -> [ ] f1 -> f2 -> [ CharacterDescriptor() ( CharacterDescriptor() )* ] f3 ->
 void visit(ClassBody n, A argu)
          f0 -> "{" f1 -> ( ClassBodyDeclaration() )* f2 -> "}"
 void visit(ClassBodyDeclaration n, A argu)
          f0 -> Initializer() | NestedClassDeclaration() | NestedInterfaceDeclaration() | ConstructorDeclaration() | MethodDeclaration() | FieldDeclaration()
 void visit(ClassDeclaration n, A argu)
          f0 -> ( "abstract" | "final" | "public" )* f1 -> UnmodifiedClassDeclaration()
 void visit(CompilationUnit n, A argu)
          f0 -> [ PackageDeclaration() ] f1 -> ( ImportDeclaration() )* f2 -> ( TypeDeclaration() )*
 void visit(ComplexRegularExpression n, A argu)
          f0 -> ( ComplexRegularExpressionUnit() )*
 void visit(ComplexRegularExpressionChoices n, A argu)
          f0 -> ComplexRegularExpression() f1 -> ( ComplexRegularExpression() )*
 void visit(ComplexRegularExpressionUnit n, A argu)
          f0 -> | | CharacterList() | ComplexRegularExpressionChoices() [ | | ]
 void visit(ConditionalAndExpression n, A argu)
          f0 -> InclusiveOrExpression() f1 -> ( "&&" InclusiveOrExpression() )*
 void visit(ConditionalExpression n, A argu)
          f0 -> ConditionalOrExpression() f1 -> [ "?" Expression() ":" ConditionalExpression() ]
 void visit(ConditionalOrExpression n, A argu)
          f0 -> ConditionalAndExpression() f1 -> ( "||" ConditionalAndExpression() )*
 void visit(ConstructorDeclaration n, A argu)
          f0 -> [ "public" | "protected" | "private" ] f1 -> f2 -> FormalParameters() f3 -> [ "throws" NameList() ] f4 -> "{" f5 -> [ ExplicitConstructorInvocation() ] f6 -> ( BlockStatement() )* f7 -> "}"
 void visit(ContinueStatement n, A argu)
          f0 -> "continue" f1 -> [ ] f2 -> ";"
 void visit(DoStatement n, A argu)
          f0 -> "do" f1 -> Statement() f2 -> "while" f3 -> "(" f4 -> Expression() f5 -> ")" f6 -> ";"
 void visit(EmptyStatement n, A argu)
          f0 -> ";"
 void visit(EqualityExpression n, A argu)
          f0 -> InstanceOfExpression() f1 -> ( ( "==" | "!=" ) InstanceOfExpression() )*
 void visit(ExclusiveOrExpression n, A argu)
          f0 -> AndExpression() f1 -> ( "^" AndExpression() )*
 void visit(Expansion n, A argu)
          f0 -> ( ExpansionUnit() )*
 void visit(ExpansionChoices n, A argu)
          f0 -> Expansion() f1 -> ( Expansion() )*
 void visit(ExpansionUnit n, A argu)
          f0 -> LocalLookahead() | Block() | ExpansionChoices() [ | | ] | ExpansionChoices() | [ PrimaryExpression() ] ExpansionUnitTerm()
 void visit(ExpansionUnitTerm n, A argu)
          f0 -> RegularExpression() | Arguments()
 void visit(ExplicitConstructorInvocation n, A argu)
          f0 -> "this" Arguments() ";" | [ PrimaryExpression() "." ] "super" Arguments() ";"
 void visit(Expression n, A argu)
          f0 -> Assignment() | ConditionalExpression()
 void visit(FieldDeclaration n, A argu)
          f0 -> ( "public" | "protected" | "private" | "static" | "final" | "transient" | "volatile" )* f1 -> Type() f2 -> VariableDeclarator() f3 -> ( "," VariableDeclarator() )* f4 -> ";"
 void visit(ForInit n, A argu)
          f0 -> LocalVariableDeclaration() | StatementExpressionList()
 void visit(FormalParameter n, A argu)
          f0 -> [ "final" ] f1 -> Type() f2 -> VariableDeclaratorId()
 void visit(FormalParameters n, A argu)
          f0 -> "(" f1 -> [ FormalParameter() ( "," FormalParameter() )* ] f2 -> ")"
 void visit(ForStatement n, A argu)
          f0 -> "for" f1 -> "(" f2 -> [ ForInit() ] f3 -> ";" f4 -> [ Expression() ] f5 -> ";" f6 -> [ ForUpdate() ] f7 -> ")" f8 -> Statement()
 void visit(ForUpdate n, A argu)
          f0 -> StatementExpressionList()
 void visit(IfStatement n, A argu)
          f0 -> "if" f1 -> "(" f2 -> Expression() f3 -> ")" f4 -> Statement() f5 -> [ "else" Statement() ]
 void visit(ImportDeclaration n, A argu)
          f0 -> "import" f1 -> Name() f2 -> [ "." "*" ] f3 -> ";"
 void visit(InclusiveOrExpression n, A argu)
          f0 -> ExclusiveOrExpression() f1 -> ( "|" ExclusiveOrExpression() )*
 void visit(Initializer n, A argu)
          f0 -> [ "static" ] f1 -> Block()
 void visit(InstanceOfExpression n, A argu)
          f0 -> RelationalExpression() f1 -> [ "instanceof" Type() ]
 void visit(InterfaceDeclaration n, A argu)
          f0 -> ( "abstract" | "public" )* f1 -> UnmodifiedInterfaceDeclaration()
 void visit(InterfaceMemberDeclaration n, A argu)
          f0 -> NestedClassDeclaration() | NestedInterfaceDeclaration() | MethodDeclaration() | FieldDeclaration()
 void visit(JavaCCInput n, A argu)
          f0 -> JavaCCOptions() f1 -> f2 -> f3 -> f4 -> f5 -> CompilationUnit() f6 -> f7 -> f8 -> f9 -> f10 -> ( Production() )* f11 ->
 void visit(JavaCCOptions n, A argu)
          f0 -> [ ( OptionBinding() )* ]
 void visit(JavaCodeProduction n, A argu)
          f0 -> f1 -> ResultType() f2 -> f3 -> FormalParameters() f4 -> Block()
 void visit(LabeledStatement n, A argu)
          f0 -> f1 -> ":" f2 -> Statement()
 void visit(LexicalStateList n, A argu)
          f0 -> | ( )*
 void visit(Literal n, A argu)
          f0 -> | | | | BooleanLiteral() | NullLiteral()
 void visit(LocalLookahead n, A argu)
          f0 -> f1 -> f2 -> [ ] f3 -> [ ] f4 -> ExpansionChoices() f5 -> [ ] f6 -> [ Expression() ] f7 ->
 void visit(LocalVariableDeclaration n, A argu)
          f0 -> [ "final" ] f1 -> Type() f2 -> VariableDeclarator() f3 -> ( "," VariableDeclarator() )*
 void visit(MethodDeclaration n, A argu)
          f0 -> ( "public" | "protected" | "private" | "static" | "abstract" | "final" | "native" | "synchronized" )* f1 -> ResultType() f2 -> MethodDeclarator() f3 -> [ "throws" NameList() ] f4 -> ( Block() | ";" )
 void visit(MethodDeclarationLookahead n, A argu)
          f0 -> ( "public" | "protected" | "private" | "static" | "abstract" | "final" | "native" | "synchronized" )* f1 -> ResultType() f2 -> f3 -> "("
 void visit(MethodDeclarator n, A argu)
          f0 -> f1 -> FormalParameters() f2 -> ( "[" "]" )*
 void visit(MultiplicativeExpression n, A argu)
          f0 -> UnaryExpression() f1 -> ( ( "*" | "/" | "%" ) UnaryExpression() )*
 void visit(Name n, A argu)
          f0 -> f1 -> ( "." )*
 void visit(NameList n, A argu)
          f0 -> Name() f1 -> ( "," Name() )*
 void visit(NestedClassDeclaration n, A argu)
          f0 -> ( "static" | "abstract" | "final" | "public" | "protected" | "private" )* f1 -> UnmodifiedClassDeclaration()
 void visit(NestedInterfaceDeclaration n, A argu)
          f0 -> ( "static" | "abstract" | "final" | "public" | "protected" | "private" )* f1 -> UnmodifiedInterfaceDeclaration()
 void visit(NodeList n, A argu)
           
 void visit(NodeListOptional n, A argu)
           
 void visit(NodeOptional n, A argu)
           
 void visit(NodeSequence n, A argu)
           
 void visit(NodeToken n, A argu)
           
 void visit(NullLiteral n, A argu)
          f0 -> "null"
 void visit(OptionBinding n, A argu)
          f0 -> ( | | | ) f1 -> f2 -> ( | BooleanLiteral() | ) f3 ->
 void visit(PackageDeclaration n, A argu)
          f0 -> "package" f1 -> Name() f2 -> ";"
 void visit(PostfixExpression n, A argu)
          f0 -> PrimaryExpression() f1 -> [ "++" | "--" ]
 void visit(PreDecrementExpression n, A argu)
          f0 -> "--" f1 -> PrimaryExpression()
 void visit(PreIncrementExpression n, A argu)
          f0 -> "++" f1 -> PrimaryExpression()
 void visit(PrimaryExpression n, A argu)
          f0 -> PrimaryPrefix() f1 -> ( PrimarySuffix() )*
 void visit(PrimaryPrefix n, A argu)
          f0 -> Literal() | Name() | "this" | "super" "." | "(" Expression() ")" | AllocationExpression()
 void visit(PrimarySuffix n, A argu)
          f0 -> "." "this" | "." "class" | "." AllocationExpression() | "[" Expression() "]" | "." | Arguments()
 void visit(PrimitiveType n, A argu)
          f0 -> "boolean" | "char" | "byte" | "short" | "int" | "long" | "float" | "double"
 void visit(Production n, A argu)
          f0 -> JavaCodeProduction() | RegularExprProduction() | BNFProduction() | TokenManagerDecls()
 void visit(RegExprKind n, A argu)
          f0 -> | | |
 void visit(RegExprSpec n, A argu)
          f0 -> RegularExpression() f1 -> [ Block() ] f2 -> [ ]
 void visit(RegularExpression n, A argu)
          f0 -> | [ [ ] ] ComplexRegularExpressionChoices() | |
 void visit(RegularExprProduction n, A argu)
          f0 -> [ LexicalStateList() ] f1 -> RegExprKind() f2 -> [ ] f3 -> f4 -> f5 -> RegExprSpec() f6 -> ( RegExprSpec() )* f7 ->
 void visit(RelationalExpression n, A argu)
          f0 -> ShiftExpression() f1 -> ( ( "<" | ">" | "<=" | ">=" ) ShiftExpression() )*
 void visit(ResultType n, A argu)
          f0 -> "void" | Type()
 void visit(ReturnStatement n, A argu)
          f0 -> "return" f1 -> [ Expression() ] f2 -> ";"
 void visit(ShiftExpression n, A argu)
          f0 -> AdditiveExpression() f1 -> ( ( "<<" | ">>" | ">>>" ) AdditiveExpression() )*
 void visit(Statement n, A argu)
          f0 -> LabeledStatement() | Block() | EmptyStatement() | StatementExpression() ";" | SwitchStatement() | IfStatement() | WhileStatement() | DoStatement() | ForStatement() | BreakStatement() | ContinueStatement() | ReturnStatement() | ThrowStatement() | SynchronizedStatement() | TryStatement()
 void visit(StatementExpression n, A argu)
          f0 -> PreIncrementExpression() | PreDecrementExpression() | Assignment() | PostfixExpression()
 void visit(StatementExpressionList n, A argu)
          f0 -> StatementExpression() f1 -> ( "," StatementExpression() )*
 void visit(SwitchLabel n, A argu)
          f0 -> "case" Expression() ":" | "default" ":"
 void visit(SwitchStatement n, A argu)
          f0 -> "switch" f1 -> "(" f2 -> Expression() f3 -> ")" f4 -> "{" f5 -> ( SwitchLabel() ( BlockStatement() )* )* f6 -> "}"
 void visit(SynchronizedStatement n, A argu)
          f0 -> "synchronized" f1 -> "(" f2 -> Expression() f3 -> ")" f4 -> Block()
 void visit(ThrowStatement n, A argu)
          f0 -> "throw" f1 -> Expression() f2 -> ";"
 void visit(TokenManagerDecls n, A argu)
          f0 -> f1 -> f2 -> ClassBody()
 void visit(TryStatement n, A argu)
          f0 -> "try" f1 -> Block() f2 -> ( "catch" "(" FormalParameter() ")" Block() )* f3 -> [ "finally" Block() ]
 void visit(Type n, A argu)
          f0 -> ( PrimitiveType() | Name() ) f1 -> ( "[" "]" )*
 void visit(TypeDeclaration n, A argu)
          f0 -> ClassDeclaration() | InterfaceDeclaration() | ";"
 void visit(UnaryExpression n, A argu)
          f0 -> ( "+" | "-" ) UnaryExpression() | PreIncrementExpression() | PreDecrementExpression() | UnaryExpressionNotPlusMinus()
 void visit(UnaryExpressionNotPlusMinus n, A argu)
          f0 -> ( "~" | "!" ) UnaryExpression() | CastExpression() | PostfixExpression()
 void visit(UnmodifiedClassDeclaration n, A argu)
          f0 -> "class" f1 -> f2 -> [ "extends" Name() ] f3 -> [ "implements" NameList() ] f4 -> ClassBody()
 void visit(UnmodifiedInterfaceDeclaration n, A argu)
          f0 -> "interface" f1 -> f2 -> [ "extends" NameList() ] f3 -> "{" f4 -> ( InterfaceMemberDeclaration() )* f5 -> "}"
 void visit(VariableDeclarator n, A argu)
          f0 -> VariableDeclaratorId() f1 -> [ "=" VariableInitializer() ]
 void visit(VariableDeclaratorId n, A argu)
          f0 -> f1 -> ( "[" "]" )*
 void visit(VariableInitializer n, A argu)
          f0 -> ArrayInitializer() | Expression()
 void visit(WhileStatement n, A argu)
          f0 -> "while" f1 -> "(" f2 -> Expression() f3 -> ")" f4 -> Statement()
 

Method Detail

visit

void visit(NodeList n,
           A argu)

visit

void visit(NodeListOptional n,
           A argu)

visit

void visit(NodeOptional n,
           A argu)

visit

void visit(NodeSequence n,
           A argu)

visit

void visit(NodeToken n,
           A argu)

visit

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


visit

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


visit

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


visit

void visit(TypeDeclaration n,
           A argu)
f0 -> ClassDeclaration() | InterfaceDeclaration() | ";"


visit

void visit(ClassDeclaration n,
           A argu)
f0 -> ( "abstract" | "final" | "public" )* f1 -> UnmodifiedClassDeclaration()


visit

void visit(UnmodifiedClassDeclaration n,
           A argu)
f0 -> "class" f1 -> f2 -> [ "extends" Name() ] f3 -> [ "implements" NameList() ] f4 -> ClassBody()


visit

void visit(ClassBody n,
           A argu)
f0 -> "{" f1 -> ( ClassBodyDeclaration() )* f2 -> "}"


visit

void visit(NestedClassDeclaration n,
           A argu)
f0 -> ( "static" | "abstract" | "final" | "public" | "protected" | "private" )* f1 -> UnmodifiedClassDeclaration()


visit

void visit(ClassBodyDeclaration n,
           A argu)
f0 -> Initializer() | NestedClassDeclaration() | NestedInterfaceDeclaration() | ConstructorDeclaration() | MethodDeclaration() | FieldDeclaration()


visit

void visit(MethodDeclarationLookahead n,
           A argu)
f0 -> ( "public" | "protected" | "private" | "static" | "abstract" | "final" | "native" | "synchronized" )* f1 -> ResultType() f2 -> f3 -> "("


visit

void visit(InterfaceDeclaration n,
           A argu)
f0 -> ( "abstract" | "public" )* f1 -> UnmodifiedInterfaceDeclaration()


visit

void visit(NestedInterfaceDeclaration n,
           A argu)
f0 -> ( "static" | "abstract" | "final" | "public" | "protected" | "private" )* f1 -> UnmodifiedInterfaceDeclaration()


visit

void visit(UnmodifiedInterfaceDeclaration n,
           A argu)
f0 -> "interface" f1 -> f2 -> [ "extends" NameList() ] f3 -> "{" f4 -> ( InterfaceMemberDeclaration() )* f5 -> "}"


visit

void visit(InterfaceMemberDeclaration n,
           A argu)
f0 -> NestedClassDeclaration() | NestedInterfaceDeclaration() | MethodDeclaration() | FieldDeclaration()


visit

void visit(FieldDeclaration n,
           A argu)
f0 -> ( "public" | "protected" | "private" | "static" | "final" | "transient" | "volatile" )* f1 -> Type() f2 -> VariableDeclarator() f3 -> ( "," VariableDeclarator() )* f4 -> ";"


visit

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


visit

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


visit

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


visit

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


visit

void visit(MethodDeclaration n,
           A argu)
f0 -> ( "public" | "protected" | "private" | "static" | "abstract" | "final" | "native" | "synchronized" )* f1 -> ResultType() f2 -> MethodDeclarator() f3 -> [ "throws" NameList() ] f4 -> ( Block() | ";" )


visit

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


visit

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


visit

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


visit

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


visit

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


visit

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


visit

void visit(Type n,
           A argu)
f0 -> ( PrimitiveType() | Name() ) f1 -> ( "[" "]" )*


visit

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


visit

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


visit

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


visit

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


visit

void visit(Expression n,
           A argu)
f0 -> Assignment() | ConditionalExpression()


visit

void visit(Assignment n,
           A argu)
f0 -> PrimaryExpression() f1 -> AssignmentOperator() f2 -> Expression()


visit

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


visit

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


visit

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


visit

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


visit

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


visit

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


visit

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


visit

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


visit

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


visit

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


visit

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


visit

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


visit

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


visit

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


visit

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


visit

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


visit

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


visit

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


visit

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


visit

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


visit

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


visit

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


visit

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


visit

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


visit

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


visit

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


visit

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


visit

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


visit

void visit(AllocationExpression n,
           A argu)
f0 -> "new" PrimitiveType() ArrayDimensions() [ ArrayInitializer() ] | "new" Name() ( ArrayDimensions() [ ArrayInitializer() ] | Arguments() [ ClassBody() ] )


visit

void visit(ArrayDimensions n,
           A argu)
f0 -> ( "[" Expression() "]" )+ f1 -> ( "[" "]" )*


visit

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


visit

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


visit

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


visit

void visit(BlockStatement n,
           A argu)
f0 -> LocalVariableDeclaration() ";" | Statement() | UnmodifiedClassDeclaration()


visit

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


visit

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


visit

void visit(StatementExpression n,
           A argu)
f0 -> PreIncrementExpression() | PreDecrementExpression() | Assignment() | PostfixExpression()


visit

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


visit

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


visit

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


visit

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


visit

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


visit

void visit(ForStatement n,
           A argu)
f0 -> "for" f1 -> "(" f2 -> [ ForInit() ] f3 -> ";" f4 -> [ Expression() ] f5 -> ";" f6 -> [ ForUpdate() ] f7 -> ")" f8 -> Statement()


visit

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


visit

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


visit

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


visit

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


visit

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


visit

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


visit

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


visit

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


visit

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


visit

void visit(JavaCCInput n,
           A argu)
f0 -> JavaCCOptions() f1 -> f2 -> f3 -> f4 -> f5 -> CompilationUnit() f6 -> f7 -> f8 -> f9 -> f10 -> ( Production() )* f11 ->


visit

void visit(JavaCCOptions n,
           A argu)
f0 -> [ ( OptionBinding() )* ]


visit

void visit(OptionBinding n,
           A argu)
f0 -> ( | | | ) f1 -> f2 -> ( | BooleanLiteral() | ) f3 ->


visit

void visit(Production n,
           A argu)
f0 -> JavaCodeProduction() | RegularExprProduction() | BNFProduction() | TokenManagerDecls()


visit

void visit(JavaCodeProduction n,
           A argu)
f0 -> f1 -> ResultType() f2 -> f3 -> FormalParameters() f4 -> Block()


visit

void visit(BNFProduction n,
           A argu)
f0 -> ResultType() f1 -> f2 -> FormalParameters() f3 -> f4 -> "{" f5 -> ( BlockStatement() )* f6 -> "}" f7 -> f8 -> ExpansionChoices() f9 ->


visit

void visit(RegularExprProduction n,
           A argu)
f0 -> [ LexicalStateList() ] f1 -> RegExprKind() f2 -> [ ] f3 -> f4 -> f5 -> RegExprSpec() f6 -> ( RegExprSpec() )* f7 ->


visit

void visit(TokenManagerDecls n,
           A argu)
f0 -> f1 -> f2 -> ClassBody()


visit

void visit(LexicalStateList n,
           A argu)
f0 -> | ( )*


visit

void visit(RegExprKind n,
           A argu)
f0 -> | | |


visit

void visit(RegExprSpec n,
           A argu)
f0 -> RegularExpression() f1 -> [ Block() ] f2 -> [ ]


visit

void visit(ExpansionChoices n,
           A argu)
f0 -> Expansion() f1 -> ( Expansion() )*


visit

void visit(Expansion n,
           A argu)
f0 -> ( ExpansionUnit() )*


visit

void visit(ExpansionUnit n,
           A argu)
f0 -> LocalLookahead() | Block() | ExpansionChoices() [ | | ] | ExpansionChoices() | [ PrimaryExpression() ] ExpansionUnitTerm()


visit

void visit(ExpansionUnitTerm n,
           A argu)
f0 -> RegularExpression() | Arguments()


visit

void visit(LocalLookahead n,
           A argu)
f0 -> f1 -> f2 -> [ ] f3 -> [ ] f4 -> ExpansionChoices() f5 -> [ ] f6 -> [ Expression() ] f7 ->


visit

void visit(RegularExpression n,
           A argu)
f0 -> | [ [ ] ] ComplexRegularExpressionChoices() | |


visit

void visit(ComplexRegularExpressionChoices n,
           A argu)
f0 -> ComplexRegularExpression() f1 -> ( ComplexRegularExpression() )*


visit

void visit(ComplexRegularExpression n,
           A argu)
f0 -> ( ComplexRegularExpressionUnit() )*


visit

void visit(ComplexRegularExpressionUnit n,
           A argu)
f0 -> | | CharacterList() | ComplexRegularExpressionChoices() [ | | ]


visit

void visit(CharacterList n,
           A argu)
f0 -> [ ] f1 -> f2 -> [ CharacterDescriptor() ( CharacterDescriptor() )* ] f3 ->


visit

void visit(CharacterDescriptor n,
           A argu)
f0 -> f1 -> [ ]