Fix a typo in the property grammar that creates an ambiguous parse.
authorPauli <paul.dale@oracle.com>
Sun, 2 Jun 2019 22:06:15 +0000 (08:06 +1000)
committerPauli <paul.dale@oracle.com>
Sun, 2 Jun 2019 22:30:49 +0000 (08:30 +1000)
Reviewed-by: Tim Hudson <tjh@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/9065)

crypto/property/properties.ebnf
crypto/property/properties.xhtml
doc/man7/property.pod

index 62e4f77..a55198b 100644 (file)
@@ -3,7 +3,7 @@
 Definition
       ::= PropertyName ( '=' Value )? ( ',' PropertyName ( '=' Value )? )*
 Query ::= PropertyQuery ( ',' PropertyQuery )*
-PropertyQuery ::= '-'? PropertyName
+PropertyQuery ::= '-' PropertyName
         | '?'? ( PropertyName (( '=' | '!=' ) Value)?)
 Value    ::= NumberLiteral
         | StringLiteral
index 0a613ef..d3a6874 100755 (executable)
          <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"/>
          <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>
             <style type="text/css">
     @namespace "http://www.w3.org/2000/svg";
          </defs>
          <polygon points="9 17 1 13 1 21"/>
          <polygon points="17 17 9 13 9 21"/>
-         <rect x="71" y="35" width="26" height="32" rx="10"/>
-         <rect x="69" y="33" 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">
-            <rect x="137" y="3" width="110" height="32"/>
-            <rect x="135" 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"/>
-         <rect x="69" y="109" 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">
-            <rect x="137" y="79" width="110" height="32"/>
-            <rect x="135" y="77" 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"/>
-         <rect x="305" y="109" width="30" height="32" class="terminal" rx="10"/>
-         <text class="terminal" x="315" y="129">=</text>
-         <rect x="307" y="155" width="34" height="32" rx="10"/>
-         <rect x="305" y="153" 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">
-            <rect x="381" y="111" width="56" height="32"/>
-            <rect x="379" y="109" 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"/>
+         <rect x="51" y="3" width="26" height="32" rx="10"/>
+         <rect x="49" y="1" width="26" height="32" class="terminal" rx="10"/>
+         <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="97" y="3" width="110" height="32"/>
+            <rect x="95" y="1" width="110" height="32" class="nonterminal"/>
+            <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="77" width="26" height="32" class="terminal" rx="10"/>
+         <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="47" width="110" height="32"/>
+            <rect x="135" y="45" width="110" height="32" class="nonterminal"/>
+            <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="77" width="30" height="32" class="terminal" rx="10"/>
+         <text class="terminal" x="315" y="97">=</text>
+         <rect x="307" y="123" width="34" height="32" rx="10"/>
+         <rect x="305" y="121" width="34" height="32" class="terminal" rx="10"/>
+         <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="79" width="56" height="32"/>
+            <rect x="379" y="77" width="56" height="32" class="nonterminal"/>
+            <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 487 13 487 21"/></svg><xhtml:p xmlns:xhtml="http://www.w3.org/1999/xhtml">referenced by:
          <xhtml:ul>
index 1f8ee54..88f5400 100644 (file)
@@ -94,7 +94,7 @@ The lexical syntax in EBNF is given by:
  Definition     ::= PropertyName ( '=' Value )? 
                         ( ',' PropertyName ( '=' Value )? )*
  Query          ::= PropertyQuery ( ',' PropertyQuery )*
- PropertyQuery  ::= '-'? PropertyName
+ PropertyQuery  ::= '-' PropertyName
                   | '?'? ( PropertyName (( '=' | '!=' ) Value)?)
  Value          ::= NumberLiteral | StringLiteral
  StringLiteral  ::= QuotedString | UnquotedString