diff options
| author | krasimir <krasimir@chalmers.se> | 2008-06-19 12:48:29 +0000 |
|---|---|---|
| committer | krasimir <krasimir@chalmers.se> | 2008-06-19 12:48:29 +0000 |
| commit | 4dd62417dc64609e0c37633fbbba52e82c221b2e (patch) | |
| tree | ba6404c44f7f681c40a7dea5521243f0ede9c752 /src-3.0/PGF/Linearize.hs | |
| parent | 944eea8de9e077d1b3ee1a9edad9c52e9dbc2bd0 (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.hs | 26 |
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 |
