blob: d74a2ee6c5a255249957de42cbfd02e5fbfd79bf [file] [log] [blame]
<?xml version="1.0" encoding="UTF-8"?>
<document>
<properties>
<author email="elecharny">elecharny</author>
</properties>
<body>
<section heading="h1" name="Subtree Specification LL(1) Grammar">
<p>
Here is the LL(1) grammar used to decode a subtreeSpecification as described
by
<a href="http://www.faqs.org/rfcs/rfc3672.html">RFC 3672</a>
</p>
<source>&lt;SubtreeSpecification&gt; ::= '{' &lt;spse&gt; &lt;base-e&gt; &lt;chopSpecification&gt; &lt;spse&gt; &lt;refinement-e&gt; '}'
&lt;base-e&gt; ::=
«base» &lt;sps&gt; &lt;localName&gt; &lt;spse&gt; ',' &lt;spse&gt; |
e
&lt;chopSpecification&gt; ::= «chopSpecification» '{' &lt;spse&gt; &lt;chopSpecification-in&gt; '}'
&lt;chopSpecification-in&gt; ::=
«specificExclusions» &lt;spse&gt; &lt;chop-set-of-choice&gt; &lt;spse&gt; &lt;specificExclusions-follower&gt; |
«minimum» &lt;sps&gt; &lt;number&gt; &lt;spse&gt; &lt;minimum-follower&gt; |
«maximum» &lt;sps&gt; &lt;number&gt; &lt;spse&gt;
&lt;specificExclusions-follower&gt; ::=
',' &lt;spse&gt; «minimum» &lt;sps&gt; &lt;number&gt; &lt;spse&gt; &lt;minimum-follower&gt; |
',' &lt;spse&gt; «maximum» &lt;sps&gt; &lt;number&gt; &lt;spse&gt;
&lt;minimum-follower&gt; ::= ',' &lt;spse&gt; «maximum» &lt;sps&gt; &lt;number&gt; &lt;spse&gt;
&lt;refinement-e&gt; ::=
«specificationFilter» &lt;sps&gt; &lt;refinement&gt; |
e
&lt;refinement&gt; ::=
«item» &lt;spse&gt; ':' &lt;spse&gt; OID &lt;spse&gt; |
«and» &lt;spse&gt; ':' &lt;spse&gt; &lt;set-of-refinement&gt; |
«or» &lt;spse&gt; ':' &lt;spse&gt; &lt;set-of-refinement&gt; |
«not» &lt;spse&gt; ':' &lt;spse&gt; &lt;refinement&gt; |
&lt;set-of-refinement&gt; ::= '{' &lt;spse&gt; &lt;refinement&gt; &lt;refinements&gt; '}' &lt;spse&gt;
&lt;refinements&gt; ::=
',' &lt;spse&gt; &lt;refinement&gt; |
e
&lt;localName&gt; ::= '"' DN '"'
</source>
</section>
</body>
</document>