vgritsenko    2003/05/03 09:21:29

  Modified:    src/blocks/chaperon/samples/grammars java.grm
               src/blocks/chaperon/samples/misc java.css
  Log:
  Fix line endings
  
  Revision  Changes    Path
  1.2       +814 -814  cocoon-2.1/src/blocks/chaperon/samples/grammars/java.grm
  
  Index: java.grm
  ===================================================================
  RCS file: /home/cvs/cocoon-2.1/src/blocks/chaperon/samples/grammars/java.grm,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- java.grm  9 Mar 2003 00:02:53 -0000       1.1
  +++ java.grm  3 May 2003 16:21:28 -0000       1.2
  @@ -1,814 +1,814 @@
  -/*------------------------------------------------------------------
  - * 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.
  - *
  - * [EMAIL PROTECTED]
  - *
  - *------------------------------------------------------------------
  - *
  - * 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
  - *
  - *------------------------------------------------------------------
  - */
  -
  -%token DOPEN     "\(";
  -%token DCLOSE    "\)";
  -%token COPEN     "\{";
  -%token CCLOSE    "\}";
  -%token BOPEN     "\[";
  -%token BCLOSE    "\]";
  -%token SEMICOLON "\;";
  -%token COMMA     "\,";
  -%right 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\t\ ]|( \/ \* ([^\*]| \* [^\/])* \*  \/ |
  -               \/ \/ (.*)))* \]";
  -
  -%token SPACES "(\ )+";
  -%token TAB "\t";
  -
  -%token EOL "\r(\n)?|\n"; // eol
  -
  -%token JAVADOC           "/ \* \* ([^\*]|[\*][^/])* \* /";
  -%token MULTILINECOMMENT  "/ \* ([^\*]|\*[^/])* \* /";
  -
  -%token SINGLELINECOMMENT "\/ \/ (.*)";
  -
  -%start CompilationUnit;
  -
  -%%
  -
  -TypeSpecifier
  -     : TypeName
  -     | TypeName Dims
  -     ;
  -
  -TypeName
  -     : PrimitiveType
  -     | QualifiedName %prec DOT
  -     ;
  -
  -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 
  -     | QualifiedName DOT IDENTIFIER 
  -     ;
  -
  -TypeDeclaration
  -     :         ClassHeader COPEN FieldDeclarations CCLOSE
  -     |         ClassHeader COPEN CCLOSE
  -  | JAVADOC ClassHeader COPEN FieldDeclarations CCLOSE
  -  | JAVADOC 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 
  -     | Modifiers Modifier 
  -     ;
  -
  -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
  -  | JAVADOC Modifiers TypeSpecifier VariableDeclarators
  -  | JAVADOC           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
  -  | JAVADOC Modifiers TypeSpecifier MethodDeclarator Throws MethodBody
  -  | JAVADOC Modifiers TypeSpecifier MethodDeclarator        MethodBody
  -  | JAVADOC           TypeSpecifier MethodDeclarator Throws MethodBody
  -  | JAVADOC           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
  -  | JAVADOC Modifiers ConstructorDeclarator Throws Block
  -  | JAVADOC Modifiers ConstructorDeclarator        Block
  -  | JAVADOC           ConstructorDeclarator Throws Block
  -  | JAVADOC           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 
  -     | LocalVariableDeclarationsAndStatements 
