From 412148ce5f7911e818c6fe1e50981c2cd94858b1 Mon Sep 17 00:00:00 2001 From: Daniel Gröber Date: Sun, 3 Dec 2017 01:08:37 +0100 Subject: ghc-session: Add backpack test project --- tests/bkpregex/regex-indef/Regex.hs | 14 ++++++++++++++ tests/bkpregex/regex-indef/Str.hsig | 9 +++++++++ 2 files changed, 23 insertions(+) create mode 100644 tests/bkpregex/regex-indef/Regex.hs create mode 100644 tests/bkpregex/regex-indef/Str.hsig (limited to 'tests/bkpregex/regex-indef') 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] diff --git a/tests/bkpregex/regex-indef/Str.hsig b/tests/bkpregex/regex-indef/Str.hsig new file mode 100644 index 0000000..23bfb8c --- /dev/null +++ b/tests/bkpregex/regex-indef/Str.hsig @@ -0,0 +1,9 @@ +signature Str where + +data Str +instance Eq Str + +null :: Str -> Bool +singleton :: Char -> Str +splits :: Str -> [(Str, Str)] +parts :: Str -> [[Str]] -- cgit v1.2.3