From 41b263cf6aa38e7c6ef090c0fa18949b86eec62c Mon Sep 17 00:00:00 2001 From: krasimir Date: Fri, 22 May 2009 18:54:51 +0000 Subject: some work on evaluation with abstract expressions in PGF --- src/GF/Source/CF.hs | 2 +- src/GF/Source/GrammarToSource.hs | 6 +++--- src/GF/Source/SourceToGrammar.hs | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) (limited to 'src/GF/Source') diff --git a/src/GF/Source/CF.hs b/src/GF/Source/CF.hs index b142fd670..a25baddc1 100644 --- a/src/GF/Source/CF.hs +++ b/src/GF/Source/CF.hs @@ -105,7 +105,7 @@ cf2cat (_,(cat, items)) = map identS $ cat : [c | Left c <- items] cf2rule :: CFRule -> ((Ident,Info),(Ident,Info)) cf2rule (fun, (cat, items)) = (def,ldef) where f = identS fun - def = (f, AbsFun (Just (mkProd (args', Cn (identS cat), []))) Nothing) + def = (f, AbsFun (Just (mkProd (args', Cn (identS cat), []))) Nothing Nothing) args0 = zip (map (identS . ("x" ++) . show) [0..]) items args = [(v, Cn (identS c)) | (v, Left c) <- args0] args' = [(identS "_", Cn (identS c)) | (_, Left c) <- args0] diff --git a/src/GF/Source/GrammarToSource.hs b/src/GF/Source/GrammarToSource.hs index cff23f426..a3754336e 100644 --- a/src/GF/Source/GrammarToSource.hs +++ b/src/GF/Source/GrammarToSource.hs @@ -75,9 +75,9 @@ mkTopDefs ds = ds trAnyDef :: (Ident,Info) -> [P.TopDef] trAnyDef (i,info) = let i' = tri i in case info of AbsCat (Just co) pd -> [P.DefCat [P.SimpleCatDef i' (map trDecl co)]] - AbsFun (Just ty) Nothing -> [P.DefFunData [P.FunDef [i'] (trt ty)]] - AbsFun (Just ty) (Just eqs) -> [P.DefFun [P.FunDef [i'] (trt ty)]] ++ - [P.DefDef [P.DPatt (mkName i') (map trp patts) (trt res)] | (patts,res) <- eqs] + AbsFun (Just ty) _ Nothing -> [P.DefFunData [P.FunDef [i'] (trt ty)]] + AbsFun (Just ty) _ (Just eqs) -> [P.DefFun [P.FunDef [i'] (trt ty)]] ++ + [P.DefDef [P.DPatt (mkName i') (map trp patts) (trt res)] | (patts,res) <- eqs] ResOper pty ptr -> [P.DefOper [trDef i' pty ptr]] ResParam pp -> [P.DefPar [case pp of diff --git a/src/GF/Source/SourceToGrammar.hs b/src/GF/Source/SourceToGrammar.hs index 67de8fd46..fc7c2b285 100644 --- a/src/GF/Source/SourceToGrammar.hs +++ b/src/GF/Source/SourceToGrammar.hs @@ -585,7 +585,7 @@ transPatts p = case p of transPatt :: Patt -> Err G.Patt transPatt x = case x of - PW -> return G.wildPatt + PW -> return G.PW PV id -> liftM G.PV $ transIdent id PC id patts -> liftM2 G.PC (transIdent id) (mapM transPatt patts) PCon id -> liftM2 G.PC (transIdent id) (return []) -- cgit v1.2.3