Fix a typo in the property grammar that creates an ambiguous parse.

Reviewed-by: Tim Hudson <tjh@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/9065)
This commit is contained in:
Pauli 2019-06-03 08:06:15 +10:00
parent aad07a2f26
commit 915bf45ee3
3 changed files with 22 additions and 22 deletions

View file

@ -3,7 +3,7 @@
Definition Definition
::= PropertyName ( '=' Value )? ( ',' PropertyName ( '=' Value )? )* ::= PropertyName ( '=' Value )? ( ',' PropertyName ( '=' Value )? )*
Query ::= PropertyQuery ( ',' PropertyQuery )* Query ::= PropertyQuery ( ',' PropertyQuery )*
PropertyQuery ::= '-'? PropertyName PropertyQuery ::= '-' PropertyName
| '?'? ( PropertyName (( '=' | '!=' ) Value)?) | '?'? ( PropertyName (( '=' | '!=' ) Value)?)
Value ::= NumberLiteral Value ::= NumberLiteral
| StringLiteral | StringLiteral

View file

@ -302,7 +302,7 @@
<text class="terminal" x="59" y="21">,</text> <text class="terminal" x="59" y="21">,</text>
<svg:path xmlns:svg="http://www.w3.org/2000/svg" class="line" d="m17 61 h2 m20 0 h10 m112 0 h10 m-152 0 l20 0 m-1 0 q-9 0 -9 -10 l0 -24 q0 -10 10 -10 m132 44 l20 0 m-20 0 q10 0 10 -10 l0 -24 q0 -10 -10 -10 m-132 0 h10 m24 0 h10 m0 0 h88 m23 44 h-3"/> <svg:path xmlns:svg="http://www.w3.org/2000/svg" class="line" d="m17 61 h2 m20 0 h10 m112 0 h10 m-152 0 l20 0 m-1 0 q-9 0 -9 -10 l0 -24 q0 -10 10 -10 m132 44 l20 0 m-20 0 q10 0 10 -10 l0 -24 q0 -10 -10 -10 m-132 0 h10 m24 0 h10 m0 0 h88 m23 44 h-3"/>
<polygon points="201 61 209 57 209 65"/> <polygon points="201 61 209 57 209 65"/>
<polygon points="201 61 193 57 193 65"/></svg><xhtml:p xmlns:xhtml="http://www.w3.org/1999/xhtml">no references</xhtml:p><xhtml:br xmlns:xhtml="http://www.w3.org/1999/xhtml" /><xhtml:p xmlns:xhtml="http://www.w3.org/1999/xhtml" style="font-size: 14px; font-weight:bold"><xhtml:a name="PropertyQuery">PropertyQuery:</xhtml:a></xhtml:p><svg xmlns="http://www.w3.org/2000/svg" width="505" height="189"> <polygon points="201 61 193 57 193 65"/></svg><xhtml:p xmlns:xhtml="http://www.w3.org/1999/xhtml">no references</xhtml:p><xhtml:br xmlns:xhtml="http://www.w3.org/1999/xhtml" /><xhtml:p xmlns:xhtml="http://www.w3.org/1999/xhtml" style="font-size: 14px; font-weight:bold"><xhtml:a name="PropertyQuery">PropertyQuery:</xhtml:a></xhtml:p><svg xmlns="http://www.w3.org/2000/svg" width="505" height="157">
<defs> <defs>
<style type="text/css"> <style type="text/css">
@namespace "http://www.w3.org/2000/svg"; @namespace "http://www.w3.org/2000/svg";
@ -334,25 +334,25 @@
</defs> </defs>
<polygon points="9 17 1 13 1 21"/> <polygon points="9 17 1 13 1 21"/>
<polygon points="17 17 9 13 9 21"/> <polygon points="17 17 9 13 9 21"/>
<rect x="71" y="35" width="26" height="32" rx="10"/> <rect x="51" y="3" width="26" height="32" rx="10"/>
<rect x="69" y="33" width="26" height="32" class="terminal" rx="10"/> <rect x="49" y="1" width="26" height="32" class="terminal" rx="10"/>
<text class="terminal" x="79" y="53">-</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#PropertyName" xlink:title="PropertyName"> <text class="terminal" x="59" y="21">-</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#PropertyName" xlink:title="PropertyName">
<rect x="137" y="3" width="110" height="32"/> <rect x="97" y="3" width="110" height="32"/>
<rect x="135" y="1" width="110" height="32" class="nonterminal"/> <rect x="95" y="1" width="110" height="32" class="nonterminal"/>
<text class="nonterminal" x="145" y="21">PropertyName</text></a><rect x="71" y="111" width="26" height="32" rx="10"/> <text class="nonterminal" x="105" y="21">PropertyName</text></a><rect x="71" y="79" width="26" height="32" rx="10"/>
<rect x="69" y="109" width="26" height="32" class="terminal" rx="10"/> <rect x="69" y="77" width="26" height="32" class="terminal" rx="10"/>
<text class="terminal" x="79" y="129">?</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#PropertyName" xlink:title="PropertyName"> <text class="terminal" x="79" y="97">?</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#PropertyName" xlink:title="PropertyName">
<rect x="137" y="79" width="110" height="32"/> <rect x="137" y="47" width="110" height="32"/>
<rect x="135" y="77" width="110" height="32" class="nonterminal"/> <rect x="135" y="45" width="110" height="32" class="nonterminal"/>
<text class="nonterminal" x="145" y="97">PropertyName</text></a><rect x="307" y="111" width="30" height="32" rx="10"/> <text class="nonterminal" x="145" y="65">PropertyName</text></a><rect x="307" y="79" width="30" height="32" rx="10"/>
<rect x="305" y="109" width="30" height="32" class="terminal" rx="10"/> <rect x="305" y="77" width="30" height="32" class="terminal" rx="10"/>
<text class="terminal" x="315" y="129">=</text> <text class="terminal" x="315" y="97">=</text>
<rect x="307" y="155" width="34" height="32" rx="10"/> <rect x="307" y="123" width="34" height="32" rx="10"/>
<rect x="305" y="153" width="34" height="32" class="terminal" rx="10"/> <rect x="305" y="121" width="34" height="32" class="terminal" rx="10"/>
<text class="terminal" x="315" y="173">!=</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#Value" xlink:title="Value"> <text class="terminal" x="315" y="141">!=</text><a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#Value" xlink:title="Value">
<rect x="381" y="111" width="56" height="32"/> <rect x="381" y="79" width="56" height="32"/>
<rect x="379" y="109" width="56" height="32" class="nonterminal"/> <rect x="379" y="77" width="56" height="32" class="nonterminal"/>
<text class="nonterminal" x="389" y="129">Value</text></a><svg:path xmlns:svg="http://www.w3.org/2000/svg" class="line" d="m17 17 h2 m40 0 h10 m0 0 h36 m-66 0 h20 m46 0 h20 m-86 0 q10 0 10 10 m66 0 q0 -10 10 -10 m-76 10 v12 m66 0 v-12 m-66 12 q0 10 10 10 m46 0 q10 0 10 -10 m-56 10 h10 m26 0 h10 m20 -32 h10 m110 0 h10 m0 0 h210 m-446 0 h20 m426 0 h20 m-466 0 q10 0 10 10 m446 0 q0 -10 10 -10 m-456 10 v56 m446 0 v-56 m-446 56 q0 10 10 10 m426 0 q10 0 10 -10 m-416 10 h10 m0 0 h36 m-66 0 h20 m46 0 h20 m-86 0 q10 0 10 10 m66 0 q0 -10 10 -10 m-76 10 v12 m66 0 v-12 m-66 12 q0 10 10 10 m46 0 q10 0 10 -10 m-56 10 h10 m26 0 h10 m20 -32 h10 m110 0 h10 m20 0 h10 m0 0 h160 m-190 0 h20 m170 0 h20 m-210 0 q10 0 10 10 m190 0 q0 -10 10 -10 m-200 10 v12 m190 0 v-12 m-190 12 q0 10 10 10 m170 0 q10 0 10 -10 m-160 10 h10 m30 0 h10 m0 0 h4 m-74 0 h20 m54 0 h20 m-94 0 q10 0 10 10 m74 0 q0 -10 10 -10 m-84 10 v24 m74 0 v-24 m-74 24 q0 10 10 10 m54 0 q10 0 10 -10 m-64 10 h10 m34 0 h10 m20 -44 h10 m56 0 h10 m43 -108 h-3"/> <text class="nonterminal" x="389" y="97">Value</text></a><svg:path xmlns:svg="http://www.w3.org/2000/svg" class="line" d="m17 17 h2 m20 0 h10 m26 0 h10 m0 0 h10 m110 0 h10 m0 0 h250 m-446 0 h20 m426 0 h20 m-466 0 q10 0 10 10 m446 0 q0 -10 10 -10 m-456 10 v24 m446 0 v-24 m-446 24 q0 10 10 10 m426 0 q10 0 10 -10 m-416 10 h10 m0 0 h36 m-66 0 h20 m46 0 h20 m-86 0 q10 0 10 10 m66 0 q0 -10 10 -10 m-76 10 v12 m66 0 v-12 m-66 12 q0 10 10 10 m46 0 q10 0 10 -10 m-56 10 h10 m26 0 h10 m20 -32 h10 m110 0 h10 m20 0 h10 m0 0 h160 m-190 0 h20 m170 0 h20 m-210 0 q10 0 10 10 m190 0 q0 -10 10 -10 m-200 10 v12 m190 0 v-12 m-190 12 q0 10 10 10 m170 0 q10 0 10 -10 m-160 10 h10 m30 0 h10 m0 0 h4 m-74 0 h20 m54 0 h20 m-94 0 q10 0 10 10 m74 0 q0 -10 10 -10 m-84 10 v24 m74 0 v-24 m-74 24 q0 10 10 10 m54 0 q10 0 10 -10 m-64 10 h10 m34 0 h10 m20 -44 h10 m56 0 h10 m43 -76 h-3"/>
<polygon points="495 17 503 13 503 21"/> <polygon points="495 17 503 13 503 21"/>
<polygon points="495 17 487 13 487 21"/></svg><xhtml:p xmlns:xhtml="http://www.w3.org/1999/xhtml">referenced by: <polygon points="495 17 487 13 487 21"/></svg><xhtml:p xmlns:xhtml="http://www.w3.org/1999/xhtml">referenced by:
<xhtml:ul> <xhtml:ul>

View file

@ -94,7 +94,7 @@ The lexical syntax in EBNF is given by:
Definition ::= PropertyName ( '=' Value )? Definition ::= PropertyName ( '=' Value )?
( ',' PropertyName ( '=' Value )? )* ( ',' PropertyName ( '=' Value )? )*
Query ::= PropertyQuery ( ',' PropertyQuery )* Query ::= PropertyQuery ( ',' PropertyQuery )*
PropertyQuery ::= '-'? PropertyName PropertyQuery ::= '-' PropertyName
| '?'? ( PropertyName (( '=' | '!=' ) Value)?) | '?'? ( PropertyName (( '=' | '!=' ) Value)?)
Value ::= NumberLiteral | StringLiteral Value ::= NumberLiteral | StringLiteral
StringLiteral ::= QuotedString | UnquotedString StringLiteral ::= QuotedString | UnquotedString