aboutsummaryrefslogtreecommitdiff
path: root/tests/bkpregex/regex-indef/Regex.hs
diff options
context:
space:
mode:
authorDaniel Gröber <dxld@darkboxed.org>2017-12-03 01:08:37 +0100
committerDaniel Gröber <dxld@darkboxed.org>2018-01-18 14:10:26 +0100
commit412148ce5f7911e818c6fe1e50981c2cd94858b1 (patch)
tree750ed1a5aaf56e3e5475ab9b6a7d9435e1617e14 /tests/bkpregex/regex-indef/Regex.hs
parent49dca6e8963a8fcd4e30d76d65068e9fa76a4a8d (diff)
ghc-session: Add backpack test project
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]