| <?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><SubtreeSpecification> ::= '{' <spse> <base-e> <chopSpecification> <spse> <refinement-e> '}' |
| |
| <base-e> ::= |
| «base» <sps> <localName> <spse> ',' <spse> | |
| e |
| |
| <chopSpecification> ::= «chopSpecification» '{' <spse> <chopSpecification-in> '}' |
| |
| <chopSpecification-in> ::= |
| «specificExclusions» <spse> <chop-set-of-choice> <spse> <specificExclusions-follower> | |
| «minimum» <sps> <number> <spse> <minimum-follower> | |
| «maximum» <sps> <number> <spse> |
| |
| <specificExclusions-follower> ::= |
| ',' <spse> «minimum» <sps> <number> <spse> <minimum-follower> | |
| ',' <spse> «maximum» <sps> <number> <spse> |
| |
| <minimum-follower> ::= ',' <spse> «maximum» <sps> <number> <spse> |
| |
| <refinement-e> ::= |
| «specificationFilter» <sps> <refinement> | |
| e |
| |
| <refinement> ::= |
| «item» <spse> ':' <spse> OID <spse> | |
| «and» <spse> ':' <spse> <set-of-refinement> | |
| «or» <spse> ':' <spse> <set-of-refinement> | |
| «not» <spse> ':' <spse> <refinement> | |
| |
| <set-of-refinement> ::= '{' <spse> <refinement> <refinements> '}' <spse> |
| |
| <refinements> ::= |
| ',' <spse> <refinement> | |
| e |
| |
| <localName> ::= '"' DN '"' |
| </source> |
| </section> |
| </body> |
| </document> |