summaryrefslogtreecommitdiff
path: root/src/GF/Grammar/PatternMatch.hs
diff options
context:
space:
mode:
authoraarne <aarne@cs.chalmers.se>2006-11-14 19:13:33 +0000
committeraarne <aarne@cs.chalmers.se>2006-11-14 19:13:33 +0000
commit546e778ba8c9ea4109fbe278c6363818a43eaa0f (patch)
tree7be636d1b0a58a4fa02e5aa5ce1cdf86b65429b4 /src/GF/Grammar/PatternMatch.hs
parentf10d657df18261c688241c4463074f8bc31cf95b (diff)
internal representation for param value index
Diffstat (limited to 'src/GF/Grammar/PatternMatch.hs')
-rw-r--r--src/GF/Grammar/PatternMatch.hs3
1 files changed, 3 insertions, 0 deletions
diff --git a/src/GF/Grammar/PatternMatch.hs b/src/GF/Grammar/PatternMatch.hs
index 7635e6fa1..804333b14 100644
--- a/src/GF/Grammar/PatternMatch.hs
+++ b/src/GF/Grammar/PatternMatch.hs
@@ -56,6 +56,9 @@ tryMatch (p,t) = do
where
trym p t' =
case (p,t') of
+ (PVal _ i, (_,Val _ j,_))
+ | i == j -> return []
+ | otherwise -> Bad $ "no match of values"
(_,(x,Empty,y)) -> trym p (x,K [],y) -- because "" = [""] = []
(PV IW, _) | isInConstantForm t -> return [] -- optimization with wildcard
(PV x, _) | isInConstantForm t -> return [(x,t)]