69 lines
1.5 KiB
Plaintext
69 lines
1.5 KiB
Plaintext
|
|
Grammar for Path
|
|
|
|
Start: ServerSpec NameSpaceSpecAbs ':' ObjectSpec
|
|
| ServerSpec ':' ObjectSpec
|
|
| NameSpaceSpecAbs ':' ObjectSpec
|
|
| NameSpaceSpecRel ':' ObjectSpec
|
|
| ObjectSpec
|
|
|
|
ServerSpec: '\' '\' ServerName ;
|
|
|
|
ServerName: TOKEN_ID
|
|
| '.' ;
|
|
|
|
NameSpaceSpecAbs: '\' NameSpaceName NameSpaceSpecAbs
|
|
| '\' NameSpaceName ;
|
|
|
|
NameSpaceSpecRel: NameSpaceName NameSpaceSpecAbs
|
|
| NameSpaceName ;
|
|
|
|
NameSpaceName: TOKEN_ID
|
|
| '.' ;
|
|
|
|
ObjectSpec: OidReference
|
|
| KeyReference ;
|
|
|
|
OidReference: OID_ID ;
|
|
|
|
KeyReference: ClassReference
|
|
| ClassReference '=' "@"
|
|
| ClassReference '=' PropertyValue
|
|
| ClassReference '.' KeyPropertySpec ;
|
|
|
|
ClassReference: TOKEN_ID ;
|
|
|
|
PropertyReference: TOKEN_ID ;
|
|
|
|
KeyPropertySpec: KeyPropertyPair ',' KeyPropertySpec
|
|
| KeyPropertyPair ;
|
|
|
|
KeyPropertyPair: PropertyReference '=' PropertyValue ;
|
|
|
|
ArraySpec: '{' PropertyAtomicValueList '}' ;
|
|
|
|
PropertyAtomicValueList: PropertyAtomicValue ',' PropertyAtomicValueList
|
|
| PropertyAtomicValue ;
|
|
|
|
PropertyValue: PropertyAtomicValue
|
|
| ArraySpec ;
|
|
|
|
PropertyAtomicValue: STRING_ID
|
|
| TOKEN_ID
|
|
| INTEGER_ID ;
|
|
|
|
|
|
Lexical Regular Expressions
|
|
|
|
|
|
STRING_ID = \".*\" ;
|
|
|
|
OID_ID = \{ ([0-9]|[a-f]|[A-F]){8}\-([0-9]|[a-f]|[A-F]){4}\-([0-9]|[a-f]|[A-F]){4}\-([0-9]|[a-f]|[A-F]){4}\-([0-9]|[a-f]|[A-F]){12} \} ;
|
|
|
|
INTEGER_ID = 0x([0-9]|[a-f]|[A-F])+
|
|
|[1-9]( [0-9] )*
|
|
|0([0-7])+ ;
|
|
|
|
TOKEN_ID = ([a-z]|[A-Z])([a-z]|[A-Z]|_|[0-9])* ;
|
|
|