language Java { omit JavaLex.Omit; nonterminal { Java, CompilationUnit, PackageDeclaration, ImportDeclarations, ImportDeclaration, ImportName, TypeDeclarations, TypeDeclaration, InterfacesOpt, Interfaces, InterfaceTypeList, ClassType, InterfaceType, Modifiers, Modifier, ModifiersOpt, ClassDeclaration, SuperOpt, Super, ClassBody, ClassBodyDeclarations, ClassBodyDeclaration, ClassMemberDeclaration, StaticInitializer, InterfaceDeclaration, ExtendsInterfacesOpt, ExtendsInterfaces, ExtendsInterfacesRest, InterfaceBody, InterfaceMemberDeclarationsOpt, InterfaceMemberDeclarations, InterfaceMemberDeclaration, ConstantDeclaration, AbstractMethodDeclaration, FieldDeclaration, VariableDeclarators, VariableDeclarator, VariableDeclaratorId, VariableDeclaratorIdRest, VariableInitializer, ArrayInitializer, VariableInitializersOpt, VariableInitializers, MethodDeclaration, MethodHeader, MethodDeclarator, MethodDeclaratorRest, MethodBody, FormalParameterListOpt, FormalParameterList, FormalParameter, ThrowsOpt, Throws, ClassTypeList, ConstructorDeclaration, ConstructorDeclarator, ConstructorBody, ExplicitConstructorInvocationOpt, ExplicitConstructorInvocation, ConstructorModifier, Type, ReferenceType, ArrayTypeRest, PrimitiveType, NumericType, IntegralType, FloatingPointType, ResultType, Statement, LabeledStatement, Block, BlockStatements, BlockStatement, LocalVariableDeclaration, LocalVariableDeclarationRest, EmptyStatement, StatementExpression, SwitchStatement, SwitchBlocks, SwitchLabel, IfStatement, WhileStatement, DoStatement, ForStatement, ForInitOpt, ForInit, StatementExpressionList, ForUpdateOpt, ForUpdate, BreakStatement, ContinueStatement, ReturnStatement, ThrowStatement, SynchronizedStatement, TryStatement, Catchblock, ExpressionOpt, Expression, AssignmentOperator, ConditionalExpression, ConditionalOrExpression, ConditionalOrExpressionRest, ConditionalAndExpression, ConditionalAndExpressionRest, InclusiveOrExpression, InclusiveOrExpressionRest, ExclusiveOrExpression, ExclusiveOrExpressionRest, AndExpression, AndExpressionRest, EqualityExpression, EqualityExpressionRest, InstanceOfExpression, RelationalExpression, RelationalExpressionRest, ShiftExpression, ShiftExpressionRest, AdditiveExpression, AdditiveExpressionRest, MultiplicativeExpression, MultiplicativeExpressionRest, UnaryExpression, PreIncrementExpression, PreDecrementExpression, UnaryExpressionNotPlusMinus, PostfixExpression, CastExpression, PrimaryExpression, PrimaryExpressionRest, PrimaryPrefix, PrimarySuffix, Literal, BooleanLiteral, NullLiteral, Arguments, ArgumentList, AllocationExpression, ArrayDimsAndInits, ArrayDimsExpression, ArrayDims, Name, SimpleName, QualifiedName, IntegerLiteral; } Java --> [/] ; CompilationUnit --> [/] [/] ; --> [] ; PackageDeclaration --> package [] ";" [/] ; ImportDeclarations --> [] ; --> ; ImportDeclaration --> import [] ";" [/] ; ImportName --> [] . [] ; --> [] . [] * ; --> ; TypeDeclarations --> ; --> ; TypeDeclaration --> ; --> ; --> ";" [/] ; InterfacesOpt --> ; --> ; Interfaces --> implements ; InterfaceTypeList --> ; --> [] , ; ClassType --> ; InterfaceType --> ; // -- Declaration: -------------------------------------------------- Modifiers --> ; --> ; Modifier --> public ; --> protected ; --> private ; --> static ; --> abstract ; --> final ; --> native ; --> synchronized ; --> transient ; --> volatile ; ConstructorModifier --> public ; --> protected ; --> private ; --> ; ModifiersOpt --> ; --> ; ClassDeclaration --> class ; SuperOpt --> ; --> ; Super --> extends ; ClassBody --> { [+/] [-/] } [/] ; ClassBodyDeclarations --> [/] ; --> ; ClassBodyDeclaration --> [] ; --> [] ; --> [] ; --> [] ; --> ; nonterminal ConstructorDeclaratorAndDeclaration; ConstructorDeclaratorAndDeclaration --> ; ClassMemberDeclaration --> [] ; --> ; StaticInitializer --> static ; InterfaceDeclaration --> interface ; ExtendsInterfacesOpt --> ; --> ; ExtendsInterfaces --> extends ; ExtendsInterfacesRest --> , ; --> ; InterfaceBody --> [/] { [+/] [-/] } [/] ; InterfaceMemberDeclarationsOpt --> ; --> ; InterfaceMemberDeclarations --> [/] ; --> [/] ; InterfaceMemberDeclaration --> ; --> [] ; ConstantDeclaration --> ; AbstractMethodDeclaration --> \; ; FieldDeclaration --> [] ";" ; VariableDeclarators --> ; --> , ; VariableDeclarator --> ; --> = ; VariableDeclaratorId --> [] ; --> ; VariableDeclaratorIdRest --> "[" [] "]" [] ; --> "[" [] "]" ; VariableInitializer --> ; --> ; ArrayInitializer --> { , } ; --> { } ; VariableInitializersOpt --> ; --> ; VariableInitializers --> ; --> , ; --> , ; MethodDeclaration --> [/] ; MethodHeader --> ; MethodDeclarator --> [] ( [] [] ) ; --> ( [] [] ) [] ; MethodDeclaratorRest --> "[" [] "]" [] ; --> "[" "]" ; MethodBody --> ; --> \; ; FormalParameterListOpt --> ; --> ; FormalParameterList --> ; --> , ; FormalParameter --> ; ThrowsOpt --> ; --> ; Throws --> throws ; ClassTypeList --> ; --> , ; ConstructorDeclaration --> [/] ; ConstructorDeclarator --> ( ) ; ConstructorBody --> { [/+] [/-] } ; ExplicitConstructorInvocationOpt --> [] ; --> ; ExplicitConstructorInvocation --> this [] \; [/] ; --> super [] \; [/] ; // -- Type: -------------------------------------------------- Type --> ; --> ; ReferenceType --> ; --> ; ArrayTypeRest --> "[" [] "]" ; --> ; PrimitiveType --> ; --> boolean ; NumericType --> ; --> ; IntegralType --> byte ; --> short ; --> int ; --> long ; --> char ; FloatingPointType --> float ; --> double ; ResultType --> void ; --> ; // -- Statement: -------------------------------------------------- Statement --> [] ; --> ; --> ; --> [] ";" ; --> ; --> ; --> ; --> ; --> ; --> ; --> ; --> ; --> ; --> ; --> ; LabeledStatement --> : ; Block --> { [+/] [-/] } ; BlockStatements --> [/] ; --> [] ; --> ; BlockStatement --> [] [] ";" ; --> ; --> ; LocalVariableDeclaration --> final ; --> ; LocalVariableDeclarationRest --> , [] ; --> ; EmptyStatement --> \; ; StatementExpression --> ; --> ; --> ; --> [] ++ ; --> [] -- ; --> ; SwitchStatement --> switch ( ) { } ; SwitchBlocks --> ; --> ; SwitchLabel --> case : ; --> default : ; IfStatement --> if ( [] [] ) else [+] [-] ; --> if ( [] [] ) ; WhileStatement --> while ( ) ; DoStatement --> do while ( ) \; [/] ; ForStatement --> for ( [] [] ";" [] ";" [] ) ; ForInitOpt --> ; --> ; ForInit --> [] ; --> ; StatementExpressionList --> , ; --> ; ForUpdateOpt --> ; --> ; ForUpdate --> ; BreakStatement --> break [] ";" [/] ; --> break [] ";" [/] ; ContinueStatement --> continue [] ";" [/] ; --> continue [] ";" [/] ; ReturnStatement --> return [] ";" [/] ; --> return [] ";" [/] ; ThrowStatement --> throw \; ; SynchronizedStatement --> synchronized ( ) ; TryStatement --> try finally ; --> try [/] ; Catchblock --> catch ( [] [] ) ; --> ; // -- Expression: -------------------------------------------------- ExpressionOpt --> ; --> ; Expression --> ; --> ; AssignmentOperator --> = ; --> *= ; --> /= ; --> %= ; --> += ; --> -= ; --> \<\<= ; --> \>\>= ; --> \>\>\>= ; --> &= ; --> ^= ; --> |= ; ConditionalExpression --> ? : ; --> ; ConditionalOrExpression --> ; ConditionalOrExpressionRest --> || ; --> ; ConditionalAndExpression --> ; ConditionalAndExpressionRest --> && ; --> ; InclusiveOrExpression --> ; InclusiveOrExpressionRest --> | ; --> [ ] ; --> ; ExclusiveOrExpression --> ; ExclusiveOrExpressionRest --> ^ ; --> ; AndExpression --> ; AndExpressionRest --> & ; --> [ ] ; --> ; EqualityExpression --> ; EqualityExpressionRest --> == ; --> != ; --> ; InstanceOfExpression --> instanceof ; --> ; RelationalExpression --> ; RelationalExpressionRest --> \< ; --> \> ; --> \<= ; --> \>= ; --> ; ShiftExpression --> ; ShiftExpressionRest --> \<\< ; --> \>\> ; --> \>\>\> ; --> ; AdditiveExpression --> ; AdditiveExpressionRest --> + ; --> - ; --> ; MultiplicativeExpression --> ; MultiplicativeExpressionRest --> * ; --> / ; --> % ; --> ; UnaryExpression --> + ; --> - ; --> ; --> ; --> ; PreIncrementExpression --> ++ [] ; PreDecrementExpression --> -- [] ; UnaryExpressionNotPlusMinus --> ~ [] ; --> ! [] ; --> [] ; --> ; PostfixExpression --> ++ ; --> -- ; --> ; CastExpression --> ( [] [] ) [] ; --> ( [] [] ) [] ; PrimaryExpression --> ; PrimaryExpressionRest --> [] ; --> ; PrimaryPrefix --> ; --> this ; --> super [] . [] ; --> ( [] [] ) ; --> ; --> [] [] . [] class ; --> ; nonterminal ResultTypeDotClass; ResultTypeDotClass --> [] . [] class ; PrimarySuffix --> .this ; --> [] . [] ; --> "[" [] [] "]" ; --> [] . [] ; --> ; Literal --> ; --> ; --> ; --> ; --> ; --> ; BooleanLiteral --> true ; --> false ; NullLiteral --> null ; Arguments --> ( [] [] ) ; --> ( [] ) ; ArgumentList --> [] , ; --> ; AllocationExpression --> new [] ; --> new [] ; --> new [] ; --> new [] ; ArrayDimsAndInits --> ; --> ; --> [] ; nonterminal ArrayDimsAndInitializer; ArrayDimsAndInitializer --> ; ArrayDimsExpression --> "[" [] [] "]" [] ; --> "[" [] [] "]" ; ArrayDims --> "[" "]" ; --> ; // -- Identifier: -------------------------------------------------- Name --> ; SimpleName --> ; QualifiedName --> [] . [] ; --> ; IntegerLiteral --> ; --> ; --> ; // -- Traps: -------------------------------------------------- nonterminal { CaseTrap, AndAndTrap, OrOrTrap; } CaseTrap --> case ; AndAndTrap --> && ; OrOrTrap --> || ; }