Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

No Format
    ComparatorDescription = LPAREN WSP
          numericoid                           ; object identifier
          [ SP "DESC" SP qdstring ]            ; description
          SP "FQCN" SP fqcn                    ; fully qualified class name
          [ SP "BYTECODE" SP base64 ]          ; optional base64 encoded bytecode
          extensions WSP RPAREN                ; extensions
    
    base64          = *(4base64-char)
    base64-char     = ALPHA / DIGIT / "+" / "/" / "="
    fqcn = fqcnComponent 1*( DOT fqcnComponent )
    fqcnComponent = ???
    where:
        <numericoid> is object identifier assigned to the matchingRule 
            associated with this comparator;
        DESC <qdstring> is a short descriptive string;
        FQCN <fqcn> is the fully qualified class name of the comparator's class;
        BYTECODE <base64> is the base64 encoded byte code for the comparator's class;
        <extensions> describe extensions.

...

No Format
    SyntaxCheckerDescription = LPAREN WSP
          numericId                           ; object identifier
          [ SP &quot;DESC&quot; SP qdstring ] ; description
          SP &quot;FQCN&quot; SP qdstring     ; fully qualified class name
          [ SP &quot;BYTECODE&quot; SP qdstring ] ; optional base64 encoded bytecode
          extensions WSP RPAREN               ; extensions
    where:
        [numericoid] is object identifier assigned to the syntax 
            associated with this syntaxChecker;
        DESC [qdstring] is a short descriptive string;
        FQCN [qdstring] is the fully qualified class name of the syntaxChecker's class;
        BYTECODE [base64] is the base64 encoded byte code for the syntaxChecker's class;
        [extensions] describe extensions.

FQCN Grammar

Here http://www.antlr.org/grammar/1152141644268/java.g I found the Antlr grammar for FQCN:

No Format

packageOrTypeName
	:	Identifier ('.' Identifier)*
	;

Identifier 
    :   Letter (Letter|JavaIDDigit)*
    ;

/**I found this char range in JavaCC's grammar, but Letter and Digit overlap.
   Still works, but...
 */
fragment
Letter
    :  '\u0024' |
       '\u0041'..'\u005a' |
       '\u005f' |
       '\u0061'..'\u007a' |
       '\u00c0'..'\u00d6' |
       '\u00d8'..'\u00f6' |
       '\u00f8'..'\u00ff' |
       '\u0100'..'\u1fff' |
       '\u3040'..'\u318f' |
       '\u3300'..'\u337f' |
       '\u3400'..'\u3d2d' |
       '\u4e00'..'\u9fff' |
       '\uf900'..'\ufaff'
    ;

fragment
JavaIDDigit
    :  '\u0030'..'\u0039' |
       '\u0660'..'\u0669' |
       '\u06f0'..'\u06f9' |
       '\u0966'..'\u096f' |
       '\u09e6'..'\u09ef' |
       '\u0a66'..'\u0a6f' |
       '\u0ae6'..'\u0aef' |
       '\u0b66'..'\u0b6f' |
       '\u0be7'..'\u0bef' |
       '\u0c66'..'\u0c6f' |
       '\u0ce6'..'\u0cef' |
       '\u0d66'..'\u0d6f' |
       '\u0e50'..'\u0e59' |
       '\u0ed0'..'\u0ed9' |
       '\u1040'..'\u1049'
   ;

I modified the char range and removed the overlap in the parser implamentation. Should be checked again...