cocoon-cvs mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From vgritse...@apache.org
Subject cvs commit: cocoon-2.1/src/blocks/chaperon/samples/misc java.css
Date Sat, 03 May 2003 16:21:30 GMT
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.
  - *
  - * 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
  - *
  - *------------------------------------------------------------------
  - */
  -
  -%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.
  + *
  + * 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
  + *
  + *------------------------------------------------------------------
  + */
  +
  +%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 }
  +
  
  
  

Mime
View raw message