Definition
::= PropertyName ( '=' Value )? ( ',' PropertyName ( '=' Value )? )*
-Query ::= ( '-'? PropertyName | PropertyName ( '=' | '!=' ) Value )
- ( ',' ( '-'? PropertyName | PropertyName ( '=' | '!=' ) Value ) )*
+Query ::= PropertyQuery ( ',' PropertyQuery )*
+PropertyQuery ::= '-'? PropertyName
+ | '?' ( PropertyName (( '=' | '!=' ) Value)?)
Value ::= NumberLiteral
| StringLiteral
StringLiteral ::= QuotedString | UnquotedString
QuotedString ::= '"' [^"]* '"'
- | "'" [^']* "'"
+ | "'" [^']* "'"
UnquotedString ::= [^{space},]+
NumberLiteral
::= '0' ( [0-7]* | 'x' [0-9A-Fa-f]+ )
- | '-'? [1-9] [0-9]+
+ | '-'? [1-9] [0-9]+
PropertyName
::= [A-Z] [A-Z0-9_]* ( '.' [A-Z] [A-Z0-9_]* )*