From 8f8aac4d24b8ea7d0867df8b3f890422a1f833d8 Mon Sep 17 00:00:00 2001 From: aarne Date: Thu, 31 Jan 2008 16:37:32 +0000 Subject: gfcc generation with HOAS: var fields appended to records --- src/GF/GFCC/Linearize.hs | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) (limited to 'src/GF/GFCC/Linearize.hs') diff --git a/src/GF/GFCC/Linearize.hs b/src/GF/GFCC/Linearize.hs index 7d5e6b010..b585385ea 100644 --- a/src/GF/GFCC/Linearize.hs +++ b/src/GF/GFCC/Linearize.hs @@ -27,19 +27,24 @@ realize trm = case trm of _ -> "ERROR " ++ show trm ---- debug linExp :: GFCC -> CId -> Exp -> Term -linExp mcfg lang tree@(DTr _ at trees) = ---- bindings TODO +linExp mcfg lang tree@(DTr xs at trees) = ---- bindings TODO case at of - AC fun -> comp (lmap lin trees) $ look fun + AC fun -> addB $ comp (lmap lin trees) $ look fun AS s -> R [kks (show s)] -- quoted AI i -> R [kks (show i)] --- [C lst, kks (show i), C size] where --- lst = mod (fromInteger i) 10 ; size = if i < 10 then 0 else 1 AF d -> R [kks (show d)] + AV x -> addB $ R [kks (prCId x)] ---- lindef of cat AM _ -> TM where lin = linExp mcfg lang comp = compute mcfg lang look = lookLin mcfg lang + addB t + | Data.List.null xs = t + | otherwise = case t of + R ts -> R $ ts ++ (Data.List.map (kks . prCId) xs) compute :: GFCC -> CId -> [Term] -> Term -> Term compute mcfg lang args = comp where -- cgit v1.2.3