From 0f6c51f741668adc68491c79ca94cc4b98f5d154 Mon Sep 17 00:00:00 2001 From: bringert Date: Fri, 20 Jan 2006 18:18:49 +0000 Subject: Report errors in at command. --- src/GF/API.hs | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) (limited to 'src/GF/API.hs') diff --git a/src/GF/API.hs b/src/GF/API.hs index 906bd062f..9ad5c7a3f 100644 --- a/src/GF/API.hs +++ b/src/GF/API.hs @@ -372,17 +372,18 @@ wrapByFun opts gr f t = g = grammar gr applyTransfer :: Options -> GFGrammar -> [(Ident,T.Env)] -> - (Maybe Ident,Ident) -> Tree -> Tree -applyTransfer opts gr trs (mm,f) t = - err (const t) id $ annotate g t' + (Maybe Ident,Ident) -> Tree -> Err [Tree] +applyTransfer opts gr trs (mm,f) t = mapM (annotate g) ts' where - t' = qualifTerm (absId gr) $ trans tr f $ tree2exp t + ts' = map (qualifTerm (absId gr)) $ trans tr f $ tree2exp t g = grammar gr tr = case mm of Just m -> maybe empty id $ lookup m trs _ -> ifNull empty (snd . head) trs - - trans tr f = core2exp . T.evaluateExp tr . exp2core f + -- FIXME: if the returned value is a list, + -- return a list of trees + trans :: T.Env -> Ident -> Exp -> [Exp] + trans tr f = (:[]) . core2exp . T.evaluateExp tr . exp2core f empty = T.builtin {- -- cgit v1.2.3