2025-04-27 07:49:33 -04:00

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])* ;