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 }
+