mirror of
https://github.com/openssl/openssl.git
synced 2024-12-09 05:51:54 +08:00
1bdbdaffdc
Properties are a sequence of comma separated name=value pairs. A name without a corresponding value is assumed to be a Boolean and have the true value 'yes'. Values are either strings or numbers. Strings can be quoted either _"_ or _'_ or unquoted (with restrictions). There are no escape characters inside strings. Number are either decimal digits or '0x' followed by hexidecimal digits. Numbers are represented internally as signed sixty four bit values. Queries on properties are a sequence comma separated conditional tests. These take the form of name=value (equality test), name!=value (inequality test) or name (Boolean test for truth). Queries can be parsed, compared against a definition or merged pairwise. Reviewed-by: Matt Caswell <matt@openssl.org> Reviewed-by: Tim Hudson <tjh@openssl.org> (Merged from https://github.com/openssl/openssl/pull/8224)
18 lines
608 B
EBNF
18 lines
608 B
EBNF
(* https://bottlecaps.de/rr/ui *)
|
|
|
|
Definition
|
|
::= PropertyName ( '=' Value )? ( ',' PropertyName ( '=' Value )? )*
|
|
Query ::= ( '-'? PropertyName | PropertyName ( '=' | '!=' ) Value )
|
|
( ',' ( '-'? 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]+
|
|
PropertyName
|
|
::= [A-Z] [A-Z0-9_]* ( '.' [A-Z] [A-Z0-9_]* )*
|