LocalVariableDeclarationOrStatement 
  -     ;
  -
  -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 
  -     | 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 
  -     | NotJustName 
  -     ;
  -
  -NotJustName
  -     : SpecialName 
  -     | NewAllocationExpression 
  -     | ComplexPrimary 
  -     ;
  -
  -ComplexPrimary
  -     : DOPEN Expression DCLOSE
  -     | ComplexPrimaryNoParenthesis 
  -     ;
  -
  -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 
  -     | RealPostfixExpression 
  -     ;
  -
  -RealPostfixExpression
  -     : PostfixExpression OP_INC
  -     | PostfixExpression OP_DEC
  -     ;
  -
  -UnaryExpression
  -     : OP_INC UnaryExpression
  -     | OP_DEC UnaryExpression
  -     | ArithmeticUnaryOperator CastExpression
  -     | LogicalUnaryExpression 
  -     ;
  -
  -LogicalUnaryExpression
  -     : PostfixExpression 
  -     | LogicalUnaryOperator UnaryExpression
  -     ;
  -
  -LogicalUnaryOperator
  -     : TILDE
  -     | NOT
  -     ;
  -
  -ArithmeticUnaryOperator
  -     : PLUS
  -     | MINUS
  -     ;
  -
  -CastExpression
  -     : UnaryExpression 
  -     | DOPEN PrimitiveTypeExpression DCLOSE CastExpression
  -     | DOPEN ClassTypeExpression DCLOSE CastExpression
  -     | DOPEN Expression DCLOSE LogicalUnaryExpression
  -     ;
  -
  -PrimitiveTypeExpression
  -     : PrimitiveType 
  -  | PrimitiveType Dims
  -  ;
  -
  -ClassTypeExpression
  -     : QualifiedName Dims
  -  ;
  -
  -MultiplicativeExpression
  -     : CastExpression 
  -     | MultiplicativeExpression MULT CastExpression
  -     | MultiplicativeExpression DIV CastExpression
  -     | MultiplicativeExpression MOD CastExpression
  -     ;
  -
  -AdditiveExpression
  -     : MultiplicativeExpression 
  -  | AdditiveExpression PLUS MultiplicativeExpression
  -     | AdditiveExpression MINUS MultiplicativeExpression
  -  ;
  -
  -ShiftExpression 
  -     : AdditiveExpression 
  -  | ShiftExpression OP_SHL AdditiveExpression
  -  | ShiftExpression OP_SHR AdditiveExpression
  -  | ShiftExpression OP_SHRR AdditiveExpression
  -     ;
  -
  -RelationalExpression
  -     : ShiftExpression 
  -  | RelationalExpression LT ShiftExpression
  -     | RelationalExpression GT ShiftExpression
  -     | RelationalExpression OP_LE ShiftExpression
  -     | RelationalExpression OP_GE ShiftExpression
  -     | RelationalExpression INSTANCEOF TypeSpecifier
  -     ;
  -
  -EqualityExpression
  -     : RelationalExpression 
  -  | EqualityExpression OP_EQ RelationalExpression
  -  | EqualityExpression OP_NE RelationalExpression
  -  ;
  -
  -AndExpression
  -     : EqualityExpression 
  -  | AndExpression AND EqualityExpression
  -  ;
  -
  -ExclusiveOrExpression
  -     : AndExpression 
  -     | ExclusiveOrExpression XOR AndExpression
  -     ;
  -
  -InclusiveOrExpression
  -     : ExclusiveOrExpression 
  -     | InclusiveOrExpression OR ExclusiveOrExpression
  -     ;
  -
  -ConditionalAndExpression
  -     : InclusiveOrExpression 
  -     | ConditionalAndExpression OP_LAND InclusiveOrExpression
  -     ;
  -
  -ConditionalOrExpression
  -     : ConditionalAndExpression 
  -     | ConditionalOrExpression OP_LOR ConditionalAndExpression
  -     ;
  -
  -ConditionalExpression
  -     : ConditionalOrExpression 
  -     | ConditionalOrExpression QM Expression COLON ConditionalExpression
  -     ;
  -
  -AssignmentExpression
  -     : ConditionalExpression 
  -     | UnaryExpression AssignmentOperator AssignmentExpression
  -     ;
  -
  -AssignmentOperator
  -     : EQ
  -     | ASS_OP
  -     ;
  -
  -Expression
  -     : AssignmentExpression
  -  ;
  -
  -ConstantExpression
  -     : ConditionalExpression
  -     ;
  -
  -
  +/*------------------------------------------------------------------
  + * 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.
  + *
  + * [EMAIL PROTECTED]
  + *
  + *------------------------------------------------------------------
  + *
  + * 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
  + *
  + *------------------------------------------------------------------
  + */
  +
  +%token DOPEN     "\(";
  +%token DCLOSE    "\)";
  +%token COPEN     "\{";
  +%token CCLOSE    "\}";
  +%token BOPEN     "\[";
  +%token BCLOSE    "\]";
  +%token SEMICOLON "\;";
  +%token COMMA     "\,";
  +%right 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\t\ ]|( \/ \* ([^\*]| \* [^\/])* \*  \/ |
  +               \/ \/ (.*)))* \]";
  +
  +%token SPACES "(\ )+";
  +%token TAB "\t";
  +
  +%token EOL "\r(\n)?|\n"; // eol
  +
  +%token JAVADOC           "/ \* \* ([^\*]|[\*][^/])* \* /";
  +%token MULTILINECOMMENT  "/ \* ([^\*]|\*[^/])* \* /";
  +
  +%token SINGLELINECOMMENT "\/ \/ (.*)";
  +
  +%start CompilationUnit;
  +
  +%%
  +
  +TypeSpecifier
  +     : TypeName
  +     | TypeName Dims
  +     ;
  +
  +TypeName
  +     : PrimitiveType
  +     | QualifiedName %prec DOT
  +     ;
  +
  +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 
  +     | QualifiedName DOT IDENTIFIER 
  +     ;
  +
  +TypeDeclaration
  +     :         ClassHeader COPEN FieldDeclarations CCLOSE
  +     |         ClassHeader COPEN CCLOSE
  +  | JAVADOC ClassHeader COPEN FieldDeclarations CCLOSE
  +  | JAVADOC 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 
  +     | Modifiers Modifier 
  +     ;
  +
  +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
  +  | JAVADOC Modifiers TypeSpecifier VariableDeclarators
  +  | JAVADOC           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
  +  | JAVADOC Modifiers TypeSpecifier MethodDeclarator Throws MethodBody
  +  | JAVADOC Modifiers TypeSpecifier MethodDeclarator        MethodBody
  +  | JAVADOC           TypeSpecifier MethodDeclarator Throws MethodBody
  +  | JAVADOC           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
  +  | JAVADOC Modifiers ConstructorDeclarator Throws Block
  +  | JAVADOC Modifiers ConstructorDeclarator        Block
  +  | JAVADOC           ConstructorDeclarator Throws Block
  +  | JAVADOC           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 
  +     | LocalVariableDeclarationsAndStatements 
