diff options
Diffstat (limited to 'src/GF/Compile/PrOld.hs')
| -rw-r--r-- | src/GF/Compile/PrOld.hs | 84 |
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 - |
