You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@cocoon.apache.org by vg...@apache.org on 2002/09/23 06:12:58 UTC

cvs commit: xml-cocoon2/src/webapp/samples/chaperon/grammars java.rgrm

vgritsenko    2002/09/22 21:12:58

  Modified:    src/webapp/samples/chaperon/grammars java.rgrm
  Log:
  Fix CR/LF
  
  Revision  Changes    Path
  1.3       +0 -808    xml-cocoon2/src/webapp/samples/chaperon/grammars/java.rgrm
  
  Index: java.rgrm
  ===================================================================
  RCS file: /home/cvs/xml-cocoon2/src/webapp/samples/chaperon/grammars/java.rgrm,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- java.rgrm	21 Sep 2002 22:57:19 -0000	1.2
  +++ java.rgrm	23 Sep 2002 04:12:58 -0000	1.3
  @@ -1,1616 +1,808 @@
   /*------------------------------------------------------------------
  -
    * Copyright (C)
  -
    *   1996, 1997, 1998 Dmitri Bronnikov, All rights reserved.
  -
    *
  -
    * THIS GRAMMAR IS PROVIDED "AS IS" WITHOUT  ANY  EXPRESS  OR
  -
    * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
  -
    * WARRANTIES  OF  MERCHANTABILITY  AND  FITNESS  FOR  A  PARTICULAR
  -
    * PURPOSE, OR NON-INFRINGMENT.
  -
    *
  -
    * Bronikov@inreach.com
  -
    *
  -
    *------------------------------------------------------------------
  -
    *
  -
    * VERSION 1.06 DATE 20 AUG 1998
  -
    *
  -
    *------------------------------------------------------------------
  -
    *
  -
    * UPDATES
  -
    *
  -
    * 1.06 Correction of Java 1.1 syntax
  -
    * 1.05 Yet more Java 1.1
  -
    *      <qualified name>.<allocation expression>
  -
    * 1.04 More Java 1.1 features:
  -
    *      <class name>.this
  -
    *      <type name>.class
  -
    * 1.03 Added Java 1.1 features:
  -
    *      inner classes,
  -
    *      anonymous classes,
  -
    *      non-static initializer blocks,
  -
    *      array initialization by new operator
  -
    * 1.02 Corrected cast expression syntax
  -
    * 1.01 All shift/reduce conflicts, except dangling else, resolved
  -
    *
  -
    *------------------------------------------------------------------
  -
    *
  -
    * PARSING CONFLICTS RESOLVED
  -
    *
  -
    * Some Shift/Reduce conflicts have been resolved at the expense of
  -
    * the grammar defines a superset of the language. The following
  -
    * actions have to be performed to complete program syntax checking:
  -
    *
  -
    * 1) Check that modifiers applied to a class, interface, field,
  -
    *    or constructor are allowed in respectively a class, inteface,
  -
    *    field or constructor declaration. For example, a class
  -
    *    declaration should not allow other modifiers than abstract,
  -
    *    final and public.
  -
    *
  -
    * 2) For an expression statement, check it is either increment, or
  -
    *    decrement, or assignment expression.
  -
    *
  -
    * 3) Check that type expression in a cast operator indicates a type.
  -
    *    Some of the compilers that I have tested will allow simultaneous
  -
    *    use of identically named type and variable in the same scope
  -
    *    depending on context.
  -
    *
  -
    * 4) Change lexical definition to change '[' optionally followed by
  -
    *    any number of white-space characters immediately followed by ']'
  -
    *    to OP_DIM token. I defined this token as [\[]{white_space}*[\]]
  -
    *    in the lexer.
  -
    *
  -
    *------------------------------------------------------------------
  -
    *
  -
    * UNRESOLVED SHIFT/REDUCE CONFLICTS
  -
    *
  -
    * Dangling else in if-then-else
  -
    *
  -
    *------------------------------------------------------------------
  -
    */
   
  -
  -
   %uri "http://chaperon.sourceforge.net/grammar/java/1.0";
   
  -
  -
   %token DOPEN     \(;
  -
   %token DCLOSE    \);
  -
   %token COPEN     \{;
  -
   %token CCLOSE    \};
  -
   %token BOPEN     \[;
  -
   %token BCLOSE    \];
  -
   %token SEMICOLON \;;
  -
   %token COMMA     \,;
  -
   %token DOT       \.;
   
  -
  -
   %token OP_EQ    ==;
  -
   %token OP_LE    \<=;
  -
   %token OP_GE    \>=;
  -
   %token OP_NE    !=;
  -
   %token OP_LOR   \|\|;
  -
   %token OP_LAND  &&;
  -
   %token OP_INC   \+\+;
  -
   %token OP_DEC   \-\-;
  -
   %token OP_SHR   \>\>;
  -
   %token OP_SHL   \<\<;
  -
   %token OP_SHRR  \>\>\>;
  -
   %token ASS_OP   \+= | \-= | \*= | /= | &= | \|= | \^= | \%= | \<\<= | \>\>= | \>\>\>=;
   
  -
  -
   %token EQ    \=;
  -
   %token GT    \>;
  -
   %token LT    \<;
  -
   %token NOT   \!;
  -
   %token TILDE \~;
  -
   %token QM    \?;
  -
   %token COLON \:;
  -
   %token PLUS  \+;
  -
   %token MINUS \-;
  -
   %token MULT  \*;
  -
   %token DIV   \/;
  -
   %token AND   \&;
  -
   %token OR    \|;
  -
   %token XOR   \^;
  -
   %token MOD   \%;
   
  -
  -
   %token BOOLLIT true|false;
   
  -
  -
   %token ABSTRACT     abstract;
  -
   %token DO           do;
  -
   %token IMPLEMENTS   implements;
  -
   %token PACKAGE      package;
  -
   %token THROW        throw;
  -
   %token BOOLEAN      boolean;
  -
   %token DOUBLE       double;
  -
   %token IMPORT       import;
  -
   %token PRIVATE      private;
  -
   %token THROWS       throws;
  -
   %token BREAK        break;
   
  -
  -
   %right ELSE         else;
   
  -
  -
   %token INNER        inner;
  -
   %token PROTECTED    protected;
  -
   %token TRANSIENT    transient;
  -
   %token BYTE         byte;
  -
   %token EXTENDS      extends;
  -
   %token INSTANCEOF   instanceof;
  -
   %token PUBLIC       public;
  -
   %token TRY          try;
  -
   %token CASE         case;
  -
   %token FINAL        final;
  -
   %token INT          int;
  -
   %token REST         rest;
  -
   %token VAR          var;
  -
   %token CAST         cast;
  -
   %token FINALLY      finally;
  -
   %token INTERFACE    interface;
  -
   %token RETURN       return;
  -
   %token VOID         void;
  -
   %token CATCH        catch;
  -
   %token FLOAT        float;
  -
   %token LONG         long;
  -
   %token SHORT        short;
  -
   %token VOLATILE     volatile;
  -
   %token CHAR         char;
  -
   %token FOR          for;
  -
   %token NATIVE       native;
  -
   %token STATIC       static;
  -
   %token WHILE        while;
  -
   %token CLASS        class;
  -
   %token FUTURE       future;
  -
   %token NEW          new;
  -
   %token SUPER        super;
  -
   %token CONST        const;
  -
   %token GENERIC      generic;
  -
   %token NULL         null;
  -
   %token SWITCH       switch;
  -
   %token CONTINUE     continue;
  -
   %token GOTO         goto;
  -
   %token OPERATOR     operator;
  -
   %token SYNCHRONIZED synchronized;
  -
   %token DEFAULT      default;
  -
   %token IF           if;
  -
   %token OUTER        outer;
  -
   %token THIS         this;
   
  -
  -
   %ab HexDigit        [0-9a-fA-F];
  -
   %ab Digit           [0-9];
  -
   %ab OctalDigit      [0-7];
  -
   %ab TetraDigit      [0-3];
  -
   %ab NonZeroDigit    [1-9];
  -
   %ab Letter          [a-zA-Z_];
  -
   %ab AnyButSlash     [^\/];
  -
   %ab AnyButAstr      [^\*];
  -
   %ab UniEsc          [\1b];
   
  -
  -
   %ab OctEscape1      \\ <OctalDigit>;
  -
   %ab OctEscape2      \\ <OctalDigit><OctalDigit>;
  -
   %ab OctEscape3      \\ <TetraDigit><OctalDigit><OctalDigit>;
  -
   %ab OctEscape       (<OctEscape1>|<OctEscape2>|<OctEscape3>);
   
  -
  -
   %ab Escape          [\\]([rnbft\\\'\"]);
  -
   %ab ULetter         (<Letter>|<UniEsc>);
  -
   %ab Identifier      <ULetter>(<ULetter>|<Digit>)*;
   
  -
  -
   %ab IntSuffix       (l|L);
  -
   %ab DecimalNum      <NonZeroDigit><Digit>*<IntSuffix>?;
  -
   %ab OctalNum        0 <OctalDigit>*<IntSuffix>?;
  -
   %ab HexNum          0 (x|X) <HexDigit><HexDigit>*<IntSuffix>?;
  -
   %ab IntegerLiteral  (<DecimalNum>|<OctalNum>|<HexNum>);
   
  -
  -
   %ab Sign            (\+ | \-);
  -
   %ab FlSuffix        (f|F|d|D);
  -
   %ab SignedInt       <Sign>?<Digit>+;
  -
   %ab Expo            (e|E);
  -
   %ab ExponentPart    <Expo><SignedInt>?;
  -
   %ab Float1          <Digit>+ \. (<Digit>+)?<ExponentPart>?<FlSuffix>?;
  -
   %ab Float2          \. <Digit>+<ExponentPart>?<FlSuffix>?;
  -
   %ab Float3          <Digit>+<ExponentPart><FlSuffix>?;
  -
   %ab Float4          <Digit>+<FlSuffix>;
  -
   %ab FloatingPoint   (<Float1>|<Float2>|<Float3>|<Float4>);
   
  -
  -
   %ab AnyChrChr       [^\\'];
  -
   %ab AnyStrChr       [^\\\"];
  -
   %ab Character       \' (<Escape>|<OctEscape>|<AnyChrChr>)  \' ;
  -
   %ab String          \" (<Escape>|<OctEscape>|<AnyStrChr>)* \" ;
  -
   %ab Numeric         (<IntegerLiteral>|<FloatingPoint>);
   
  -
  -
   %token LITERAL         (<Numeric>|<Character>|<String>);
   
  -
  -
   %token IDENTIFIER   ([a-zA-Z_]|[\1b])(([a-zA-Z_]|[\1b])|[0-9])*;
   
   
  -
  -
  -
   //%token OP_DIM \[ ([\r\n\f\t\b\ ]|( \/ \* ([^\*]| \* [^\/])* \*  \/ |
  -
   //              \/ \/ (.*)))* \] ;
   
  -
  -
   //%whitespace [\r\n\f\t\b\ ];
   
   
  -
  -
  -
   %token OP_DIM \[ ([\r\n\t\ ]|( \/ \* ([^\*]| \* [^\/])* \*  \/ |
  -
                  \/ \/ (.*)))* \] ;
   
  -
  -
   %ignore whitespace [\t\ ];
   
  -
  -
   %ignore eol \r(\n)?|\n;
   
  -
  -
   %ab Comment1        \/ \* (<AnyButAstr>|[\*]<AnyButSlash>)* \* \/;
  -
   %ab Comment2        \/ \/ (.*);
  -
   %ignore comment         (<Comment1>|<Comment2>);
   
  -
  -
   %start CompilationUnit;
   
  -
  -
   %%
   
  -
  -
   TypeSpecifier
  -
   	: TypeName
  -
   	| TypeName Dims
  -
   	;
   
  -
  -
   TypeName
  -
   	: PrimitiveType
  -
   	| QualifiedName
  -
   	;
   
  -
  -
   ClassNameList
  -
     : QualifiedName
  -
     | ClassNameList COMMA QualifiedName
  -
   	;
   
  -
  -
   PrimitiveType
  -
   	: BOOLEAN
  -
   	| CHAR
  -
   	| BYTE
  -
   	| SHORT
  -
   	| INT
  -
   	| LONG
  -
   	| FLOAT
  -
   	| DOUBLE
  -
   	| VOID
  -
   	;
   
  -
  -
   SemiColons
  -
   	: SEMICOLON
  -
     | SemiColons SEMICOLON
  -
     ;
   
  -
  -
   CompilationUnit
  -
   	: ProgramFile
  -
     ;
   
  -
  -
   ProgramFile
  -
   	: PackageStatement ImportStatements TypeDeclarations
  -
   	| PackageStatement ImportStatements
  -
   	| PackageStatement                  TypeDeclarations
  -
   	|                  ImportStatements TypeDeclarations
  -
   	| PackageStatement
  -
   	|                  ImportStatements
  -
   	|                                   TypeDeclarations
  -
   	;
   
  -
  -
   PackageStatement
  -
   	: PACKAGE QualifiedName SemiColons
  -
   	;
   
  -
  -
   TypeDeclarations
  -
   	: TypeDeclarationOptSemi
  -
   	| TypeDeclarations TypeDeclarationOptSemi
  -
   	;
   
  -
  -
   TypeDeclarationOptSemi
  -
     : TypeDeclaration
  -
     | TypeDeclaration SemiColons
  -
     ;
   
  -
  -
   ImportStatements
  -
   	: ImportStatement
  -
   	| ImportStatements ImportStatement
  -
   	;
   
  -
  -
   ImportStatement
  -
   	: IMPORT QualifiedName SemiColons
  -
   	| IMPORT QualifiedName DOT MULT SemiColons
  -
   	;
   
  -
  -
   QualifiedName
  -
   	: IDENTIFIER %append
  -
   	| QualifiedName DOT IDENTIFIER %append
  -
   	;
   
  -
  -
   TypeDeclaration
  -
   	: ClassHeader COPEN FieldDeclarations CCLOSE
  -
   	| ClassHeader COPEN CCLOSE
  -
   	;
   
  -
  -
   ClassHeader
  -
   	: Modifiers ClassWord IDENTIFIER Extends Interfaces
  -
   	| Modifiers ClassWord IDENTIFIER Extends
  -
   	| Modifiers ClassWord IDENTIFIER         Interfaces
  -
   	|           ClassWord IDENTIFIER Extends Interfaces
  -
   	| Modifiers ClassWord IDENTIFIER
  -
   	|           ClassWord IDENTIFIER Extends
  -
   	|           ClassWord IDENTIFIER         Interfaces
  -
   	|           ClassWord IDENTIFIER
  -
   	;
   
  -
  -
   Modifiers
  -
   	: Modifier %append
  -
   	| Modifiers Modifier %append
  -
   	;
   
  -
  -
   Modifier
  -
   	: ABSTRACT
  -
   	| FINAL
  -
   	| PUBLIC
  -
   	| PROTECTED
  -
   	| PRIVATE
  -
   	| STATIC
  -
   	| TRANSIENT
  -
   	| VOLATILE
  -
   	| NATIVE
  -
   	| SYNCHRONIZED
  -
   	;
   
  -
  -
   ClassWord
  -
   	: CLASS
  -
   	| INTERFACE
  -
   	;
   
  -
  -
   Interfaces
  -
   	: IMPLEMENTS ClassNameList
  -
   	;
   
  -
  -
   FieldDeclarations
  -
   	: FieldDeclarationOptSemi
  -
     | FieldDeclarations FieldDeclarationOptSemi
  -
   	;
   
  -
  -
   FieldDeclarationOptSemi
  -
     : FieldDeclaration
  -
     | FieldDeclaration SemiColons
  -
     ;
   
  -
  -
   FieldDeclaration
  -
   	: FieldVariableDeclaration SEMICOLON
  -
   	| MethodDeclaration
  -
   	| ConstructorDeclaration
  -
   	| StaticInitializer
  -
     | NonStaticInitializer
  -
     | TypeDeclaration
  -
   	;
   
  -
  -
   FieldVariableDeclaration
  -
   	: Modifiers TypeSpecifier VariableDeclarators
  -
   	|           TypeSpecifier VariableDeclarators
  -
   	;
   
  -
  -
   VariableDeclarators
  -
   	: VariableDeclarator
  -
   	| VariableDeclarators COMMA VariableDeclarator
  -
   	;
   
  -
  -
   VariableDeclarator
  -
   	: DeclaratorName
  -
   	| DeclaratorName EQ VariableInitializer
  -
   	;
   
  -
  -
   VariableInitializer
  -
   	: Expression
  -
   	| COPEN CCLOSE
  -
     | COPEN ArrayInitializers CCLOSE
  -
     ;
   
  -
  -
   ArrayInitializers
  -
   	: VariableInitializer
  -
   	| ArrayInitializers COMMA VariableInitializer
  -
   	| ArrayInitializers COMMA
  -
   	;
   
  -
  -
   MethodDeclaration
  -
   	: Modifiers TypeSpecifier MethodDeclarator Throws MethodBody
  -
   	| Modifiers TypeSpecifier MethodDeclarator        MethodBody
  -
   	|           TypeSpecifier MethodDeclarator Throws MethodBody
  -
   	|           TypeSpecifier MethodDeclarator        MethodBody
  -
   	;
   
  -
  -
   MethodDeclarator
  -
   	: DeclaratorName DOPEN ParameterList DCLOSE
  -
   	| DeclaratorName DOPEN DCLOSE
  -
   	| MethodDeclarator OP_DIM
  -
   	;
   
  -
  -
   ParameterList
  -
   	: Parameter
  -
   	| ParameterList COMMA Parameter
  -
   	;
   
  -
  -
   Parameter
  -
   	: TypeSpecifier DeclaratorName
  -
     | FINAL TypeSpecifier DeclaratorName
  -
   	;
   
  -
  -
   DeclaratorName
  -
   	: IDENTIFIER
  -
     | DeclaratorName OP_DIM
  -
     ;
   
  -
  -
   Throws
  -
   	: THROWS ClassNameList
  -
   	;
   
  -
  -
   MethodBody
  -
   	: Block
  -
   	| SEMICOLON
  -
   	;
   
  -
  -
   ConstructorDeclaration
  -
   	: Modifiers ConstructorDeclarator Throws Block
  -
   	| Modifiers ConstructorDeclarator        Block
  -
   	|           ConstructorDeclarator Throws Block
  -
   	|           ConstructorDeclarator        Block
  -
   	;
   
  -
  -
   ConstructorDeclarator
  -
   	: IDENTIFIER DOPEN ParameterList DCLOSE
  -
   	| IDENTIFIER DOPEN DCLOSE
  -
   	;
   
  -
  -
   StaticInitializer
  -
   	: STATIC Block
  -
   	;
   
  -
  -
   NonStaticInitializer
  -
     : Block
  -
     ;
   
  -
  -
   Extends
  -
   	: EXTENDS TypeName
  -
   	| Extends COMMA TypeName
  -
   	;
   
  -
  -
   Block
  -
   	: COPEN LocalVariableDeclarationsAndStatements CCLOSE
  -
   	| COPEN CCLOSE
  -
     ;
   
  -
  -
   LocalVariableDeclarationsAndStatements
  -
   	: LocalVariableDeclarationOrStatement %append
  -
   	| LocalVariableDeclarationsAndStatements LocalVariableDeclarationOrStatement %append
  -
   	;
   
  -
  -
   LocalVariableDeclarationOrStatement
  -
   	: LocalVariableDeclarationStatement
  -
   	| Statement
  -
   	;
   
  -
  -
   LocalVariableDeclarationStatement
  -
   	: TypeSpecifier VariableDeclarators SEMICOLON
  -
     | FINAL TypeSpecifier VariableDeclarators SEMICOLON
  -
   	;
   
  -
  -
   Statement
  -
   	: EmptyStatement
  -
   	| LabelStatement
  -
   	| ExpressionStatement SEMICOLON
  -
     | SelectionStatement
  -
     | IterationStatement
  -
   	| JumpStatement
  -
   	| GuardingStatement
  -
   	| Block
  -
   	;
   
  -
  -
   EmptyStatement
  -
   	: SEMICOLON
  -
     ;
   
  -
  -
   LabelStatement
  -
   	: IDENTIFIER COLON
  -
     | CASE ConstantExpression COLON
  -
   	| DEFAULT COLON
  -
     ;
   
  -
  -
   ExpressionStatement
  -
   	: Expression
  -
   	;
   
  -
  -
   SelectionStatement
  -
   	: IF DOPEN Expression DCLOSE Statement %prec ELSE
  -
     | IF DOPEN Expression DCLOSE Statement ELSE Statement %prec ELSE
  -
     | SWITCH DOPEN Expression DCLOSE Block
  -
     ;
   
  -
  -
   IterationStatement
  -
   	: WHILE DOPEN Expression DCLOSE Statement
  -
   	| DO Statement WHILE DOPEN Expression DCLOSE SEMICOLON
  -
   	| FOR DOPEN ForInit ForExpr ForIncr DCLOSE Statement
  -
   	| FOR DOPEN ForInit ForExpr         DCLOSE Statement
  -
   	;
   
  -
  -
   ForInit
  -
   	: ExpressionStatements SEMICOLON
  -
   	| LocalVariableDeclarationStatement
  -
   	| SEMICOLON
  -
   	;
   
  -
  -
   ForExpr
  -
   	: Expression SEMICOLON
  -
   	| SEMICOLON
  -
   	;
   
  -
  -
   ForIncr
  -
   	: ExpressionStatements
  -
   	;
   
  -
  -
   ExpressionStatements
  -
   	: ExpressionStatement %resolve
  -
   	| ExpressionStatements COMMA ExpressionStatement
  -
   	;
   
  -
  -
   JumpStatement
  -
   	: BREAK IDENTIFIER SEMICOLON
  -
   	| BREAK            SEMICOLON
  -
     | CONTINUE IDENTIFIER SEMICOLON
  -
   	| CONTINUE            SEMICOLON
  -
   	| RETURN Expression SEMICOLON
  -
   	| RETURN            SEMICOLON
  -
   	| THROW Expression SEMICOLON
  -
   	;
   
  -
  -
   GuardingStatement
  -
   	: SYNCHRONIZED DOPEN Expression DCLOSE Statement
  -
   	| TRY Block Finally
  -
   	| TRY Block Catches
  -
   	| TRY Block Catches Finally
  -
   	;
   
  -
  -
   Catches
  -
   	: Catch
  -
   	| Catches Catch
  -
   	;
   
  -
  -
   Catch
  -
   	: CatchHeader Block
  -
   	;
   
  -
  -
   CatchHeader
  -
   	: CATCH DOPEN TypeSpecifier IDENTIFIER DCLOSE
  -
   	| CATCH DOPEN TypeSpecifier DCLOSE
  -
   	;
   
  -
  -
   Finally
  -
   	: FINALLY Block
  -
   	;
   
  -
  -
   PrimaryExpression
  -
   	: QualifiedName %resolve
  -
   	| NotJustName %resolve
  -
   	;
   
  -
  -
   NotJustName
  -
   	: SpecialName %resolve
  -
   	| NewAllocationExpression %resolve
  -
   	| ComplexPrimary %resolve
  -
   	;
   
  -
  -
   ComplexPrimary
  -
   	: DOPEN Expression DCLOSE
  -
   	| ComplexPrimaryNoParenthesis %resolve
  -
   	;
   
  -
  -
   ComplexPrimaryNoParenthesis
  -
   	: LITERAL
  -
   	| BOOLLIT
  -
   	| ArrayAccess
  -
   	| FieldAccess
  -
   	| MethodCall
  -
   	;
   
  -
  -
   ArrayAccess
  -
   	: QualifiedName  BOPEN Expression BCLOSE
  -
   	| ComplexPrimary BOPEN Expression BCLOSE
  -
   	;
   
  -
  -
   FieldAccess
  -
   	: NotJustName DOT IDENTIFIER
  -
   	| RealPostfixExpression DOT IDENTIFIER
  -
     | QualifiedName DOT THIS
  -
     | QualifiedName DOT CLASS
  -
     | PrimitiveType DOT CLASS
  -
   	;
   
  -
  -
   MethodCall
  -
   	: MethodAccess DOPEN ArgumentList DCLOSE
  -
   	| MethodAccess DOPEN DCLOSE
  -
   	;
   
  -
  -
   MethodAccess
  -
   	: ComplexPrimaryNoParenthesis
  -
   	| SpecialName
  -
   	| QualifiedName
  -
   	;
   
  -
  -
   SpecialName
  -
   	: THIS
  -
   	| SUPER
  -
   	| NULL
  -
   	;
   
  -
  -
   ArgumentList
  -
   	: Expression
  -
   	| ArgumentList COMMA Expression
  -
   	;
   
  -
  -
   NewAllocationExpression
  -
     : PlainNewAllocationExpression
  -
     | QualifiedName DOT PlainNewAllocationExpression
  -
     ;
   
  -
  -
   PlainNewAllocationExpression
  -
    	: ArrayAllocationExpression
  -
    	| ClassAllocationExpression
  -
    	| ArrayAllocationExpression COPEN CCLOSE
  -
    	| ClassAllocationExpression COPEN CCLOSE
  -
    	| ArrayAllocationExpression COPEN ArrayInitializers CCLOSE
  -
    	| ClassAllocationExpression COPEN FieldDeclarations CCLOSE
  -
    	;
   
  -
  -
   ClassAllocationExpression
  -
   	: NEW TypeName DOPEN ArgumentList DCLOSE
  -
   	| NEW TypeName DOPEN              DCLOSE
  -
     ;
   
  -
  -
   ArrayAllocationExpression
  -
   	: NEW TypeName DimExprs Dims
  -
   	| NEW TypeName DimExprs
  -
     | NEW TypeName Dims
  -
   	;
   
  -
  -
   DimExprs
  -
   	: DimExpr
  -
   	| DimExprs DimExpr
  -
   	;
   
  -
  -
   DimExpr
  -
   	: BOPEN Expression BCLOSE
  -
   	;
   
  -
  -
   Dims
  -
   	: OP_DIM
  -
   	| Dims OP_DIM
  -
   	;
   
  -
  -
   PostfixExpression
  -
   	: PrimaryExpression %resolve
  -
   	| RealPostfixExpression %resolve
  -
   	;
   
  -
  -
   RealPostfixExpression
  -
   	: PostfixExpression OP_INC
  -
   	| PostfixExpression OP_DEC
  -
   	;
   
  -
  -
   UnaryExpression
  -
   	: OP_INC UnaryExpression
  -
   	| OP_DEC UnaryExpression
  -
   	| ArithmeticUnaryOperator CastExpression
  -
   	| LogicalUnaryExpression %resolve
  -
   	;
   
  -
  -
   LogicalUnaryExpression
  -
   	: PostfixExpression %resolve
  -
   	| LogicalUnaryOperator UnaryExpression
  -
   	;
   
  -
  -
   LogicalUnaryOperator
  -
   	: TILDE
  -
   	| NOT
  -
   	;
   
  -
  -
   ArithmeticUnaryOperator
  -
   	: PLUS
  -
   	| MINUS
  -
   	;
   
  -
  -
   CastExpression
  -
   	: UnaryExpression %resolve
  -
   	| DOPEN PrimitiveTypeExpression DCLOSE CastExpression
  -
   	| DOPEN ClassTypeExpression DCLOSE CastExpression
  -
   	| DOPEN Expression DCLOSE LogicalUnaryExpression
  -
   	;
   
  -
  -
   PrimitiveTypeExpression
  -
   	: PrimitiveType 
  -
     | PrimitiveType Dims
  -
     ;
   
  -
  -
   ClassTypeExpression
  -
   	: QualifiedName Dims
  -
     ;
   
  -
  -
   MultiplicativeExpression
  -
   	: CastExpression %resolve
  -
   	| MultiplicativeExpression MULT CastExpression
  -
   	| MultiplicativeExpression DIV CastExpression
  -
   	| MultiplicativeExpression MOD CastExpression
  -
   	;
   
  -
  -
   AdditiveExpression
  -
   	: MultiplicativeExpression %resolve
  -
     | AdditiveExpression PLUS MultiplicativeExpression
  -
   	| AdditiveExpression MINUS MultiplicativeExpression
  -
     ;
   
  -
  -
   ShiftExpression 
  -
   	: AdditiveExpression %resolve
  -
     | ShiftExpression OP_SHL AdditiveExpression
  -
     | ShiftExpression OP_SHR AdditiveExpression
  -
     | ShiftExpression OP_SHRR AdditiveExpression
  -
   	;
   
  -
  -
   RelationalExpression
  -
   	: ShiftExpression %resolve
  -
     | RelationalExpression LT ShiftExpression
  -
   	| RelationalExpression GT ShiftExpression
  -
   	| RelationalExpression OP_LE ShiftExpression
  -
   	| RelationalExpression OP_GE ShiftExpression
  -
   	| RelationalExpression INSTANCEOF TypeSpecifier
  -
   	;
   
  -
  -
   EqualityExpression
  -
   	: RelationalExpression %resolve
  -
     | EqualityExpression OP_EQ RelationalExpression
  -
     | EqualityExpression OP_NE RelationalExpression
  -
     ;
   
  -
  -
   AndExpression
  -
   	: EqualityExpression %resolve
  -
     | AndExpression AND EqualityExpression
  -
     ;
   
  -
  -
   ExclusiveOrExpression
  -
   	: AndExpression %resolve
  -
   	| ExclusiveOrExpression XOR AndExpression
  -
   	;
   
  -
  -
   InclusiveOrExpression
  -
   	: ExclusiveOrExpression %resolve
  -
   	| InclusiveOrExpression OR ExclusiveOrExpression
  -
   	;
   
  -
  -
   ConditionalAndExpression
  -
   	: InclusiveOrExpression %resolve
  -
   	| ConditionalAndExpression OP_LAND InclusiveOrExpression
  -
   	;
   
  -
  -
   ConditionalOrExpression
  -
   	: ConditionalAndExpression %resolve
  -
   	| ConditionalOrExpression OP_LOR ConditionalAndExpression
  -
   	;
   
  -
  -
   ConditionalExpression
  -
   	: ConditionalOrExpression %resolve
  -
   	| ConditionalOrExpression QM Expression COLON ConditionalExpression
  -
   	;
   
  -
  -
   AssignmentExpression
  -
   	: ConditionalExpression %resolve
  -
   	| UnaryExpression AssignmentOperator AssignmentExpression
  -
   	;
   
  -
  -
   AssignmentOperator
  -
   	: EQ
  -
   	| ASS_OP
  -
   	;
   
  -
  -
   Expression
  -
   	: AssignmentExpression
  -
     ;
   
  -
  -
   ConstantExpression
  -
   	: ConditionalExpression
  -
   	;
  -
  -
  -
   
   
  
  
  

----------------------------------------------------------------------
In case of troubles, e-mail:     webmaster@xml.apache.org
To unsubscribe, e-mail:          cocoon-cvs-unsubscribe@xml.apache.org
For additional commands, e-mail: cocoon-cvs-help@xml.apache.org