forked from GitHub/gf-core
top-level transfer for converting trees; lexicon not included
This commit is contained in:
@@ -292,7 +292,9 @@ type GFloat = Tree GFloat_
|
||||
data GFloat_
|
||||
|
||||
data Tree :: * -> * where
|
||||
---- GEMeta :: Int -> [forall a . Tree a] -> Tree a
|
||||
|
||||
GEMeta :: Int -> [Tree a] -> Tree GPhr_
|
||||
|
||||
GAdAP :: GAdA -> GAP -> Tree GAP_
|
||||
GAdjOrd :: GOrd -> Tree GAP_
|
||||
GAdvAP :: GAP -> GAdv -> Tree GAP_
|
||||
@@ -2720,7 +2722,7 @@ instance Gf GVV where
|
||||
instance Compos Tree where
|
||||
compos r a f t = case t of
|
||||
|
||||
---- GEMeta m x1 -> r (GEMeta m) `a` foldr (a . a (r (:)) . f) (r []) x1
|
||||
GEMeta m x1 -> r (GEMeta m) `a` foldr (a . a (r (:)) . f) (r []) x1
|
||||
|
||||
GAdAP x1 x2 -> r GAdAP `a` f x1 `a` f x2
|
||||
GAdjOrd x1 -> r GAdjOrd `a` f x1
|
||||
|
||||
8
lib/src/experimental/transfer/ONTransfer.hs
Normal file
8
lib/src/experimental/transfer/ONTransfer.hs
Normal file
@@ -0,0 +1,8 @@
|
||||
module Main where
|
||||
|
||||
import qualified PGF
|
||||
import Old2New
|
||||
|
||||
main = interact (unlines . map trans . lines)
|
||||
|
||||
trans = maybe "" (PGF.showExpr [] . transfer) . PGF.readExpr
|
||||
@@ -1,6 +1,6 @@
|
||||
{-# OPTIONS_GHC -fglasgow-exts #-}
|
||||
|
||||
module Old2New where
|
||||
module Old2New (transfer) where
|
||||
import PGF hiding (Tree)
|
||||
import qualified PGF
|
||||
import PGF.Data
|
||||
@@ -39,7 +39,6 @@ on t = case t of
|
||||
GUseRCl (GTTAnt t a) p (GRelSlash rp cls) -> GRelSlash_none rp (onClSlash t a p cls)
|
||||
|
||||
-- NP
|
||||
GRelNP np rs -> GRelNP (on np) (on rs)
|
||||
|
||||
-- Adv
|
||||
GComparAdvAdjS cadv a s -> error "GComparAdvAdjS cadv a (onS s)"
|
||||
@@ -89,6 +88,7 @@ getAdvs :: GVP -> ([GPrAdv_none],GVP)
|
||||
getAdvs vp = case vp of
|
||||
GAdvVP vp1 adv -> let (advs,vp2) = getAdvs vp1 in (advs ++ [GLiftAdv adv],vp2)
|
||||
GAdVVP adv vp1 -> let (advs,vp2) = getAdvs vp1 in (advs ++ [GLiftAdV adv],vp2)
|
||||
_ -> ([],vp)
|
||||
|
||||
appAdvCl :: [GPrAdv_none] -> GPrCl_none -> GPrCl_none
|
||||
appAdvCl advs cl = foldr GAdvCl_none cl advs
|
||||
|
||||
Reference in New Issue
Block a user