From d133e0353ca614b36357dadb782aea43de895e09 Mon Sep 17 00:00:00 2001 From: aarne Date: Sat, 7 Jan 2006 14:39:40 +0000 Subject: regular expression patterns --- src/GF/Grammar/PatternMatch.hs | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'src/GF/Grammar/PatternMatch.hs') diff --git a/src/GF/Grammar/PatternMatch.hs b/src/GF/Grammar/PatternMatch.hs index 4e3feb5dc..f850981f0 100644 --- a/src/GF/Grammar/PatternMatch.hs +++ b/src/GF/Grammar/PatternMatch.hs @@ -95,6 +95,10 @@ tryMatch (p,t) = do (PAlt p1 p2,_) -> checks [trym p1 t', trym p2 t'] + (PNeg p',_) -> case tryMatch (p',t) of + Bad _ -> return [] + _ -> prtBad "no match with negative pattern" p + (PSeq p1 p2, ([],K s, [])) -> do let cuts = [splitAt n s | n <- [0 .. length s]] matches <- checks [mapM tryMatch [(p1,K s1),(p2,K s2)] | (s1,s2) <- cuts] -- cgit v1.2.3