aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.gitignore1
-rw-r--r--tests/27-left-recursion.in1
-rw-r--r--tests/27-left-recursion.out1
-rw-r--r--tests/27-left-recursion.sh2
-rw-r--r--tests/28-left-recursion2.in3
-rw-r--r--tests/28-left-recursion2.out3
-rw-r--r--tests/28-left-recursion2.sh2
7 files changed, 13 insertions, 0 deletions
diff --git a/.gitignore b/.gitignore
index 6b8f9d0..004ac2d 100644
--- a/.gitignore
+++ b/.gitignore
@@ -4,3 +4,4 @@ tags
bp
.*
!.gitignore
+/Lua/builtins.h
diff --git a/tests/27-left-recursion.in b/tests/27-left-recursion.in
new file mode 100644
index 0000000..1aa84aa
--- /dev/null
+++ b/tests/27-left-recursion.in
@@ -0,0 +1 @@
+xyyyyyy
diff --git a/tests/27-left-recursion.out b/tests/27-left-recursion.out
new file mode 100644
index 0000000..ae7e257
--- /dev/null
+++ b/tests/27-left-recursion.out
@@ -0,0 +1 @@
+{xyyyyyy}
diff --git a/tests/27-left-recursion.sh b/tests/27-left-recursion.sh
new file mode 100644
index 0000000..ec11cab
--- /dev/null
+++ b/tests/27-left-recursion.sh
@@ -0,0 +1,2 @@
+# Left recursion should work
+bp -p 'xys: (xys / `x) `y; xys => "{@0}"'
diff --git a/tests/28-left-recursion2.in b/tests/28-left-recursion2.in
new file mode 100644
index 0000000..b52b9a9
--- /dev/null
+++ b/tests/28-left-recursion2.in
@@ -0,0 +1,3 @@
+ab!
+ab!c!
+ab!cd!!
diff --git a/tests/28-left-recursion2.out b/tests/28-left-recursion2.out
new file mode 100644
index 0000000..1c4911e
--- /dev/null
+++ b/tests/28-left-recursion2.out
@@ -0,0 +1,3 @@
+{ab!}
+{ab!c!}
+{ab!cd!!}
diff --git a/tests/28-left-recursion2.sh b/tests/28-left-recursion2.sh
new file mode 100644
index 0000000..995f82c
--- /dev/null
+++ b/tests/28-left-recursion2.sh
@@ -0,0 +1,2 @@
+# Left recursion has some tricky edge cases like this:
+bp -p 'foo: (foo / `a-z) (foo / `a-z) `!; foo => "{@0}"'