mirror of
https://github.com/GrammaticalFramework/gf-core.git
synced 2026-04-22 19:22:50 -06:00
refactor the PGF.Expr type and the evaluation of abstract expressions
This commit is contained in:
@@ -600,11 +600,11 @@ allCommands cod env@(pgf, mos) = Map.fromList [
|
||||
exec = \opts arg -> do
|
||||
case arg of
|
||||
[Fun id []] -> case Map.lookup id (funs (abstract pgf)) of
|
||||
Just (ty,def) -> return $ fromString $
|
||||
Just (ty,eqs) -> return $ fromString $
|
||||
render (text "fun" <+> text (prCId id) <+> colon <+> ppType 0 ty $$
|
||||
if def == EEq []
|
||||
if null eqs
|
||||
then empty
|
||||
else text "def" <+> text (prCId id) <+> char '=' <+> ppExpr 0 def)
|
||||
else text "def" <+> vcat [text (prCId id) <+> hsep (map (ppPatt 9) patts) <+> char '=' <+> ppExpr 0 res | Equ patts res <- eqs])
|
||||
Nothing -> case Map.lookup id (cats (abstract pgf)) of
|
||||
Just hyps -> do return $ fromString $
|
||||
render (text "cat" <+> text (prCId id) <+> hsep (map ppHypo hyps) $$
|
||||
|
||||
@@ -4,10 +4,8 @@ module GF.Command.TreeOperations (
|
||||
) where
|
||||
|
||||
import GF.Compile.TypeCheck
|
||||
import PGF (compute,paraphrase,typecheck)
|
||||
import PGF
|
||||
|
||||
-- for conversions
|
||||
import PGF.Data
|
||||
--import GF.Compile.GrammarToGFCC (mkType,mkExp)
|
||||
import qualified GF.Grammar.Grammar as G
|
||||
import qualified GF.Grammar.Macros as M
|
||||
@@ -22,7 +20,7 @@ treeOp pgf f = fmap snd $ lookup f $ allTreeOps pgf
|
||||
allTreeOps :: PGF -> [(String,(String,TreeOp))]
|
||||
allTreeOps pgf = [
|
||||
("compute",("compute by using semantic definitions (def)",
|
||||
map (compute pgf))),
|
||||
map (expr2tree pgf . tree2expr))),
|
||||
("paraphrase",("paraphrase by using semantic definitions (def)",
|
||||
nub . concatMap (paraphrase pgf))),
|
||||
("smallest",("sort trees from smallest to largest, in number of nodes",
|
||||
|
||||
Reference in New Issue
Block a user