summaryrefslogtreecommitdiff
path: root/src/GF/Compile/PrOld.hs
diff options
context:
space:
mode:
Diffstat (limited to 'src/GF/Compile/PrOld.hs')
-rw-r--r--src/GF/Compile/PrOld.hs84
1 files changed, 0 insertions, 84 deletions
diff --git a/src/GF/Compile/PrOld.hs b/src/GF/Compile/PrOld.hs
deleted file mode 100644
index 29920fab6..000000000
--- a/src/GF/Compile/PrOld.hs
+++ /dev/null
@@ -1,84 +0,0 @@
-----------------------------------------------------------------------
--- |
--- Module : PrOld
--- Maintainer : GF
--- Stability : (stable)
--- Portability : (portable)
---
--- > CVS $Date: 2005/04/21 16:21:44 $
--- > CVS $Author: bringert $
--- > CVS $Revision: 1.8 $
---
--- a hack to print gf2 into gf1 readable files
--- Works only for canonical grammars, printed into GFC. Otherwise we would have
--- problems with qualified names.
--- --- printnames are not preserved, nor are lindefs
------------------------------------------------------------------------------
-
-module GF.Compile.PrOld (printGrammarOld, stripTerm) where
-
-import GF.Grammar.PrGrammar
-import GF.Canon.CanonToGrammar
-import qualified GF.Canon.GFC as GFC
-import GF.Grammar.Grammar
-import GF.Infra.Ident
-import GF.Grammar.Macros
-import GF.Infra.Modules
-import qualified GF.Source.PrintGF as P
-import GF.Source.GrammarToSource
-
-import Data.List
-import GF.Data.Operations
-import GF.Infra.UseIO
-
-printGrammarOld :: GFC.CanonGrammar -> String
-printGrammarOld gr = err id id $ do
- as0 <- mapM canon2sourceModule [im | im@(_,ModMod m) <- modules gr, isModAbs m]
- cs0 <- mapM canon2sourceModule
- [im | im@(_,ModMod m) <- modules gr, isModCnc m || isModRes m]
- as1 <- return $ concatMap stripInfo $ concatMap (tree2list . js . snd) as0
- cs1 <- return $ concatMap stripInfo $ concatMap (tree2list . js . snd) cs0
- return $ unlines $ map prj $ srt as1 ++ srt cs1
- where
- js (ModMod m) = jments m
- srt = sortBy (\ (i,_) (j,_) -> compare i j)
- prj ii = P.printTree $ trAnyDef ii
-
-stripInfo :: (Ident,Info) -> [(Ident,Info)]
-stripInfo (c,i) = case i of
- AbsCat (Yes co) (Yes fs) -> rc $ AbsCat (Yes (stripContext co)) nope
- AbsFun (Yes ty) (Yes tr) -> rc $ AbsFun (Yes (stripTerm ty)) (Yes(stripTerm tr))
- AbsFun (Yes ty) _ -> rc $ AbsFun (Yes (stripTerm ty)) nope
- ResParam (Yes (ps,m)) -> rc $ ResParam (Yes ([(c,stripContext co) | (c,co)<- ps],Nothing))
- CncCat (Yes ty) _ _ -> rc $
- CncCat (Yes (stripTerm ty)) nope nope
- CncFun _ (Yes tr) _ -> rc $ CncFun Nothing (Yes (stripTerm tr)) nope
- _ -> []
- where
- rc j = [(c,j)]
-
-stripContext co = [(x, stripTerm t) | (x,t) <- co]
-
-stripTerm :: Term -> Term
-stripTerm t = case t of
- Q _ c -> Vr c
- QC _ c -> Vr c
- T ti cs -> T ti' [(stripPattern p, stripTerm c) | (p,c) <- cs] where
- ti' = case ti of
- TTyped ty -> TTyped $ stripTerm ty
- TComp ty -> TComp $ stripTerm ty
- TWild ty -> TWild $ stripTerm ty
- _ -> ti
----- R [] -> EInt 8 --- GF 1.2 parser doesn't accept empty records
----- RecType [] -> Cn (zIdent "Int") ---
- _ -> composSafeOp stripTerm t
-
-stripPattern p = case p of
- PC c [] -> PV c
- PP _ c [] -> PV c
- PC c ps -> PC c (map stripPattern ps)
- PP _ c ps -> PC c (map stripPattern ps)
- PR lps -> PR [(l, stripPattern p) | (l,p) <- lps]
- PT t p -> PT (stripTerm t) (stripPattern p)
- _ -> p
-