Some bug fixes mostly in editor commands.

This commit is contained in:
aarne
2004-01-08 14:58:46 +00:00
parent 62e8e319f9
commit c7a953bb93
12 changed files with 128 additions and 94 deletions

View File

@@ -1,41 +1,40 @@
module Paraphrases (mkParaphrases) where
import Operations
import AbsGFC
import GFC
import Look
import CMacros ---- (mkApp, eqStrIdent)
import Abstract
import PrGrammar
import LookAbs
import AbsCompute
import Operations
import List (nub)
-- paraphrases of GF terms. AR 6/10/1998 -- 24/9/1999 -- 5/7/2000 -- 5/6/2002
-- Copyright (c) Aarne Ranta 1998--99, under GNU General Public License (see GPL)
-- thus inherited from the old GF. Incomplete and inefficient...
mkParaphrases :: CanonGrammar -> Exp -> [Exp]
mkParaphrases st t = [t]
---- mkParaphrases st = nub . map (beta []) . paraphrases (allDefs st)
mkParaphrases :: GFCGrammar -> Term -> [Term]
mkParaphrases st = nub . map (beta []) . paraphrases (allDefs st)
{- ----
type Definition = (Fun,Trm)
type Definition = (Fun,Term)
paraphrases :: [Definition] -> Trm -> [Trm]
paraphrases :: [Definition] -> Term -> [Term]
paraphrases th t =
t :
paraImmed th t ++
--- paraMatch th t ++
case t of
App c a -> [App d b | d <- paraphrases th c, b <- paraphrases th a]
Abs x b -> [Abs x d | d <- paraphrases th b]
c -> []
++ [t]
paraImmed :: [Definition] -> Trm -> [Trm]
paraImmed :: [Definition] -> Term -> [Term]
paraImmed defs t =
[Cn f | (f, u) <- defs, t == u] ++ --- eqTerm
[Q m f | ((m,f), u) <- defs, t == u] ++ --- eqTerm
case t of
Cn c -> [u | (f, u) <- defs, eqStrIdent f c]
---- Cn c -> [u | (f, u) <- defs, eqStrIdent f c]
_ -> []
-}
{- ---
paraMatch :: [Definition] -> Trm -> [Trm]
paraMatch th@defs t =