From 32a0a9ac0f9187a02339f55bc34cb779855bc2e2 Mon Sep 17 00:00:00 2001 From: aarne Date: Tue, 24 Jan 2006 20:36:37 +0000 Subject: [PATCH] optimization of selection computation --- src/GF/Grammar/Compute.hs | 9 +++++++++ 1 file changed, 9 insertions(+) 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