summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/GF/Grammar/Compute.hs9
1 files changed, 9 insertions, 0 deletions
diff --git a/src/GF/Grammar/Compute.hs b/src/GF/Grammar/Compute.hs
index 4adc38ce6..cc5db2a21 100644
--- a/src/GF/Grammar/Compute.hs
+++ b/src/GF/Grammar/Compute.hs
@@ -122,6 +122,15 @@ computeTermOpt rec gr = comp where
_ -> returnC $ P t' l
+ S t@(T _ cc) v -> do
+ v' <- comp g v
+ case matchPattern cc v' of
+ Ok (c,g') -> comp (g' ++ g) c
+ _ | isCan v' -> prtBad ("missing case" +++ prt v' +++ "in") t
+ _ -> do
+ t' <- comp g t
+ return $ S t' v' -- if v' is not canonical
+
S t v -> do
t' <- comp g t
v' <- comp g v