LocalVariableDeclarationOrStatement 
  +     ;
  +
  +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 
  +     | 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 
  +     | NotJustName 
  +     ;
  +
  +NotJustName
  +     : SpecialName 
  +     | NewAllocationExpression 
  +     | ComplexPrimary 
  +     ;
  +
  +ComplexPrimary
  +     : DOPEN Expression DCLOSE
  +     | ComplexPrimaryNoParenthesis 
  +     ;
  +
  +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 
  +     | RealPostfixExpression 
  +     ;
  +
  +RealPostfixExpression
  +     : PostfixExpression OP_INC
  +     | PostfixExpression OP_DEC
  +     ;
  +
  +UnaryExpression
  +     : OP_INC UnaryExpression
  +     | OP_DEC UnaryExpression
  +     | ArithmeticUnaryOperator CastExpression
  +     | LogicalUnaryExpression 
  +     ;
  +
  +LogicalUnaryExpression
  +     : PostfixExpression 
  +     | LogicalUnaryOperator UnaryExpression
  +     ;
  +
  +LogicalUnaryOperator
  +     : TILDE
  +     | NOT
  +     ;
  +
  +ArithmeticUnaryOperator
  +     : PLUS
  +     | MINUS
  +     ;
  +
  +CastExpression
  +     : UnaryExpression 
  +     | DOPEN PrimitiveTypeExpression DCLOSE CastExpression
  +     | DOPEN ClassTypeExpression DCLOSE CastExpression
  +     | DOPEN Expression DCLOSE LogicalUnaryExpression
  +     ;
  +
  +PrimitiveTypeExpression
  +     : PrimitiveType 
  +  | PrimitiveType Dims
  +  ;
  +
  +ClassTypeExpression
  +     : QualifiedName Dims
  +  ;
  +
  +MultiplicativeExpression
  +     : CastExpression 
  +     | MultiplicativeExpression MULT CastExpression
  +     | MultiplicativeExpression DIV CastExpression
  +     | MultiplicativeExpression MOD CastExpression
  +     ;
  +
  +AdditiveExpression
  +     : MultiplicativeExpression 
  +  | AdditiveExpression PLUS MultiplicativeExpression
  +     | AdditiveExpression MINUS MultiplicativeExpression
  +  ;
  +
  +ShiftExpression 
  +     : AdditiveExpression 
  +  | ShiftExpression OP_SHL AdditiveExpression
  +  | ShiftExpression OP_SHR AdditiveExpression
  +  | ShiftExpression OP_SHRR AdditiveExpression
  +     ;
  +
  +RelationalExpression
  +     : ShiftExpression 
  +  | RelationalExpression LT ShiftExpression
  +     | RelationalExpression GT ShiftExpression
  +     | RelationalExpression OP_LE ShiftExpression
  +     | RelationalExpression OP_GE ShiftExpression
  +     | RelationalExpression INSTANCEOF TypeSpecifier
  +     ;
  +
  +EqualityExpression
  +     : RelationalExpression 
  +  | EqualityExpression OP_EQ RelationalExpression
  +  | EqualityExpression OP_NE RelationalExpression
  +  ;
  +
  +AndExpression
  +     : EqualityExpression 
  +  | AndExpression AND EqualityExpression
  +  ;
  +
  +ExclusiveOrExpression
  +     : AndExpression 
  +     | ExclusiveOrExpression XOR AndExpression
  +     ;
  +
  +InclusiveOrExpression
  +     : ExclusiveOrExpression 
  +     | InclusiveOrExpression OR ExclusiveOrExpression
  +     ;
  +
  +ConditionalAndExpression
  +     : InclusiveOrExpression 
  +     | ConditionalAndExpression OP_LAND InclusiveOrExpression
  +     ;
  +
  +ConditionalOrExpression
  +     : ConditionalAndExpression 
  +     | ConditionalOrExpression OP_LOR ConditionalAndExpression
  +     ;
  +
  +ConditionalExpression
  +     : ConditionalOrExpression 
  +     | ConditionalOrExpression QM Expression COLON ConditionalExpression
  +     ;
  +
  +AssignmentExpression
  +     : ConditionalExpression 
  +     | UnaryExpression AssignmentOperator AssignmentExpression
  +     ;
  +
  +AssignmentOperator
  +     : EQ
  +     | ASS_OP
  +     ;
  +
  +Expression
  +     : AssignmentExpression
  +  ;
  +
  +ConstantExpression
  +     : ConditionalExpression
  +     ;
  +
  +
  
  
  
  1.2       +178 -178  cocoon-2.1/src/blocks/chaperon/samples/misc/java.css
  
  Index: java.css
  ===================================================================
  RCS file: /home/cvs/cocoon-2.1/src/blocks/chaperon/samples/misc/java.css,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- java.css  9 Mar 2003 00:02:56 -0000       1.1
  +++ java.css  3 May 2003 16:21:29 -0000       1.2
  @@ -1,178 +1,178 @@
  -BODY {
  -     FONT-FAMILY: verdana, arial, sans-serif
  -}
  -
  -a:link { 
  -  color: #1F354D;
  -  FONT-SIZE: 12px;
  -}
  -
  -a:visited { 
  -  color: #1F354D;
  -  FONT-SIZE: 12px;
  -}
  -
  -a:hover { 
  -  color: #FF5A00;
  -  FONT-SIZE: 12px;
  -}
  -
  -a:active { 
  -  color: #FF5A00;
  -  FONT-SIZE: 12px;
  -}
  -
  -TABLE {
  -     FONT-SIZE: 9px
  -}
  -
  -TD.titleText {
  -      BACKGROUND: #eff7ff; PADDING-left: 5px;
  -}
  -
  -TABLE.view {
  -  FONT-SIZE: 12px; 
  -  /*BORDER:#aca9ac 1px solid;*/
  -}
  -
  -TD.headerTitle {
  -  BACKGROUND: #d5e2ee; 
  -  BORDER: #aca9ac 1px solid; 
  -  WIDTH: 100%;
  -}
  -
  -TD.headerLeft {
  -  BACKGROUND: #f6f6f6; 
  -  BORDER-LEFT: #aca9ac 1px solid;
  -  BORDER-BOTTOM: #aca9ac 1px solid;
  -}
  -
  -TD.header {
  -  BACKGROUND: #f6f6f6; 
  -  BORDER-LEFT: #aca9ac 1px solid; 
  -  BORDER-BOTTOM: #aca9ac 1px solid;
  -}
  -TD.headerRight {
  -  BACKGROUND: #f6f6f6; 
  -  BORDER-LEFT: #aca9ac 1px solid; 
  -  BORDER-BOTTOM: #aca9ac 1px solid;
  -  BORDER-RIGHT: #aca9ac 1px solid;
  -  WIDTH: 100%;
  -}
  -
  -TD.itemLeft {
  -  BACKGROUND: #ffffff; 
  -  BORDER-LEFT: #aca9ac 1px solid; 
  -  BORDER-BOTTOM: #aca9ac 1px solid;
  -  vertical-align:top;
  -}
  -
  -TD.item {
  -  BACKGROUND: #ffffff; 
  -  BORDER-LEFT: #aca9ac 1px solid; 
  -  BORDER-BOTTOM: #aca9ac 1px solid;  
  -  vertical-align:top;
  -}
  -
  -TD.itemRight {
  -  BACKGROUND: #ffffff; 
  -  BORDER-LEFT: #aca9ac 1px solid; 
  -  BORDER-BOTTOM: #aca9ac 1px solid; 
  -  BORDER-RIGHT: #aca9ac 1px solid;
  -  WIDTH: 100%;
  -  vertical-align:top;
  -}
  -
  -FONT.current {
  -  padding: 2px; 
  -  font-weight: bold; 
  -  color: #FFFFFF; 
  -  background-color:#00008B;
  -}
  -
  -TABLE.srcView {
  -     FONT-SIZE: 12px; BORDER-LEFT:#dcdcdc 1px solid;BORDER-RIGHT:#dcdcdc 1px 
solid; BORDER-BOTTOM:#dcdcdc 1px solid;
  -}
  -
  -TD.lineCount {
  -  BACKGROUND: #f6f6f6;
  -  BORDER-LEFT: #aca9ac 1px solid;
  -  BORDER-BOTTOM: #aca9ac 1px solid;
  -  BORDER-RIGHT: #aca9ac 1px solid;
  -  PADDING-RIGHT: 3px; 
  -  FONT-SIZE: 12px;
  -}
  -
  -TD.srcLine {
  -  WIDTH: 100%;
  -  BORDER-BOTTOM: #aca9ac 1px solid;
  -  BORDER-RIGHT: #aca9ac 1px solid;
  -}
  -
  -PRE.srcLine {
  -  BACKGROUND: #ffffff; MARGIN-BOTTOM: 0px; FONT-SIZE: 12px;
  -}
  -
  -TD.footer {
  -  BORDER-TOP:#dcdcdc 1px solid;       FONT-SIZE: 9px
  -}
  -
  -/* Token Colours */
  -FONT.CharacerLiteral { color: #FF00FF; }
  -FONT.StringLiteral           { color: #FF00FF; }
  -FONT.SingleLineComment       { color: #008000; }
  -FONT.FormalComment           { color: #008000; }
  -FONT.MultiLineComment        { color: #008000; }
  -FONT.ABSTRACT                { color: #2020BF ; font-weight: normal }
  -FONT.BOOLEAN         { color: #2020BF ; font-weight: normal }
  -FONT.BREAK                   { color: #2020BF ; font-weight: normal }
  -FONT.BYTE                    { color: #2020BF ; font-weight: normal }
  -FONT.CASE                    { color: #2020BF ; font-weight: normal }
  -FONT.CATCH                   { color: #2020BF ; font-weight: normal }
  -FONT.CHAR                    { color: #2020BF ; font-weight: normal }
  -FONT.CLASS                   { color: #2020BF ; font-weight: normal }
  -FONT.CONST                   { color: #2020BF ; font-weight: normal }
  -FONT.CONTINUE                { color: #2020BF ; font-weight: normal }
  -FONT.DEFAULT         { color: #2020BF ; font-weight: normal }
  -FONT.DO                      { color: #2020BF ; font-weight: normal }
  -FONT.DOUBLE          { color: #2020BF ; font-weight: normal }
  -FONT.ELSE                    { color: #2020BF ; font-weight: normal }
  -FONT.EXTENDS         { color: #2020BF ; font-weight: normal }
  -FONT.FALSE                   { color: #2020BF ; font-weight: normal }
  -FONT.FINAL                   { color: #2020BF ; font-weight: normal }
  -FONT.FINALLY         { color: #2020BF ; font-weight: normal }
  -FONT.FLOAT                   { color: #2020BF ; font-weight: normal }
  -FONT.FOR                     { color: #2020BF ; font-weight: normal }
  -FONT.GOTO                    { color: #2020BF ; font-weight: normal }
  -FONT.IF                      { color: #2020BF ; font-weight: normal }
  -FONT.IMPLEMENTS              { color: #2020BF ; font-weight: normal }
  -FONT.IMPORT          { color: #2020BF ; font-weight: normal }
  -FONT.INSTANCEOF              { color: #2020BF ; font-weight: normal }
  -FONT.INT                     { color: #2020BF ; font-weight: normal }
  -FONT.INTERFACE               { color: #2020BF ; font-weight: normal }
  -FONT.LONG                    { color: #2020BF ; font-weight: normal }
  -FONT.NATIVE          { color: #2020BF ; font-weight: normal }
  -FONT.NEW                     { color: #2020BF ; font-weight: normal }
  -FONT.PACKAGE         { color: #2020BF ; font-weight: normal }
  -FONT.PRIVATE         { color: #2020BF ; font-weight: normal }
  -FONT.PROTECTED               { color: #2020BF ; font-weight: normal }
  -FONT.PUBLIC          { color: #2020BF ; font-weight: normal }
  -FONT.RETURN          { color: #2020BF ; font-weight: normal }
  -FONT.SHORT                   { color: #2020BF ; font-weight: normal }
  -FONT.STATIC          { color: #2020BF ; font-weight: normal }
  -FONT.SUPER                   { color: #2020BF ; font-weight: normal }
  -FONT.SWITCH          { color: #2020BF ; font-weight: normal }
  -FONT.SYCHRONIZED             { color: #2020BF ; font-weight: normal }
  -FONT.THIS                    { color: #2020BF ; font-weight: normal }
  -FONT.THROW                   { color: #2020BF ; font-weight: normal }
  -FONT.THROWS          { color: #2020BF ; font-weight: normal }
  -FONT.TRANSIENT               { color: #2020BF ; font-weight: normal }
  -FONT.TRUE                    { color: #2020BF ; font-weight: normal }
  -FONT.TRY                     { color: #2020BF ; font-weight: normal }
  -FONT.VOID                    { color: #2020BF ; font-weight: normal }
  -FONT.VOLATILE                { color: #2020BF ; font-weight: normal }
  -FONT.WHILE                   { color: #2020BF ; font-weight: normal }
  -FONT.StrictFP                        { color: #2020BF ; font-weight: normal }
  -FONT.LITERAL { color: #b27b8c }
  -FONT.IDENTIFIER { color: #000000 }
  -
  +BODY {
  +     FONT-FAMILY: verdana, arial, sans-serif
  +}
  +
  +a:link { 
  +  color: #1F354D;
  +  FONT-SIZE: 12px;
  +}
  +
  +a:visited { 
  +  color: #1F354D;
  +  FONT-SIZE: 12px;
  +}
  +
  +a:hover { 
  +  color: #FF5A00;
  +  FONT-SIZE: 12px;
  +}
  +
  +a:active { 
  +  color: #FF5A00;
  +  FONT-SIZE: 12px;
  +}
  +
  +TABLE {
  +     FONT-SIZE: 9px
  +}
  +
  +TD.titleText {
  +      BACKGROUND: #eff7ff; PADDING-left: 5px;
  +}
  +
  +TABLE.view {
  +  FONT-SIZE: 12px; 
  +  /*BORDER:#aca9ac 1px solid;*/
  +}
  +
  +TD.headerTitle {
  +  BACKGROUND: #d5e2ee; 
  +  BORDER: #aca9ac 1px solid; 
  +  WIDTH: 100%;
  +}
  +
  +TD.headerLeft {
  +  BACKGROUND: #f6f6f6; 
  +  BORDER-LEFT: #aca9ac 1px solid;
  +  BORDER-BOTTOM: #aca9ac 1px solid;
  +}
  +
  +TD.header {
  +  BACKGROUND: #f6f6f6; 
  +  BORDER-LEFT: #aca9ac 1px solid; 
  +  BORDER-BOTTOM: #aca9ac 1px solid;
  +}
  +TD.headerRight {
  +  BACKGROUND: #f6f6f6; 
  +  BORDER-LEFT: #aca9ac 1px solid; 
  +  BORDER-BOTTOM: #aca9ac 1px solid;
  +  BORDER-RIGHT: #aca9ac 1px solid;
  +  WIDTH: 100%;
  +}
  +
  +TD.itemLeft {
  +  BACKGROUND: #ffffff; 
  +  BORDER-LEFT: #aca9ac 1px solid; 
  +  BORDER-BOTTOM: #aca9ac 1px solid;
  +  vertical-align:top;
  +}
  +
  +TD.item {
  +  BACKGROUND: #ffffff; 
  +  BORDER-LEFT: #aca9ac 1px solid; 
  +  BORDER-BOTTOM: #aca9ac 1px solid;  
  +  vertical-align:top;
  +}
  +
  +TD.itemRight {
  +  BACKGROUND: #ffffff; 
  +  BORDER-LEFT: #aca9ac 1px solid; 
  +  BORDER-BOTTOM: #aca9ac 1px solid; 
  +  BORDER-RIGHT: #aca9ac 1px solid;
  +  WIDTH: 100%;
  +  vertical-align:top;
  +}
  +
  +FONT.current {
  +  padding: 2px; 
  +  font-weight: bold; 
  +  color: #FFFFFF; 
  +  background-color:#00008B;
  +}
  +
  +TABLE.srcView {
  +     FONT-SIZE: 12px; BORDER-LEFT:#dcdcdc 1px solid;BORDER-RIGHT:#dcdcdc 1px 
solid; BORDER-BOTTOM:#dcdcdc 1px solid;
  +}
  +
  +TD.lineCount {
  +  BACKGROUND: #f6f6f6;
  +  BORDER-LEFT: #aca9ac 1px solid;
  +  BORDER-BOTTOM: #aca9ac 1px solid;
  +  BORDER-RIGHT: #aca9ac 1px solid;
  +  PADDING-RIGHT: 3px; 
  +  FONT-SIZE: 12px;
  +}
  +
  +TD.srcLine {
  +  WIDTH: 100%;
  +  BORDER-BOTTOM: #aca9ac 1px solid;
  +  BORDER-RIGHT: #aca9ac 1px solid;
  +}
  +
  +PRE.srcLine {
  +  BACKGROUND: #ffffff; MARGIN-BOTTOM: 0px; FONT-SIZE: 12px;
  +}
  +
  +TD.footer {
  +  BORDER-TOP:#dcdcdc 1px solid;       FONT-SIZE: 9px
  +}
  +
  +/* Token Colours */
  +FONT.CharacerLiteral { color: #FF00FF; }
  +FONT.StringLiteral           { color: #FF00FF; }
  +FONT.SingleLineComment       { color: #008000; }
  +FONT.FormalComment           { color: #008000; }
  +FONT.MultiLineComment        { color: #008000; }
  +FONT.ABSTRACT                { color: #2020BF ; font-weight: normal }
  +FONT.BOOLEAN         { color: #2020BF ; font-weight: normal }
  +FONT.BREAK                   { color: #2020BF ; font-weight: normal }
  +FONT.BYTE                    { color: #2020BF ; font-weight: normal }
  +FONT.CASE                    { color: #2020BF ; font-weight: normal }
  +FONT.CATCH                   { color: #2020BF ; font-weight: normal }
  +FONT.CHAR                    { color: #2020BF ; font-weight: normal }
  +FONT.CLASS                   { color: #2020BF ; font-weight: normal }
  +FONT.CONST                   { color: #2020BF ; font-weight: normal }
  +FONT.CONTINUE                { color: #2020BF ; font-weight: normal }
  +FONT.DEFAULT         { color: #2020BF ; font-weight: normal }
  +FONT.DO                      { color: #2020BF ; font-weight: normal }
  +FONT.DOUBLE          { color: #2020BF ; font-weight: normal }
  +FONT.ELSE                    { color: #2020BF ; font-weight: normal }
  +FONT.EXTENDS         { color: #2020BF ; font-weight: normal }
  +FONT.FALSE                   { color: #2020BF ; font-weight: normal }
  +FONT.FINAL                   { color: #2020BF ; font-weight: normal }
  +FONT.FINALLY         { color: #2020BF ; font-weight: normal }
  +FONT.FLOAT                   { color: #2020BF ; font-weight: normal }
  +FONT.FOR                     { color: #2020BF ; font-weight: normal }
  +FONT.GOTO                    { color: #2020BF ; font-weight: normal }
  +FONT.IF                      { color: #2020BF ; font-weight: normal }
  +FONT.IMPLEMENTS              { color: #2020BF ; font-weight: normal }
  +FONT.IMPORT          { color: #2020BF ; font-weight: normal }
  +FONT.INSTANCEOF              { color: #2020BF ; font-weight: normal }
  +FONT.INT                     { color: #2020BF ; font-weight: normal }
  +FONT.INTERFACE               { color: #2020BF ; font-weight: normal }
  +FONT.LONG                    { color: #2020BF ; font-weight: normal }
  +FONT.NATIVE          { color: #2020BF ; font-weight: normal }
  +FONT.NEW                     { color: #2020BF ; font-weight: normal }
  +FONT.PACKAGE         { color: #2020BF ; font-weight: normal }
  +FONT.PRIVATE         { color: #2020BF ; font-weight: normal }
  +FONT.PROTECTED               { color: #2020BF ; font-weight: normal }
  +FONT.PUBLIC          { color: #2020BF ; font-weight: normal }
  +FONT.RETURN          { color: #2020BF ; font-weight: normal }
  +FONT.SHORT                   { color: #2020BF ; font-weight: normal }
  +FONT.STATIC          { color: #2020BF ; font-weight: normal }
  +FONT.SUPER                   { color: #2020BF ; font-weight: normal }
  +FONT.SWITCH          { color: #2020BF ; font-weight: normal }
  +FONT.SYCHRONIZED             { color: #2020BF ; font-weight: normal }
  +FONT.THIS                    { color: #2020BF ; font-weight: normal }
  +FONT.THROW                   { color: #2020BF ; font-weight: normal }
  +FONT.THROWS          { color: #2020BF ; font-weight: normal }
  +FONT.TRANSIENT               { color: #2020BF ; font-weight: normal }
  +FONT.TRUE                    { color: #2020BF ; font-weight: normal }
  +FONT.TRY                     { color: #2020BF ; font-weight: normal }
  +FONT.VOID                    { color: #2020BF ; font-weight: normal }
  +FONT.VOLATILE                { color: #2020BF ; font-weight: normal }
  +FONT.WHILE                   { color: #2020BF ; font-weight: normal }
  +FONT.StrictFP                        { color: #2020BF ; font-weight: normal }
  +FONT.LITERAL { color: #b27b8c }
  +FONT.IDENTIFIER { color: #000000 }
  +
  
  
  

Reply via email to