summaryrefslogtreecommitdiff
path: root/src-3.0/PGF/Linearize.hs
diff options
context:
space:
mode:
authorkrasimir <krasimir@chalmers.se>2008-06-19 12:48:29 +0000
committerkrasimir <krasimir@chalmers.se>2008-06-19 12:48:29 +0000
commit4dd62417dc64609e0c37633fbbba52e82c221b2e (patch)
treeba6404c44f7f681c40a7dea5521243f0ede9c752 /src-3.0/PGF/Linearize.hs
parent944eea8de9e077d1b3ee1a9edad9c52e9dbc2bd0 (diff)
split the Exp type to Tree and Expr
Diffstat (limited to 'src-3.0/PGF/Linearize.hs')
-rw-r--r--src-3.0/PGF/Linearize.hs26
1 files changed, 13 insertions, 13 deletions
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