diff options
| author | aarne <aarne@cs.chalmers.se> | 2008-03-15 21:02:59 +0000 |
|---|---|---|
| committer | aarne <aarne@cs.chalmers.se> | 2008-03-15 21:02:59 +0000 |
| commit | 6cbb8086c8bcaca638b993a75017b7738cd923c9 (patch) | |
| tree | 5f8584f310d1a40f3ac85cfe17c7bc0eae656e38 /src/GF/Grammar/PatternMatch.hs | |
| parent | e60237136b0a8285874fd57d38ec3518aa94b162 (diff) | |
putting pattern macros in place (not properly tested yet)
Diffstat (limited to 'src/GF/Grammar/PatternMatch.hs')
| -rw-r--r-- | src/GF/Grammar/PatternMatch.hs | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/src/GF/Grammar/PatternMatch.hs b/src/GF/Grammar/PatternMatch.hs index 4b69c3ffd..b96d35b93 100644 --- a/src/GF/Grammar/PatternMatch.hs +++ b/src/GF/Grammar/PatternMatch.hs @@ -111,13 +111,15 @@ tryMatch (p,t) = do matches <- checks [mapM tryMatch [(p1,K s1),(p2,K s2)] | (s1,s2) <- cuts] return (concat matches) - (PChar, ([],K [_],[])) -> return [] - (PRep p1, ([],K s, [])) -> checks [ trym (foldr (const (PSeq p1)) (PString "") [1..n]) t' | n <- [0 .. length s] ] >> return [] + + (PChar, ([],K [_], [])) -> return [] + (PChars cs, ([],K [c], [])) | elem c cs -> return [] + _ -> prtBad "no match in case expr for" t isInConstantForm :: Term -> Bool |
