From ae4ba74838ece4a5ac5fe4517260b7eb5467967f Mon Sep 17 00:00:00 2001 From: aarne Date: Mon, 13 Nov 2006 17:52:58 +0000 Subject: [PATCH] an alternative lookup strategy in Compute --- src/GF/Grammar/Compute.hs | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/src/GF/Grammar/Compute.hs b/src/GF/Grammar/Compute.hs index b31718bd5..a299d9eb5 100644 --- a/src/GF/Grammar/Compute.hs +++ b/src/GF/Grammar/Compute.hs @@ -17,6 +17,7 @@ module GF.Grammar.Compute (computeConcrete, computeTerm,computeConcreteRec) wher import GF.Data.Operations import GF.Grammar.Grammar import GF.Infra.Ident +import GF.Infra.Option import GF.Data.Str import GF.Grammar.PrGrammar import GF.Infra.Modules @@ -287,6 +288,19 @@ computeTermOpt rec gr = comp where | rec = lookupResDef gr p c >>= comp [] | otherwise = lookupResDef gr p c +{- + look p c = case lookupResDefKind gr p c of + Ok (t,_) | noExpand p || rec -> comp [] t + Ok (t,_) -> return t + Bad s -> raise s + + noExpand p = errVal False $ do + mo <- lookupModMod gr p + return $ case getOptVal (iOpts (flags mo)) useOptimizer of + Just "noexpand" -> True + _ -> False +-} + ext x a g = (x,a):g returnC = return --- . computed