1
0
forked from GitHub/gf-core

added pt -transfer

This commit is contained in:
krasimir
2009-09-17 15:47:06 +00:00
parent bd2f46583c
commit b8a7e50107
2 changed files with 18 additions and 13 deletions
+7 -7
View File
@@ -3,25 +3,25 @@ module GF.Command.TreeOperations (
allTreeOps
) where
import GF.Compile.TypeCheck
import PGF
import PGF.Data
import Data.List
type TreeOp = [Expr] -> [Expr]
treeOp :: PGF -> String -> Maybe TreeOp
treeOp :: PGF -> String -> Maybe (Either TreeOp (CId -> TreeOp))
treeOp pgf f = fmap snd $ lookup f $ allTreeOps pgf
allTreeOps :: PGF -> [(String,(String,TreeOp))]
allTreeOps :: PGF -> [(String,(String,Either TreeOp (CId -> TreeOp)))]
allTreeOps pgf = [
("compute",("compute by using semantic definitions (def)",
map (compute pgf))),
Left $ map (compute pgf))),
("transfer",("syntactic transfer by applying function and computing",
Right $ \f -> map (compute pgf . EApp (EFun f)))),
("paraphrase",("paraphrase by using semantic definitions (def)",
nub . concatMap (paraphrase pgf))),
Left $ nub . concatMap (paraphrase pgf))),
("smallest",("sort trees from smallest to largest, in number of nodes",
smallest))
Left $ smallest))
]
smallest :: [Expr] -> [Expr]