diff options
author | Daniel Gröber <dxld@darkboxed.org> | 2017-12-03 01:08:37 +0100 |
---|---|---|
committer | Daniel Gröber <dxld@darkboxed.org> | 2018-01-18 14:10:26 +0100 |
commit | 412148ce5f7911e818c6fe1e50981c2cd94858b1 (patch) | |
tree | 750ed1a5aaf56e3e5475ab9b6a7d9435e1617e14 /tests/bkpregex/regex-indef/Regex.hs | |
parent | 49dca6e8963a8fcd4e30d76d65068e9fa76a4a8d (diff) |
ghc-session: Add backpack test project
Diffstat (limited to 'tests/bkpregex/regex-indef/Regex.hs')
-rw-r--r-- | tests/bkpregex/regex-indef/Regex.hs | 14 |
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] |