checkpoint
[sbp.git] / tests / meta.g
index 13a2c4b..79e3159 100644 (file)
@@ -1,4 +1,7 @@
 s         ::=  Grammar ws                  => "gram"
+w       !::= " "
+           | "\n"
+           | "\r"
 ws       !::=  w** | w** "//" (~[\n]*) "\n" ws
 wp       !::=  w++
 Grammar   ::=  r +/ ws                        => "grammar"
@@ -8,9 +11,9 @@ r         ::=  word  ^"::=" alternatives /ws
 
 alternatives  ::=  (Conjuncts +/ (ws "|" ws)) +/ (ws ">" ws)
 
-Conjuncts     ::=  Sequence
-                |  Sequence ^"&"  e*/ws   /ws
-                |  Sequence ^"&~" e*/ws   /ws
+Conjuncts  ::=  Sequence
+             |  Sequence ^"&"  e*/ws   /ws
+             |  Sequence ^"&~" e*/ws   /ws
 
 ps         ::= e*/ws                              => "ps"
              | (e+/ws ws)? "^" Quoted (ws e+/ws)? => "ps2"
@@ -41,15 +44,13 @@ e        ::=  word                          => "nonTerminal"
            |  (e ^"++/" e /ws > e ^"+/" e /ws)
            |  (e ^"**"    /ws > e ^"*"    /ws)
            |  (e ^"**/" e /ws > e ^"*/" e /ws)
+           |  ^"!" e                    /ws
            |  e ^"?"                    /ws
 
            |     "(" word         ^")"  /ws
            >    ^"(" alternatives  ")"  /ws
            |    ^"~" e
 
-w       !::= " "
-           | "\n"
-           | "\r"
 word     ::= [a-zA-Z0-9_]++
 Quoted   ::= "\"" ((~[\"\\] | escaped)+) "\""
            | "\"\"" => ""