aboutsummaryrefslogtreecommitdiff
path: root/tests/bkpregex/regex-indef/Regex.hs
diff options
context:
space:
mode:
Diffstat (limited to 'tests/bkpregex/regex-indef/Regex.hs')
-rw-r--r--tests/bkpregex/regex-indef/Regex.hs14
1 files changed, 14 insertions, 0 deletions
diff --git a/tests/bkpregex/regex-indef/Regex.hs b/tests/bkpregex/regex-indef/Regex.hs
new file mode 100644
index 0000000..506566b
--- /dev/null
+++ b/tests/bkpregex/regex-indef/Regex.hs
@@ -0,0 +1,14 @@
+module Regex where
+
+import Prelude hiding (null)
+import Str
+import Regex.Types
+
+accept :: Reg -> Str -> Bool
+accept Eps u = null u
+accept (Sym c) u = u == singleton c
+accept (Alt p q) u = accept p u || accept q u
+accept (Seq p q) u =
+ or [accept p u1 && accept q u2 | (u1, u2) <- splits u]
+accept (Rep r) u =
+ or [and [accept r ui | ui <- ps] | ps <- parts u]