...
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 "DESC" SP qdstring ] ; description
SP "FQCN" SP qdstring ; fully qualified class name
[ SP "BYTECODE" 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...