--- /dev/null
+testcase {
+ 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