- input "if (bar!) baz!;";
- output "IfThen:{id:{x:{b x:{a r}}} id:{x:{b x:{a z}}}}";
-
- s = Expr ";"
- Expr = IfThen
- | IfThenElse
- | id:: id "!"
- id = [a-z] | x:: [a-z] id
- IfThen = IfThen::
- "if" "(" Expr ")"
- Expr
- /ws
- IfThenElse = IfThenElse::
- "if" "(" Expr ")"
- NotIfThenExpr
- "else"
- Expr
- /ws
- NotIfThenExpr = (Expr & [a-z]+)
- SpaceIfThen = (~[])*// !IfThen
- ws = [\n ]**
-}
\ No newline at end of file
+ input "a c";
+ s = first:: A WSA B? WSB C
+ A = "a"
+ B = "b"
+ C = "c"
+ WSA = WSA:: " "**
+ WSB = () -> ~" "
+ | WSB:: " "++
+}
+
+//testcase {
+// input "aaaaaXaaaa";
+// output "";
+// s = ManyA &~ EndsWithZ
+// EndsWithZ = Anything "Z"
+// ManyA = () | "a" ManyA
+// Anything = () | ("a" | "X" | "Z") Anything
+//}
+
+testcase {
+ input "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa";
+ output "";
+ s = ManyA
+ ManyA = ()
+ | A ManyA! & ManyAB
+ A = "a"
+ ManyAB = ()
+ | "a" ManyAB
+ | "b" ManyAB
+}
+
+testcase {
+ input "aaaaaaaa";
+ output "";
+ s = As & AAs
+ As = () | As "a"
+ AAs = () | AAs "aa"
+}
+
+