From 28a7c4b5c7659dc18166e06e914fb0a81c1c43bc Mon Sep 17 00:00:00 2001 From: krasimir Date: Tue, 8 Sep 2009 08:40:28 +0000 Subject: now the datatype Tree is only internal. All API functions are working with Expr directly. Commands gt, gr, p and rf filter out the output via the typechecker --- src/PGF/Linearize.hs | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) (limited to 'src/PGF/Linearize.hs') diff --git a/src/PGF/Linearize.hs b/src/PGF/Linearize.hs index c15bbd105..3ee170640 100644 --- a/src/PGF/Linearize.hs +++ b/src/PGF/Linearize.hs @@ -4,6 +4,7 @@ module PGF.Linearize import PGF.CId import PGF.Data import PGF.Macros +import PGF.Tree import Control.Monad import qualified Data.Map as Map @@ -13,7 +14,7 @@ import Debug.Trace -- linearization and computation of concrete PGF Terms -linearizes :: PGF -> CId -> Tree -> [String] +linearizes :: PGF -> CId -> Expr -> [String] linearizes pgf lang = realizes . linTree pgf lang realize :: Term -> String @@ -54,8 +55,8 @@ liftVariants = f f (W s t) = liftM (W s) $ f t f t = return t -linTree :: PGF -> CId -> Tree -> Term -linTree pgf lang = lin +linTree :: PGF -> CId -> Expr -> Term +linTree pgf lang = lin . expr2tree where lin (Abs xs e ) = case lin e of R ts -> R $ ts ++ (Data.List.map (kks . prCId) xs) @@ -122,11 +123,11 @@ compute pgf lang args = comp where --------- -- markup with tree positions -linearizesMark :: PGF -> CId -> Tree -> [String] +linearizesMark :: PGF -> CId -> Expr -> [String] linearizesMark pgf lang = realizes . linTreeMark pgf lang -linTreeMark :: PGF -> CId -> Tree -> Term -linTreeMark pgf lang = lin [] +linTreeMark :: PGF -> CId -> Expr -> Term +linTreeMark pgf lang = lin [] . expr2tree where lin p (Abs xs e ) = case lin p e of R ts -> R $ ts ++ (Data.List.map (kks . prCId) xs) -- cgit v1.2.3