<span class="hljs-attribute"><syntax></span> ::= <rule> | <rule> <syntax>
<span class="hljs-attribute"><rule></span> ::= <opt-whitespace> <span class="hljs-string">"<"</span> <rule-name> <span class="hljs-string">">"</span> <opt-whitespace> <span class="hljs-string">"::="</span> <opt-whitespace> <expression> <line-end>
<span class="hljs-attribute"><opt-whitespace></span> ::= <span class="hljs-string">" "</span> <opt-whitespace> | <span class="hljs-string">""</span>
<span class="hljs-attribute"><expression></span> ::= <list> | <list> <opt-whitespace> <span class="hljs-string">"|"</span> <opt-whitespace> <expression>
<span class="hljs-attribute"><line-end></span> ::= <opt-whitespace> <EOL> | <line-end> <line-end>
<span class="hljs-attribute"><list></span> ::= <term> | <term> <opt-whitespace> <list>
<span class="hljs-attribute"><term></span> ::= <literal> | <span class="hljs-string">"<"</span> <rule-name> <span class="hljs-string">">"</span>
<span class="hljs-attribute"><literal></span> ::= <span class="hljs-string">'"'</span> <text> <span class="hljs-string">'"'</span> | <span class="hljs-string">"'"</span> <text> <span class="hljs-string">"'"</span>