From 4dd62417dc64609e0c37633fbbba52e82c221b2e Mon Sep 17 00:00:00 2001 From: krasimir Date: Thu, 19 Jun 2008 12:48:29 +0000 Subject: split the Exp type to Tree and Expr --- src-3.0/PGF/Linearize.hs | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) (limited to 'src-3.0/PGF/Linearize.hs') diff --git a/src-3.0/PGF/Linearize.hs b/src-3.0/PGF/Linearize.hs index 2d23e8653..c3341698f 100644 --- a/src-3.0/PGF/Linearize.hs +++ b/src-3.0/PGF/Linearize.hs @@ -10,8 +10,8 @@ import Debug.Trace -- linearization and computation of concrete PGF Terms -linearize :: PGF -> CId -> Exp -> String -linearize pgf lang = realize . linExp pgf lang +linearize :: PGF -> CId -> Tree -> String +linearize pgf lang = realize . linTree pgf lang realize :: Term -> String realize trm = case trm of @@ -25,18 +25,18 @@ realize trm = case trm of TM s -> s _ -> "ERROR " ++ show trm ---- debug -linExp :: PGF -> CId -> Exp -> Term -linExp pgf lang = lin +linTree :: PGF -> CId -> Tree -> Term +linTree pgf lang = lin where - lin (EAbs xs e ) = case lin e of - R ts -> R $ ts ++ (Data.List.map (kks . prCId) xs) - TM s -> R $ (TM s) : (Data.List.map (kks . prCId) xs) - lin (EApp fun es) = comp (map lin es) $ look fun - lin (EStr s ) = R [kks (show s)] -- quoted - lin (EInt i ) = R [kks (show i)] - lin (EFloat d ) = R [kks (show d)] - lin (EVar x ) = TM (prCId x) - lin (EMeta i ) = TM (show i) + lin (Abs xs e ) = case lin e of + R ts -> R $ ts ++ (Data.List.map (kks . prCId) xs) + TM s -> R $ (TM s) : (Data.List.map (kks . prCId) xs) + lin (Fun fun es) = comp (map lin es) $ look fun + lin (Lit (LStr s)) = R [kks (show s)] -- quoted + lin (Lit (LInt i)) = R [kks (show i)] + lin (Lit (LFlt d)) = R [kks (show d)] + lin (Var x) = TM (prCId x) + lin (Meta i) = TM (show i) comp = compute pgf lang look = lookLin pgf lang -- cgit v1.2.3