diff --git a/gf.cabal b/gf.cabal index 22e50ae0a..3098d4d9c 100644 --- a/gf.cabal +++ b/gf.cabal @@ -57,7 +57,7 @@ flag custom-binary Description: Use a customised version of the binary package Default: True -library +Library build-depends: base >= 4.2 && <5, array, fst, @@ -66,11 +66,11 @@ library random, pretty, mtl - hs-source-dirs: src/compiler src/runtime/haskell + hs-source-dirs: src/runtime/haskell if flag(custom-binary) hs-source-dirs: src/binary - other-modules: + exposed-modules: -- not really part of GF but I have changed the original binary library -- and we have to keep the copy for now. Data.Binary @@ -81,40 +81,38 @@ library else build-depends: binary + ghc-options: -fwarn-unused-imports extensions: exposed-modules: PGF - other-modules: - PGF.CId PGF.Data PGF.Macros + PGF.Optimize + PGF.Printer + PGF.Signature + PGF.Tree + PGF.Utilities + other-modules: + PGF.CId + PGF.Binary + PGF.Expr PGF.Generate PGF.Linearize - PGF.Parse - PGF.SortTop - PGF.Expr - PGF.Type - PGF.Tree - PGF.Tokenizer - PGF.Paraphrase - PGF.TypeCheck - PGF.Binary PGF.Morphology - PGF.VisualizeTree - PGF.Printer + PGF.Paraphrase + PGF.Parse PGF.Probabilistic + PGF.SortTop + PGF.Type + PGF.Tokenizer + PGF.TypeCheck PGF.Forest - PGF.Optimize - PGF.Signature - GF.Data.TrieMap - GF.Data.Utilities - GF.Data.SortedList - GF.Data.ErrM - GF.Data.Relation - GF.Data.Operations + PGF.TrieMap + PGF.VisualizeTree -executable gf - build-depends: base >= 4.2 && <5, +Executable gf + build-depends: gf, + base >= 4.2 && <5, array, containers, bytestring, @@ -131,7 +129,7 @@ executable gf haskeline, parallel>=3, utf8-string - ghc-options: -threaded + ghc-options: -threaded -fwarn-unused-imports if flag(server) build-depends: httpd-shed, network, json, cgi -- ,silently @@ -153,21 +151,17 @@ executable gf if impl(ghc>=7.0) ghc-options: -rtsopts - hs-source-dirs: src/compiler src/runtime/haskell + hs-source-dirs: src/compiler - if flag(custom-binary) - hs-source-dirs: src/binary - other-modules: Data.Binary.IEEE754 - else + if !flag(custom-binary) build-depends: binary, data-binary-ieee754 extensions: main-is: GF.hs other-modules: GF.Data.BacktrackM - GF.Data.TrieMap GF.Data.Utilities - GF.Data.SortedList +-- GF.Data.SortedList GF.Data.ErrM GF.Data.Operations GF.Data.Str @@ -227,20 +221,6 @@ executable gf GF.Compile GF.Index GF.Quiz - PGF - PGF.CId - PGF.Data - PGF.Expr - PGF.Type - PGF.Tree - PGF.Macros - PGF.Generate - PGF.Linearize - PGF.Binary - PGF.Paraphrase - PGF.TypeCheck - PGF.Printer - PGF.Optimize GFC GFI diff --git a/src/binary/Data/Binary/Builder.hs b/src/binary/Data/Binary/Builder.hs index 20e287237..183483945 100644 --- a/src/binary/Data/Binary/Builder.hs +++ b/src/binary/Data/Binary/Builder.hs @@ -56,7 +56,7 @@ module Data.Binary.Builder ( import Foreign import Data.Monoid -import Data.Word +--import Data.Word import qualified Data.ByteString as S import qualified Data.ByteString.Lazy as L @@ -66,7 +66,7 @@ import qualified Data.ByteString.Base as S #else import Data.ByteString.Internal (inlinePerformIO) import qualified Data.ByteString.Internal as S -import qualified Data.ByteString.Lazy.Internal as L +--import qualified Data.ByteString.Lazy.Internal as L #endif #if defined(__GLASGOW_HASKELL__) && !defined(__HADDOCK__) diff --git a/src/binary/Data/Binary/Get.hs b/src/binary/Data/Binary/Get.hs index 728720b3e..c2c43b691 100644 --- a/src/binary/Data/Binary/Get.hs +++ b/src/binary/Data/Binary/Get.hs @@ -68,7 +68,7 @@ module Data.Binary.Get ( ) where -import Control.Monad (when,liftM,ap) +import Control.Monad (when,liftM) -- ap import Control.Monad.Fix import Data.Maybe (isNothing) @@ -95,7 +95,7 @@ import Data.STRef #if defined(__GLASGOW_HASKELL__) && !defined(__HADDOCK__) import GHC.Base import GHC.Word -import GHC.Int +--import GHC.Int #endif -- | The parse state diff --git a/src/compiler/GF/Command/Abstract.hs b/src/compiler/GF/Command/Abstract.hs index 5469f12ac..8b7b824f0 100644 --- a/src/compiler/GF/Command/Abstract.hs +++ b/src/compiler/GF/Command/Abstract.hs @@ -1,7 +1,6 @@ module GF.Command.Abstract where -import PGF.CId(CId,mkCId) -import PGF.Data(Expr) +import PGF(CId,mkCId,Expr) type Ident = String diff --git a/src/compiler/GF/Command/Commands.hs b/src/compiler/GF/Command/Commands.hs index 8a19d2729..a05b3cf20 100644 --- a/src/compiler/GF/Command/Commands.hs +++ b/src/compiler/GF/Command/Commands.hs @@ -14,13 +14,12 @@ import Prelude hiding (putStrLn) import PGF -import PGF.VisualizeTree(getDepLabels) import PGF.Macros(lookStartCat,functionsToCat,lookValCat,restrictPGF,hasLin) import PGF.Data(abstract,funs,cats,Literal(LStr),Expr(EFun,ELit)) ---- -import PGF.Morphology(isInMorpho,morphoKnown) +--import PGF.Morphology(isInMorpho,morphoKnown) import PGF.Printer(ppFun,ppCat) -import PGF.Probabilistic(rankTreesByProbs,probTree,setProbabilities) -import PGF.Generate (generateRandomFrom) ---- +--import PGF.Probabilistic(rankTreesByProbs,probTree,setProbabilities) +--import PGF.Generate (generateRandomFrom) ---- import PGF.Tree (Tree(Fun), expr2tree, tree2expr) import PGF.Optimize(optimizePGF) @@ -30,7 +29,7 @@ import GF.Compile.ExampleBased import GF.Infra.Option (noOptions, readOutputFormat, outputFormatsExpl) import GF.Infra.UseIO(writeUTF8File) import GF.Infra.SIO -import GF.Data.ErrM ---- +--import GF.Data.ErrM ---- import GF.Command.Abstract import GF.Command.Messages import GF.Text.Lexing @@ -43,13 +42,13 @@ import GF.Command.TreeOperations ---- temporary place for typecheck and compute import GF.Data.Operations import Data.Binary (encodeFile) -import Data.List +import Data.List(intersperse,nub) import Data.Maybe import qualified Data.Map as Map --import System.Cmd(system) -- use GF.Infra.UseIO.restricedSystem instead! import Text.PrettyPrint import Data.List (sort) -import Debug.Trace +--import Debug.Trace --import System.Random (newStdGen) ---- @@ -940,7 +939,7 @@ allCommands = Map.fromList [ let outp = valStrOpts "output" "dot" opts mlab <- case file of "" -> return Nothing - _ -> restricted (readFile file) >>= return . Just . getDepLabels . lines + _ -> (Just . getDepLabels . lines) `fmap` restricted (readFile file) let lang = optLang pgf opts let grphs = unlines $ map (graphvizDependencyTree outp debug mlab Nothing pgf lang) es if isFlag "view" opts || isFlag "format" opts then do diff --git a/src/compiler/GF/Command/Importing.hs b/src/compiler/GF/Command/Importing.hs index ce06156e4..4697e8b64 100644 --- a/src/compiler/GF/Command/Importing.hs +++ b/src/compiler/GF/Command/Importing.hs @@ -12,7 +12,7 @@ import GF.Infra.UseIO import GF.Infra.Option import GF.Data.ErrM -import Data.List (nubBy) +--import Data.List (nubBy) import System.FilePath -- import a grammar in an environment where it extends an existing grammar diff --git a/src/compiler/GF/Command/Interpreter.hs b/src/compiler/GF/Command/Interpreter.hs index 78f243fff..f27ba47da 100644 --- a/src/compiler/GF/Command/Interpreter.hs +++ b/src/compiler/GF/Command/Interpreter.hs @@ -13,10 +13,8 @@ import GF.Command.Abstract import GF.Command.Parse import PGF import PGF.Data -import PGF.Morphology -import GF.System.Signal +--import PGF.Morphology import GF.Infra.SIO -import GF.Infra.Option import Text.PrettyPrint import Control.Monad(when) diff --git a/src/compiler/GF/Command/Parse.hs b/src/compiler/GF/Command/Parse.hs index d68a0bcd7..855fdb54e 100644 --- a/src/compiler/GF/Command/Parse.hs +++ b/src/compiler/GF/Command/Parse.hs @@ -1,7 +1,6 @@ module GF.Command.Parse(readCommandLine, pCommand) where -import PGF.CId -import PGF.Expr +import PGF import GF.Command.Abstract import Data.Char diff --git a/src/compiler/GF/Compile.hs b/src/compiler/GF/Compile.hs index e572920df..00eec6e30 100644 --- a/src/compiler/GF/Compile.hs +++ b/src/compiler/GF/Compile.hs @@ -17,7 +17,6 @@ import GF.Compile.Coding import GF.Compile.Tags import GF.Grammar.Grammar -import GF.Grammar.Lookup import GF.Grammar.Printer import GF.Grammar.Binary @@ -34,15 +33,10 @@ import System.FilePath import qualified Data.Map as Map --import qualified Data.Set as Set import Data.List(nub) -import Data.Maybe (isNothing) import Text.PrettyPrint -import PGF.CId -import PGF.Data -import PGF.Macros import PGF.Optimize -import PGF.Probabilistic - +import PGF -- | Compiles a number of source files and builds a 'PGF' structure for them. compileToPGF :: Options -> [FilePath] -> IOE PGF diff --git a/src/compiler/GF/Compile/CheckGrammar.hs b/src/compiler/GF/Compile/CheckGrammar.hs index 736046179..967925275 100644 --- a/src/compiler/GF/Compile/CheckGrammar.hs +++ b/src/compiler/GF/Compile/CheckGrammar.hs @@ -33,8 +33,8 @@ import qualified GF.Compile.Compute.ConcreteNew as CN import GF.Grammar import GF.Grammar.Lexer import GF.Grammar.Lookup -import GF.Grammar.Predef -import GF.Grammar.PatternMatch +--import GF.Grammar.Predef +--import GF.Grammar.PatternMatch import GF.Data.Operations import GF.Infra.CheckM diff --git a/src/compiler/GF/Compile/Coding.hs b/src/compiler/GF/Compile/Coding.hs index 9d7022229..d635ff2e4 100644 --- a/src/compiler/GF/Compile/Coding.hs +++ b/src/compiler/GF/Compile/Coding.hs @@ -3,10 +3,10 @@ module GF.Compile.Coding where import GF.Grammar.Grammar import GF.Grammar.Macros import GF.Text.Coding -import GF.Infra.Option +--import GF.Infra.Option import GF.Data.Operations -import Data.Char +--import Data.Char import System.IO import qualified Data.ByteString.Char8 as BS diff --git a/src/compiler/GF/Compile/Compute/AppPredefined.hs b/src/compiler/GF/Compile/Compute/AppPredefined.hs index 861a74a89..a597726c9 100644 --- a/src/compiler/GF/Compile/Compute/AppPredefined.hs +++ b/src/compiler/GF/Compile/Compute/AppPredefined.hs @@ -16,7 +16,7 @@ module GF.Compile.Compute.AppPredefined ( isInPredefined, typPredefined, arrityPredefined, predefModInfo, appPredefined ) where -import GF.Infra.Ident(identS) +--import GF.Infra.Ident(identS) import GF.Infra.Option import GF.Data.Operations import GF.Grammar diff --git a/src/compiler/GF/Compile/Compute/ConcreteLazy.hs b/src/compiler/GF/Compile/Compute/ConcreteLazy.hs index 0e3a4fb45..cef4c398c 100644 --- a/src/compiler/GF/Compile/Compute/ConcreteLazy.hs +++ b/src/compiler/GF/Compile/Compute/ConcreteLazy.hs @@ -17,9 +17,9 @@ module GF.Compile.Compute.ConcreteLazy (computeConcrete, computeTerm,checkPredef import GF.Data.Operations import GF.Grammar.Grammar import GF.Infra.Ident -import GF.Infra.Option +--import GF.Infra.Option import GF.Data.Str -import GF.Grammar.ShowTerm +--import GF.Grammar.ShowTerm import GF.Grammar.Printer import GF.Grammar.Predef import GF.Grammar.Macros @@ -30,8 +30,8 @@ import GF.Grammar.Lockfield (isLockLabel,unlockRecord) ---- import GF.Compile.Compute.AppPredefined -import Data.List (nub,intersperse) -import Control.Monad (liftM2, liftM) +import Data.List (nub) --intersperse +--import Control.Monad (liftM2, liftM) import Control.Monad.Identity import Text.PrettyPrint diff --git a/src/compiler/GF/Compile/Compute/ConcreteNew.hs b/src/compiler/GF/Compile/Compute/ConcreteNew.hs index 3e87ea43a..dd49fffed 100644 --- a/src/compiler/GF/Compile/Compute/ConcreteNew.hs +++ b/src/compiler/GF/Compile/Compute/ConcreteNew.hs @@ -9,15 +9,15 @@ import GF.Grammar hiding (Env, VGen, VApp, VRecType) import GF.Grammar.Lookup(lookupResDefLoc,allParamValues) import GF.Grammar.Predef(cPredef,cErrorType,cTok,cStr) import GF.Grammar.PatternMatch(matchPattern,measurePatt) -import GF.Grammar.Lockfield(unlockRecord,lockLabel,isLockLabel,lockRecType) +import GF.Grammar.Lockfield(lockLabel,isLockLabel,lockRecType) --unlockRecord import GF.Compile.Compute.Value hiding (Error) import GF.Compile.Compute.Predef(predef,predefName,delta) import GF.Data.Str(Str,glueStr,str2strings,str,sstr,plusStr,strTok) import GF.Data.Operations(Err,err,errIn,maybeErr,combinations,mapPairsM) -import GF.Data.Utilities(mapFst,mapSnd,mapBoth,apBoth,apSnd) +import GF.Data.Utilities(mapFst,mapSnd,mapBoth) import Control.Monad(ap,liftM,liftM2,mplus,unless) -import Data.List (findIndex,intersect,isInfixOf,nub,elemIndex,(\\)) -import Data.Char (isUpper,toUpper,toLower) +import Data.List (findIndex,intersect,nub,elemIndex,(\\)) --,isInfixOf +--import Data.Char (isUpper,toUpper,toLower) import Text.PrettyPrint import qualified Data.Map as Map --import Debug.Trace(trace) diff --git a/src/compiler/GF/Compile/Compute/Predef.hs b/src/compiler/GF/Compile/Compute/Predef.hs index b8b7f7c77..8c793502a 100644 --- a/src/compiler/GF/Compile/Compute/Predef.hs +++ b/src/compiler/GF/Compile/Compute/Predef.hs @@ -9,13 +9,13 @@ import Data.List (isInfixOf) import Data.Char (isUpper,toLower,toUpper) import Control.Monad(ap) -import GF.Data.Utilities (mapSnd,apBoth) +import GF.Data.Utilities (apBoth) --mapSnd import GF.Compile.Compute.Value -import GF.Infra.Ident (Ident,varX,showIdent) -import GF.Data.Operations(Err,err) +import GF.Infra.Ident (Ident,showIdent) --,varX +import GF.Data.Operations(Err) -- ,err import GF.Grammar.Predef -import PGF.Data(BindType(..)) +--import PGF.Data(BindType(..)) -------------------------------------------------------------------------------- class Predef a where diff --git a/src/compiler/GF/Compile/Compute/Value.hs b/src/compiler/GF/Compile/Compute/Value.hs index e72b06778..21a3eb20e 100644 --- a/src/compiler/GF/Compile/Compute/Value.hs +++ b/src/compiler/GF/Compile/Compute/Value.hs @@ -1,8 +1,8 @@ module GF.Compile.Compute.Value where -import GF.Grammar.Grammar(Label,Type,TInfo,MetaId,Patt,QIdent) +import GF.Grammar.Grammar(Label,Type,MetaId,Patt,QIdent) import PGF.Data(BindType) import GF.Infra.Ident(Ident) -import Text.Show.Functions +import Text.Show.Functions() import Data.Ix(Ix) -- | Self-contained (not quite) representation of values diff --git a/src/compiler/GF/Compile/ExampleBased.hs b/src/compiler/GF/Compile/ExampleBased.hs index 39d88ae49..9300fd32d 100644 --- a/src/compiler/GF/Compile/ExampleBased.hs +++ b/src/compiler/GF/Compile/ExampleBased.hs @@ -4,9 +4,9 @@ module GF.Compile.ExampleBased ( ) where import PGF -import PGF.Probabilistic -import PGF.Morphology -import GF.Compile.ToAPI +--import PGF.Probabilistic +--import PGF.Morphology +--import GF.Compile.ToAPI import Data.List diff --git a/src/compiler/GF/Compile/Export.hs b/src/compiler/GF/Compile/Export.hs index b7f00677f..727a21f2d 100644 --- a/src/compiler/GF/Compile/Export.hs +++ b/src/compiler/GF/Compile/Export.hs @@ -1,14 +1,14 @@ module GF.Compile.Export where import PGF -import PGF.Printer +import PGF.Printer(ppPGF) import GF.Compile.PGFtoHaskell import GF.Compile.PGFtoProlog import GF.Compile.PGFtoLProlog import GF.Compile.PGFtoJS import GF.Compile.PGFtoPython import GF.Infra.Option -import GF.Speech.CFG +--import GF.Speech.CFG import GF.Speech.PGFToCFG import GF.Speech.SRGS_ABNF import GF.Speech.SRGS_XML diff --git a/src/compiler/GF/Compile/GeneratePMCFG.hs b/src/compiler/GF/Compile/GeneratePMCFG.hs index bf4bebdec..99df9af3e 100644 --- a/src/compiler/GF/Compile/GeneratePMCFG.hs +++ b/src/compiler/GF/Compile/GeneratePMCFG.hs @@ -13,7 +13,7 @@ module GF.Compile.GeneratePMCFG (generatePMCFG, pgfCncCat, addPMCFG, resourceValues ) where -import PGF.CId +--import PGF.CId import PGF.Data(CncCat(..),Symbol(..),fidVar) import GF.Infra.Option @@ -24,23 +24,23 @@ import GF.Grammar.Lockfield (isLockLabel) import GF.Data.BacktrackM import GF.Data.Operations import GF.Infra.UseIO (IOE) -import GF.Data.Utilities (updateNthM, updateNth) +import GF.Data.Utilities (updateNthM) --updateNth import GF.Compile.Compute.ConcreteNew(GlobalEnv,normalForm,resourceValues,ppL) import System.IO(hPutStr,hPutStrLn,stderr) import qualified Data.Map as Map import qualified Data.Set as Set import qualified Data.List as List -import qualified Data.IntMap as IntMap +--import qualified Data.IntMap as IntMap import qualified Data.IntSet as IntSet import Text.PrettyPrint hiding (Str) import Data.Array.IArray import Data.Array.Unboxed -import Data.Maybe -import Data.Char (isDigit) +--import Data.Maybe +--import Data.Char (isDigit) import Control.Monad import Control.Monad.Identity import Control.Monad.Trans (liftIO) -import Control.Exception +--import Control.Exception ---------------------------------------------------------------------- -- main conversion function diff --git a/src/compiler/GF/Compile/GetGrammar.hs b/src/compiler/GF/Compile/GetGrammar.hs index b8832ba64..17477f49a 100644 --- a/src/compiler/GF/Compile/GetGrammar.hs +++ b/src/compiler/GF/Compile/GetGrammar.hs @@ -25,9 +25,9 @@ import GF.Grammar.Lexer import GF.Grammar.Parser import GF.Grammar.Grammar -import GF.Compile.ReadFiles +--import GF.Compile.ReadFiles -import Data.Char (toUpper) +--import Data.Char (toUpper) import qualified Data.ByteString.Char8 as BS import Control.Monad (foldM) import System.Cmd (system) diff --git a/src/compiler/GF/Compile/GrammarToPGF.hs b/src/compiler/GF/Compile/GrammarToPGF.hs index b8a4f36fa..ce31d5dc1 100644 --- a/src/compiler/GF/Compile/GrammarToPGF.hs +++ b/src/compiler/GF/Compile/GrammarToPGF.hs @@ -1,24 +1,23 @@ {-# LANGUAGE BangPatterns #-} module GF.Compile.GrammarToPGF (mkCanon2pgf) where -import GF.Compile.Export +--import GF.Compile.Export import GF.Compile.GeneratePMCFG import GF.Compile.GenerateBC -import PGF.CId +import PGF(CId,mkCId,bsCId) import PGF.Data(fidInt,fidFloat,fidString,fidVar) import PGF.Optimize(updateProductionIndices) -import qualified PGF.Macros as CM +--import qualified PGF.Macros as CM import qualified PGF.Data as C import qualified PGF.Data as D import GF.Grammar.Predef -import GF.Grammar.Printer +--import GF.Grammar.Printer import GF.Grammar.Grammar import qualified GF.Grammar.Lookup as Look import qualified GF.Grammar as A import qualified GF.Grammar.Macros as GM -import qualified GF.Infra.Option as O -import GF.Compile.GeneratePMCFG +--import GF.Compile.GeneratePMCFG import GF.Infra.Ident import GF.Infra.Option @@ -26,13 +25,13 @@ import GF.Infra.UseIO (IOE) import GF.Data.Operations import Data.List -import Data.Char (isDigit,isSpace) +--import Data.Char (isDigit,isSpace) import qualified Data.Set as Set import qualified Data.Map as Map import qualified Data.IntMap as IntMap import Data.Array.IArray -import Text.PrettyPrint -import Control.Monad.Identity +--import Text.PrettyPrint +--import Control.Monad.Identity mkCanon2pgf :: Options -> SourceGrammar -> Ident -> IOE D.PGF mkCanon2pgf opts gr am = do @@ -104,7 +103,7 @@ mkCanon2pgf opts gr am = do return (seqs, ((m,id), info) : is) i2i :: Ident -> CId -i2i = CId . ident2bs +i2i = bsCId . ident2bs mkType :: [Ident] -> A.Type -> C.Type mkType scope t = diff --git a/src/compiler/GF/Compile/Instructions.hs b/src/compiler/GF/Compile/Instructions.hs index 700fe33c2..586671a4d 100644 --- a/src/compiler/GF/Compile/Instructions.hs +++ b/src/compiler/GF/Compile/Instructions.hs @@ -1,12 +1,13 @@ module GF.Compile.Instructions where -import Data.IORef +--import Data.IORef import Data.Binary import Data.Binary.Put import Data.Binary.Get import Data.Binary.IEEE754 -import PGF.CId -import PGF.Binary +import PGF(CId) +--import PGF.CId +--import PGF.Binary type IntRef = Int type AConstant = CId diff --git a/src/compiler/GF/Compile/Optimize.hs b/src/compiler/GF/Compile/Optimize.hs index 37fe21cc0..e5289fe7b 100644 --- a/src/compiler/GF/Compile/Optimize.hs +++ b/src/compiler/GF/Compile/Optimize.hs @@ -23,15 +23,15 @@ import GF.Grammar.Lookup import GF.Grammar.Predef --import GF.Compile.Refresh import GF.Compile.Compute.Concrete -import GF.Compile.CheckGrammar -import GF.Compile.Update +--import GF.Compile.CheckGrammar +--import GF.Compile.Update import GF.Data.Operations -import GF.Infra.CheckM +--import GF.Infra.CheckM import GF.Infra.Option import Control.Monad -import Data.List +--import Data.List import qualified Data.Set as Set import Text.PrettyPrint import Debug.Trace diff --git a/src/compiler/GF/Compile/PGFtoHaskell.hs b/src/compiler/GF/Compile/PGFtoHaskell.hs index d1032983d..17c9bb2f5 100644 --- a/src/compiler/GF/Compile/PGFtoHaskell.hs +++ b/src/compiler/GF/Compile/PGFtoHaskell.hs @@ -16,7 +16,7 @@ module GF.Compile.PGFtoHaskell (grammar2haskell) where -import PGF.CId +import PGF(showCId) import PGF.Data import PGF.Macros diff --git a/src/compiler/GF/Compile/PGFtoJS.hs b/src/compiler/GF/Compile/PGFtoJS.hs index 5cb01fac4..1730d62c4 100644 --- a/src/compiler/GF/Compile/PGFtoJS.hs +++ b/src/compiler/GF/Compile/PGFtoJS.hs @@ -1,18 +1,18 @@ module GF.Compile.PGFtoJS (pgf2js) where -import PGF.CId +import PGF(showCId) import PGF.Data hiding (mkStr) import qualified PGF.Macros as M import qualified GF.JavaScript.AbsJS as JS import qualified GF.JavaScript.PrintJS as JS -import GF.Data.ErrM -import GF.Infra.Option +--import GF.Data.ErrM +--import GF.Infra.Option -import Control.Monad (mplus) -import Data.Array.Unboxed (UArray) +--import Control.Monad (mplus) +--import Data.Array.Unboxed (UArray) import qualified Data.Array.IArray as Array -import Data.Maybe (fromMaybe) +--import Data.Maybe (fromMaybe) import Data.Map (Map) import qualified Data.Set as Set import qualified Data.Map as Map diff --git a/src/compiler/GF/Compile/PGFtoLProlog.hs b/src/compiler/GF/Compile/PGFtoLProlog.hs index 670e3a952..2ab5a26d2 100644 --- a/src/compiler/GF/Compile/PGFtoLProlog.hs +++ b/src/compiler/GF/Compile/PGFtoLProlog.hs @@ -1,13 +1,13 @@ module GF.Compile.PGFtoLProlog(grammar2lambdaprolog_mod, grammar2lambdaprolog_sig) where -import PGF.CId +import PGF(mkCId,ppCId,showCId,wildCId) import PGF.Data hiding (ppExpr, ppType, ppHypo) -import PGF.Macros +--import PGF.Macros import Data.List import Data.Maybe import Text.PrettyPrint import qualified Data.Map as Map -import Debug.Trace +--import Debug.Trace grammar2lambdaprolog_mod pgf = render $ text "module" <+> ppCId (absname pgf) <> char '.' $$ diff --git a/src/compiler/GF/Compile/PGFtoProlog.hs b/src/compiler/GF/Compile/PGFtoProlog.hs index 02993ac65..061d9e874 100644 --- a/src/compiler/GF/Compile/PGFtoProlog.hs +++ b/src/compiler/GF/Compile/PGFtoProlog.hs @@ -8,9 +8,9 @@ module GF.Compile.PGFtoProlog (grammar2prolog) where -import PGF.CId +import PGF(mkCId,wildCId,showCId) import PGF.Data -import PGF.Macros +--import PGF.Macros import GF.Data.Operations diff --git a/src/compiler/GF/Compile/PGFtoPython.hs b/src/compiler/GF/Compile/PGFtoPython.hs index 1877f8d70..608d74f96 100644 --- a/src/compiler/GF/Compile/PGFtoPython.hs +++ b/src/compiler/GF/Compile/PGFtoPython.hs @@ -8,7 +8,7 @@ module GF.Compile.PGFtoPython (pgf2python) where -import PGF.CId +import PGF(showCId) import PGF.Data import qualified PGF.Macros as M @@ -18,7 +18,7 @@ import qualified Data.Array.IArray as Array import qualified Data.Set as Set import qualified Data.Map as Map import qualified Data.IntMap as IntMap -import Data.List (intersperse) +--import Data.List (intersperse) pgf2python :: PGF -> String pgf2python pgf = ("# -*- coding: utf-8 -*-" ++++ diff --git a/src/compiler/GF/Compile/ReadFiles.hs b/src/compiler/GF/Compile/ReadFiles.hs index e5b85a0e8..de95cb30a 100644 --- a/src/compiler/GF/Compile/ReadFiles.hs +++ b/src/compiler/GF/Compile/ReadFiles.hs @@ -35,8 +35,8 @@ import GF.Grammar.Grammar import GF.Grammar.Binary import Control.Monad -import Data.Char -import Data.List +--import Data.Char +--import Data.List import Data.Maybe(isJust) import qualified Data.ByteString.Char8 as BS import qualified Data.Map as Map diff --git a/src/compiler/GF/Compile/Rename.hs b/src/compiler/GF/Compile/Rename.hs index 5c8b7bf20..7effded1d 100644 --- a/src/compiler/GF/Compile/Rename.hs +++ b/src/compiler/GF/Compile/Rename.hs @@ -34,8 +34,8 @@ import GF.Infra.Ident import GF.Infra.CheckM import GF.Grammar.Macros import GF.Grammar.Printer -import GF.Grammar.Lookup -import GF.Grammar.Printer +--import GF.Grammar.Lookup +--import GF.Grammar.Printer import GF.Data.Operations import Control.Monad diff --git a/src/compiler/GF/Compile/Tags.hs b/src/compiler/GF/Compile/Tags.hs index ccb47a219..16391c61b 100644 --- a/src/compiler/GF/Compile/Tags.hs +++ b/src/compiler/GF/Compile/Tags.hs @@ -8,10 +8,10 @@ import GF.Infra.UseIO import GF.Data.Operations import GF.Grammar -import Data.List +--import Data.List import qualified Data.Map as Map import qualified Data.Set as Set -import Control.Monad +--import Control.Monad import Text.PrettyPrint import System.FilePath diff --git a/src/compiler/GF/Compile/ToAPI.hs b/src/compiler/GF/Compile/ToAPI.hs index e118ea208..2fdbea360 100644 --- a/src/compiler/GF/Compile/ToAPI.hs +++ b/src/compiler/GF/Compile/ToAPI.hs @@ -2,14 +2,14 @@ module GF.Compile.ToAPI (stringToAPI,exprToAPI) where -import PGF.Expr -import PGF.CId +import PGF.Data +import PGF(showCId) import Data.Maybe -import System.IO -import Control.Monad -import Data.Set as Set (fromList,toList) +--import System.IO +--import Control.Monad +--import Data.Set as Set (fromList,toList) import Data.List -import Data.Map(Map) +--import Data.Map(Map) import qualified Data.Map as Map import PGF.Signature diff --git a/src/compiler/GF/Compile/TypeCheck/Abstract.hs b/src/compiler/GF/Compile/TypeCheck/Abstract.hs index dfded01d2..1fa4c01c6 100644 --- a/src/compiler/GF/Compile/TypeCheck/Abstract.hs +++ b/src/compiler/GF/Compile/TypeCheck/Abstract.hs @@ -26,11 +26,11 @@ import GF.Grammar import GF.Grammar.Lookup import GF.Grammar.Unify --import GF.Compile.Refresh -import GF.Compile.Compute.Abstract +--import GF.Compile.Compute.Abstract import GF.Compile.TypeCheck.TC import Text.PrettyPrint -import Control.Monad (foldM, liftM, liftM2) +--import Control.Monad (foldM, liftM, liftM2) -- | invariant way of creating TCEnv from context initTCEnv gamma = diff --git a/src/compiler/GF/Compile/TypeCheck/ConcreteNew.hs b/src/compiler/GF/Compile/TypeCheck/ConcreteNew.hs index 583d614d3..301f1da0b 100644 --- a/src/compiler/GF/Compile/TypeCheck/ConcreteNew.hs +++ b/src/compiler/GF/Compile/TypeCheck/ConcreteNew.hs @@ -7,16 +7,16 @@ import GF.Grammar.Lockfield import GF.Compile.Compute.ConcreteNew1 import GF.Compile.Compute.AppPredefined import GF.Infra.CheckM -import GF.Infra.UseIO +--import GF.Infra.UseIO import GF.Data.Operations import Text.PrettyPrint import Data.List (nub, (\\), tails) import qualified Data.IntMap as IntMap -import GF.Grammar.Parser -import System.IO -import Debug.Trace +--import GF.Grammar.Parser +--import System.IO +--import Debug.Trace checkLType :: SourceGrammar -> Term -> Type -> Check (Term, Type) checkLType gr t ty = runTcM $ do diff --git a/src/compiler/GF/Compile/TypeCheck/TC.hs b/src/compiler/GF/Compile/TypeCheck/TC.hs index 5a7fa9479..5dd276303 100644 --- a/src/compiler/GF/Compile/TypeCheck/TC.hs +++ b/src/compiler/GF/Compile/TypeCheck/TC.hs @@ -26,7 +26,7 @@ import GF.Grammar import GF.Grammar.Predef import Control.Monad -import Data.List (sortBy) +--import Data.List (sortBy) import Data.Maybe import Text.PrettyPrint diff --git a/src/compiler/GF/Data/Graph.hs b/src/compiler/GF/Data/Graph.hs index bfb289860..797325bbb 100644 --- a/src/compiler/GF/Data/Graph.hs +++ b/src/compiler/GF/Data/Graph.hs @@ -24,7 +24,7 @@ module GF.Data.Graph ( Graph(..), Node, Edge, NodeInfo , reverseGraph, mergeGraphs, renameNodes ) where -import GF.Data.Utilities +--import GF.Data.Utilities import Data.List import Data.Maybe diff --git a/src/compiler/GF/Data/Operations.hs b/src/compiler/GF/Data/Operations.hs index b70df6a90..06e54775e 100644 --- a/src/compiler/GF/Data/Operations.hs +++ b/src/compiler/GF/Data/Operations.hs @@ -60,10 +60,10 @@ module GF.Data.Operations (-- * misc functions ) where import Data.Char (isSpace, toUpper, isSpace, isDigit) -import Data.List (nub, sortBy, sort, deleteBy, nubBy, partition, (\\)) +import Data.List (nub, partition, (\\)) import qualified Data.Map as Map import Data.Map (Map) -import Control.Monad (liftM,liftM2, MonadPlus, mzero, mplus) +import Control.Monad (liftM,liftM2) import GF.Data.ErrM import GF.Data.Relation diff --git a/src/compiler/GF/Data/Relation.hs b/src/compiler/GF/Data/Relation.hs index b888a0fd7..195faf96f 100644 --- a/src/compiler/GF/Data/Relation.hs +++ b/src/compiler/GF/Data/Relation.hs @@ -26,7 +26,7 @@ module GF.Data.Relation (Rel, mkRel, mkRel' , topologicalSort, findCycles) where import Data.Foldable (toList) -import Data.List +--import Data.List import Data.Maybe import Data.Map (Map) import qualified Data.Map as Map diff --git a/src/compiler/GF/Data/Utilities.hs b/src/compiler/GF/Data/Utilities.hs index f953938c8..792f7aa4a 100644 --- a/src/compiler/GF/Data/Utilities.hs +++ b/src/compiler/GF/Data/Utilities.hs @@ -12,12 +12,12 @@ ----------------------------------------------------------------------------- -module GF.Data.Utilities where +module GF.Data.Utilities(module GF.Data.Utilities, module PGF.Utilities) where import Data.Maybe import Data.List import Control.Monad (MonadPlus(..),liftM) -import qualified Data.Set as Set +import PGF.Utilities -- * functions on lists @@ -68,17 +68,6 @@ safeInit :: [a] -> [a] safeInit [] = [] safeInit xs = init xs --- | Like 'nub', but O(n log n) instead of O(n^2), since it uses a set to lookup previous things. --- The result list is stable (the elements are returned in the order they occur), and lazy. --- Requires that the list elements can be compared by Ord. --- Code ruthlessly taken from http://hpaste.org/54411 -nub' :: Ord a => [a] -> [a] -nub' = loop Set.empty - where loop _ [] = [] - loop seen (x : xs) - | Set.member x seen = loop seen xs - | otherwise = x : loop (Set.insert x seen) xs - -- | Sorts and then groups elements given an ordering of the -- elements. sortGroupBy :: (a -> a -> Ordering) -> [a] -> [[a]] @@ -108,10 +97,6 @@ buildMultiMap :: Ord a => [(a,b)] -> [(a,[b])] buildMultiMap = map (\g -> (fst (head g), map snd g) ) . sortGroupBy (compareBy fst) --- | Replace all occurences of an element by another element. -replace :: Eq a => a -> a -> [a] -> [a] -replace x y = map (\z -> if z == x then y else z) - -- * equality functions -- | Use an ordering function as an equality predicate. diff --git a/src/compiler/GF/Grammar/Analyse.hs b/src/compiler/GF/Grammar/Analyse.hs index 0df678345..023b76ad3 100644 --- a/src/compiler/GF/Grammar/Analyse.hs +++ b/src/compiler/GF/Grammar/Analyse.hs @@ -10,7 +10,7 @@ module GF.Grammar.Analyse ( import GF.Grammar.Grammar import GF.Infra.Ident -import GF.Infra.Option --- +--import GF.Infra.Option --- import GF.Grammar.Macros import GF.Grammar.Lookup @@ -18,7 +18,7 @@ import GF.Data.Operations import qualified Data.Map as Map import Data.List (nub) -import Debug.Trace +--import Debug.Trace stripSourceGrammar :: SourceGrammar -> SourceGrammar stripSourceGrammar sgr = mGrammar [(i, m{jments = Map.map stripInfo (jments m)}) | (i,m) <- modules sgr] diff --git a/src/compiler/GF/Grammar/Binary.hs b/src/compiler/GF/Grammar/Binary.hs index ba12fde06..6641b5718 100644 --- a/src/compiler/GF/Grammar/Binary.hs +++ b/src/compiler/GF/Grammar/Binary.hs @@ -12,9 +12,9 @@ module GF.Grammar.Binary(decodeModule,decodeModuleHeader,encodeModule) where import Prelude hiding (catch) import Control.Exception(catch,ErrorCall(..),throwIO) -import Data.Char +--import Data.Char import Data.Binary -import Control.Monad +--import Control.Monad import qualified Data.Map as Map import qualified Data.ByteString.Char8 as BS @@ -23,7 +23,7 @@ import GF.Infra.Ident import GF.Infra.Option import GF.Grammar.Grammar -import PGF.Binary +import PGF() -- Binary instances -- Please change this every time when the GFO format is changed gfoVersion = "GF02" @@ -346,3 +346,5 @@ decodeFile' fpath = addFPath fpath (decodeFile fpath) addFPath fpath m = m `catch` handle where handle (ErrorCall msg) = throwIO (ErrorCall (fpath++": "++msg)) + +decodingError = fail "This file was compiled with different version of GF" diff --git a/src/compiler/GF/Grammar/CF.hs b/src/compiler/GF/Grammar/CF.hs index 1daa9a1ea..123d843bf 100644 --- a/src/compiler/GF/Grammar/CF.hs +++ b/src/compiler/GF/Grammar/CF.hs @@ -25,7 +25,7 @@ import GF.Data.Utilities (nub') import Data.Char import Data.List -import System.FilePath +--import System.FilePath getCF :: FilePath -> String -> Err SourceGrammar getCF fpath = fmap (cf2gf fpath) . pCF diff --git a/src/compiler/GF/Grammar/EBNF.hs b/src/compiler/GF/Grammar/EBNF.hs index e5cbf6c7f..b1854da54 100644 --- a/src/compiler/GF/Grammar/EBNF.hs +++ b/src/compiler/GF/Grammar/EBNF.hs @@ -24,7 +24,7 @@ import GF.Grammar.Grammar import Data.Char import Data.List -import System.FilePath +--import System.FilePath diff --git a/src/compiler/GF/Grammar/Grammar.hs b/src/compiler/GF/Grammar/Grammar.hs index 61c07399c..8db78a0f0 100644 --- a/src/compiler/GF/Grammar/Grammar.hs +++ b/src/compiler/GF/Grammar/Grammar.hs @@ -68,15 +68,15 @@ import GF.Data.Operations import PGF.Data (FId, FunId, SeqId, LIndex, Sequence, BindType(..)) -import Data.List +--import Data.List import Data.Array.IArray import Data.Array.Unboxed import qualified Data.Map as Map -import qualified Data.Set as Set -import qualified Data.IntMap as IntMap +--import qualified Data.Set as Set +--import qualified Data.IntMap as IntMap import Text.PrettyPrint -import System.FilePath -import Control.Monad.Identity +--import System.FilePath +--import Control.Monad.Identity diff --git a/src/compiler/GF/Grammar/Lexer.hs b/src/compiler/GF/Grammar/Lexer.hs index 8e6b05250..dfa78df64 100644 --- a/src/compiler/GF/Grammar/Lexer.hs +++ b/src/compiler/GF/Grammar/Lexer.hs @@ -1,5 +1,5 @@ {-# LANGUAGE CPP,MagicHash,BangPatterns #-} -{-# LINE 3 "lexer/Lexer.x" #-} +-- {-# LINE 3 "lexer/Lexer.x" #-} module GF.Grammar.Lexer ( Token(..), Posn(..) @@ -8,7 +8,7 @@ module GF.Grammar.Lexer ) where import GF.Infra.Ident -import GF.Data.Operations +--import GF.Data.Operations import qualified Data.ByteString.Char8 as BS import qualified Data.Map as Map diff --git a/src/compiler/GF/Grammar/Lookup.hs b/src/compiler/GF/Grammar/Lookup.hs index d85c7c48b..4076346a8 100644 --- a/src/compiler/GF/Grammar/Lookup.hs +++ b/src/compiler/GF/Grammar/Lookup.hs @@ -40,8 +40,8 @@ import GF.Grammar.Predef import GF.Grammar.Lockfield import Data.List (sortBy) -import Data.Maybe (maybe) -import Control.Monad +--import Data.Maybe (maybe) +--import Control.Monad import Text.PrettyPrint import qualified Data.Map as Map diff --git a/src/compiler/GF/Grammar/Macros.hs b/src/compiler/GF/Grammar/Macros.hs index f6d5c7572..db17b4451 100644 --- a/src/compiler/GF/Grammar/Macros.hs +++ b/src/compiler/GF/Grammar/Macros.hs @@ -22,14 +22,14 @@ import GF.Data.Operations import GF.Data.Str import GF.Infra.Ident import GF.Grammar.Grammar -import GF.Grammar.Values +--import GF.Grammar.Values import GF.Grammar.Predef import GF.Grammar.Printer import Control.Monad.Identity(Identity(..)) import qualified Data.Traversable as T(mapM) import Control.Monad (liftM, liftM2, liftM3) -import Data.Char (isDigit) +--import Data.Char (isDigit) import Data.List (sortBy,nub) import Text.PrettyPrint diff --git a/src/compiler/GF/Grammar/PatternMatch.hs b/src/compiler/GF/Grammar/PatternMatch.hs index bd92e3096..071deb709 100644 --- a/src/compiler/GF/Grammar/PatternMatch.hs +++ b/src/compiler/GF/Grammar/PatternMatch.hs @@ -24,10 +24,10 @@ import GF.Infra.Ident import GF.Grammar.Macros import GF.Grammar.Printer -import Data.List +--import Data.List import Control.Monad import Text.PrettyPrint -import Debug.Trace +--import Debug.Trace matchPattern :: [(Patt,rhs)] -> Term -> Err (rhs, Substitution) matchPattern pts term = diff --git a/src/compiler/GF/Grammar/Printer.hs b/src/compiler/GF/Grammar/Printer.hs index 5d8751736..dba08ce44 100644 --- a/src/compiler/GF/Grammar/Printer.hs +++ b/src/compiler/GF/Grammar/Printer.hs @@ -29,15 +29,15 @@ import GF.Infra.Option import GF.Grammar.Values import GF.Grammar.Grammar -import PGF.Expr (ppMeta) +import PGF.Data (ppMeta) import PGF.Printer (ppFId, ppFunId, ppSeqId, ppSeq) import Text.PrettyPrint -import Data.Maybe (maybe, isNothing) +import Data.Maybe (isNothing) import Data.List (intersperse) import qualified Data.Map as Map -import qualified Data.IntMap as IntMap -import qualified Data.Set as Set +--import qualified Data.IntMap as IntMap +--import qualified Data.Set as Set import qualified Data.Array.IArray as Array data TermPrintQual diff --git a/src/compiler/GF/Grammar/Values.hs b/src/compiler/GF/Grammar/Values.hs index 1a68ddc89..0476825df 100644 --- a/src/compiler/GF/Grammar/Values.hs +++ b/src/compiler/GF/Grammar/Values.hs @@ -24,7 +24,7 @@ module GF.Grammar.Values (-- * values used in TC type checking --Z tree2exp, loc2treeFocus ) where -import GF.Data.Operations +--import GF.Data.Operations ---Z import GF.Data.Zipper import GF.Infra.Ident diff --git a/src/compiler/GF/Index.hs b/src/compiler/GF/Index.hs index a685f09c2..eeb8697b3 100644 --- a/src/compiler/GF/Index.hs +++ b/src/compiler/GF/Index.hs @@ -9,13 +9,13 @@ module GF.Index (addIndex) where import PGF import PGF.Data -import PGF.Binary +--import PGF.Binary import Data.Binary -import Data.ByteString.Lazy (readFile,length) +import Data.ByteString.Lazy (length) -- readFile import qualified Data.Map as Map import Data.Map (toAscList) import Data.List (intercalate) -import qualified Data.ByteString.Lazy as BS +--import qualified Data.ByteString.Lazy as BS addIndex :: PGF -> PGF addIndex pgf = pgf {gflags = flags} diff --git a/src/compiler/GF/Infra/CheckM.hs b/src/compiler/GF/Infra/CheckM.hs index b998f7508..2f8a842e5 100644 --- a/src/compiler/GF/Infra/CheckM.hs +++ b/src/compiler/GF/Infra/CheckM.hs @@ -20,9 +20,9 @@ module GF.Infra.CheckM ) where import GF.Data.Operations -import GF.Infra.Ident +--import GF.Infra.Ident --import GF.Grammar.Grammar(Context) -import GF.Grammar.Printer +--import GF.Grammar.Printer import qualified Data.Map as Map import Text.PrettyPrint diff --git a/src/compiler/GF/Infra/GetOpt.hs b/src/compiler/GF/Infra/GetOpt.hs index ede561c90..648d51919 100644 --- a/src/compiler/GF/Infra/GetOpt.hs +++ b/src/compiler/GF/Infra/GetOpt.hs @@ -69,7 +69,7 @@ module GF.Infra.GetOpt ( import Prelude -- necessary to get dependencies right -import Data.List ( isPrefixOf, find ) +--import Data.List ( isPrefixOf, find ) -- |What to do with options following non-options data ArgOrder a diff --git a/src/compiler/GF/Infra/Option.hs b/src/compiler/GF/Infra/Option.hs index 554468783..e0cba05e4 100644 --- a/src/compiler/GF/Infra/Option.hs +++ b/src/compiler/GF/Infra/Option.hs @@ -36,7 +36,7 @@ import GF.Infra.GetOpt import GF.Grammar.Predef --import System.Console.GetOpt import System.FilePath -import System.IO +--import System.IO import GF.Data.ErrM diff --git a/src/compiler/GF/Infra/SIO.hs b/src/compiler/GF/Infra/SIO.hs index 1011b8df4..ff2072987 100644 --- a/src/compiler/GF/Infra/SIO.hs +++ b/src/compiler/GF/Infra/SIO.hs @@ -20,7 +20,7 @@ module GF.Infra.SIO( ) where import Prelude hiding (putStrLn,print) import Control.Monad(liftM) -import System.IO(Handle,hPutStrLn,hFlush,stdout) +import System.IO(hPutStrLn,hFlush,stdout) import GF.System.Catch(try) import System.Cmd(system) import System.Environment(getEnv) diff --git a/src/compiler/GF/Infra/UseIO.hs b/src/compiler/GF/Infra/UseIO.hs index 140c2623f..d16440372 100644 --- a/src/compiler/GF/Infra/UseIO.hs +++ b/src/compiler/GF/Infra/UseIO.hs @@ -29,7 +29,7 @@ import System.IO.Error(isUserError,ioeGetErrorString) import System.Environment import System.Exit import System.CPUTime -import System.Cmd +--import System.Cmd import Text.Printf import Control.Monad import Control.Monad.Trans(MonadIO(..)) diff --git a/src/compiler/GF/Quiz.hs b/src/compiler/GF/Quiz.hs index aaeae34a8..2aed598d1 100644 --- a/src/compiler/GF/Quiz.hs +++ b/src/compiler/GF/Quiz.hs @@ -19,11 +19,11 @@ module GF.Quiz ( ) where import PGF -import PGF.Linearize +--import PGF.Linearize import GF.Data.Operations -import GF.Infra.UseIO -import GF.Infra.Option -import PGF.Probabilistic +--import GF.Infra.UseIO +--import GF.Infra.Option +--import PGF.Probabilistic import System.Random import Data.List (nub) diff --git a/src/compiler/GF/Speech/CFG.hs b/src/compiler/GF/Speech/CFG.hs index 56d360dac..1a252139e 100644 --- a/src/compiler/GF/Speech/CFG.hs +++ b/src/compiler/GF/Speech/CFG.hs @@ -8,16 +8,16 @@ module GF.Speech.CFG where import GF.Data.Utilities import PGF -import GF.Infra.Option +--import GF.Infra.Option import GF.Data.Relation -import Control.Monad -import Control.Monad.State (State, get, put, evalState) +--import Control.Monad +--import Control.Monad.State (State, get, put, evalState) import Data.Map (Map) import qualified Data.Map as Map import Data.List -import Data.Maybe (fromMaybe) -import Data.Monoid (mconcat) +--import Data.Maybe (fromMaybe) +--import Data.Monoid (mconcat) import Data.Set (Set) import qualified Data.Set as Set diff --git a/src/compiler/GF/Speech/CFGToFA.hs b/src/compiler/GF/Speech/CFGToFA.hs index 3045ac842..4f5e3621e 100644 --- a/src/compiler/GF/Speech/CFGToFA.hs +++ b/src/compiler/GF/Speech/CFGToFA.hs @@ -14,17 +14,17 @@ import qualified Data.Map as Map import Data.Set (Set) import qualified Data.Set as Set -import PGF.CId +--import PGF.CId import PGF.Data import GF.Data.Utilities import GF.Speech.CFG -import GF.Speech.PGFToCFG -import GF.Infra.Ident (Ident) +--import GF.Speech.PGFToCFG +--import GF.Infra.Ident (Ident) import GF.Data.Graph -import GF.Data.Relation +--import GF.Data.Relation import GF.Speech.FiniteState -import GF.Speech.CFG +--import GF.Speech.CFG data Recursivity = RightR | LeftR | NotR diff --git a/src/compiler/GF/Speech/FiniteState.hs b/src/compiler/GF/Speech/FiniteState.hs index 136d773a2..4eaf3873a 100644 --- a/src/compiler/GF/Speech/FiniteState.hs +++ b/src/compiler/GF/Speech/FiniteState.hs @@ -41,7 +41,7 @@ import qualified Data.Map as Map import Data.Set (Set) import qualified Data.Set as Set -import GF.Data.Utilities +--import GF.Data.Utilities import GF.Data.Graph import qualified GF.Data.Graphviz as Dot diff --git a/src/compiler/GF/Speech/GSL.hs b/src/compiler/GF/Speech/GSL.hs index f1cf02ab3..3557ff21f 100644 --- a/src/compiler/GF/Speech/GSL.hs +++ b/src/compiler/GF/Speech/GSL.hs @@ -8,12 +8,12 @@ module GF.Speech.GSL (gslPrinter) where -import GF.Data.Utilities +--import GF.Data.Utilities import GF.Speech.CFG import GF.Speech.SRG import GF.Speech.RegExp import GF.Infra.Option -import GF.Infra.Ident +--import GF.Infra.Ident import PGF import Data.Char (toUpper,toLower) diff --git a/src/compiler/GF/Speech/JSGF.hs b/src/compiler/GF/Speech/JSGF.hs index 2cfeea5f5..921108e11 100644 --- a/src/compiler/GF/Speech/JSGF.hs +++ b/src/compiler/GF/Speech/JSGF.hs @@ -12,20 +12,20 @@ module GF.Speech.JSGF (jsgfPrinter) where -import GF.Data.Utilities +--import GF.Data.Utilities import GF.Infra.Option import GF.Speech.CFG import GF.Speech.RegExp import GF.Speech.SISR import GF.Speech.SRG -import PGF.CId +--import PGF.CId import PGF.Data import Data.Char import Data.List -import Data.Maybe +--import Data.Maybe import Text.PrettyPrint.HughesPJ -import Debug.Trace +--import Debug.Trace width :: Int width = 75 diff --git a/src/compiler/GF/Speech/PGFToCFG.hs b/src/compiler/GF/Speech/PGFToCFG.hs index 39c5b2a32..1f011dcec 100644 --- a/src/compiler/GF/Speech/PGFToCFG.hs +++ b/src/compiler/GF/Speech/PGFToCFG.hs @@ -6,18 +6,18 @@ ---------------------------------------------------------------------- module GF.Speech.PGFToCFG (bnfPrinter, pgfToCFG) where -import PGF.CId +import PGF(showCId) import PGF.Data as PGF import PGF.Macros -import GF.Infra.Ident +--import GF.Infra.Ident import GF.Speech.CFG hiding (Symbol) import Data.Array.IArray as Array -import Data.List +--import Data.List import Data.Map (Map) import qualified Data.Map as Map import qualified Data.IntMap as IntMap -import Data.Maybe +--import Data.Maybe import Data.Set (Set) import qualified Data.Set as Set diff --git a/src/compiler/GF/Speech/SISR.hs b/src/compiler/GF/Speech/SISR.hs index f966d96b9..8417fb203 100644 --- a/src/compiler/GF/Speech/SISR.hs +++ b/src/compiler/GF/Speech/SISR.hs @@ -10,12 +10,12 @@ module GF.Speech.SISR (SISRFormat(..), SISRTag, prSISR, import Data.List -import GF.Data.Utilities -import GF.Infra.Ident +--import GF.Data.Utilities +--import GF.Infra.Ident import GF.Infra.Option (SISRFormat(..)) import GF.Speech.CFG import GF.Speech.SRG (SRGNT) -import PGF.CId +import PGF(showCId) import qualified GF.JavaScript.AbsJS as JS import qualified GF.JavaScript.PrintJS as JS diff --git a/src/compiler/GF/Speech/SLF.hs b/src/compiler/GF/Speech/SLF.hs index 84633149b..7785f2382 100644 --- a/src/compiler/GF/Speech/SLF.hs +++ b/src/compiler/GF/Speech/SLF.hs @@ -15,17 +15,17 @@ module GF.Speech.SLF (slfPrinter,slfGraphvizPrinter, import GF.Data.Utilities import GF.Speech.CFG import GF.Speech.FiniteState -import GF.Speech.CFG +--import GF.Speech.CFG import GF.Speech.CFGToFA import GF.Speech.PGFToCFG import qualified GF.Data.Graphviz as Dot import PGF -import PGF.CId +--import PGF.CId import Control.Monad import qualified Control.Monad.State as STM import Data.Char (toUpper) -import Data.List +--import Data.List import Data.Maybe data SLFs = SLFs [(String,SLF)] SLF diff --git a/src/compiler/GF/Speech/SRG.hs b/src/compiler/GF/Speech/SRG.hs index 8acd31aa9..4e5508de0 100644 --- a/src/compiler/GF/Speech/SRG.hs +++ b/src/compiler/GF/Speech/SRG.hs @@ -17,21 +17,21 @@ module GF.Speech.SRG (SRG(..), SRGRule(..), SRGAlt(..), SRGItem, SRGSymbol , lookupFM_ ) where -import GF.Data.Operations +--import GF.Data.Operations import GF.Data.Utilities -import GF.Infra.Ident +--import GF.Infra.Ident import GF.Infra.Option import GF.Speech.CFG import GF.Speech.PGFToCFG -import GF.Data.Relation -import GF.Speech.FiniteState +--import GF.Data.Relation +--import GF.Speech.FiniteState import GF.Speech.RegExp import GF.Speech.CFGToFA -import GF.Infra.Option +--import GF.Infra.Option import PGF import Data.List -import Data.Maybe (fromMaybe, maybeToList) +--import Data.Maybe (fromMaybe, maybeToList) import Data.Map (Map) import qualified Data.Map as Map import Data.Set (Set) diff --git a/src/compiler/GF/Speech/SRGS_ABNF.hs b/src/compiler/GF/Speech/SRGS_ABNF.hs index 2df1316a8..5d07762bb 100644 --- a/src/compiler/GF/Speech/SRGS_ABNF.hs +++ b/src/compiler/GF/Speech/SRGS_ABNF.hs @@ -19,7 +19,7 @@ module GF.Speech.SRGS_ABNF (srgsAbnfPrinter, srgsAbnfNonRecursivePrinter) where -import GF.Data.Utilities +--import GF.Data.Utilities import GF.Infra.Option import GF.Speech.CFG import GF.Speech.SISR as SISR @@ -27,11 +27,11 @@ import GF.Speech.SRG import GF.Speech.RegExp import PGF (PGF, CId) -import Data.Char +--import Data.Char import Data.List import Data.Maybe import Text.PrettyPrint.HughesPJ -import Debug.Trace +--import Debug.Trace width :: Int width = 75 diff --git a/src/compiler/GF/Speech/SRGS_XML.hs b/src/compiler/GF/Speech/SRGS_XML.hs index 5f3579406..fe973c2e6 100644 --- a/src/compiler/GF/Speech/SRGS_XML.hs +++ b/src/compiler/GF/Speech/SRGS_XML.hs @@ -6,7 +6,7 @@ ---------------------------------------------------------------------- module GF.Speech.SRGS_XML (srgsXmlPrinter, srgsXmlNonRecursivePrinter) where -import GF.Data.Utilities +--import GF.Data.Utilities import GF.Data.XML import GF.Infra.Option import GF.Speech.CFG @@ -15,11 +15,11 @@ import GF.Speech.SISR as SISR import GF.Speech.SRG import PGF (PGF, CId, Token) -import Control.Monad -import Data.Char (toUpper,toLower) +--import Control.Monad +--import Data.Char (toUpper,toLower) import Data.List import Data.Maybe -import qualified Data.Map as Map +--import qualified Data.Map as Map srgsXmlPrinter :: Options -> PGF -> CId -> String diff --git a/src/compiler/GF/Speech/VoiceXML.hs b/src/compiler/GF/Speech/VoiceXML.hs index 23a07b62f..24c2e4d86 100644 --- a/src/compiler/GF/Speech/VoiceXML.hs +++ b/src/compiler/GF/Speech/VoiceXML.hs @@ -6,21 +6,21 @@ ----------------------------------------------------------------------------- module GF.Speech.VoiceXML (grammar2vxml) where -import GF.Data.Operations -import GF.Data.Str (sstrV) -import GF.Data.Utilities +--import GF.Data.Operations +--import GF.Data.Str (sstrV) +--import GF.Data.Utilities import GF.Data.XML -import GF.Infra.Ident +--import GF.Infra.Ident import PGF import PGF.Data import PGF.Macros -import Control.Monad (liftM) -import Data.List (isPrefixOf, find, intersperse) +--import Control.Monad (liftM) +import Data.List (intersperse) -- isPrefixOf, find import qualified Data.Map as Map import Data.Maybe (fromMaybe) -import Debug.Trace +--import Debug.Trace -- | the main function grammar2vxml :: PGF -> CId -> String diff --git a/src/compiler/GF/System/UseSignal.hs b/src/compiler/GF/System/UseSignal.hs index 20c70a568..c1298e0c7 100644 --- a/src/compiler/GF/System/UseSignal.hs +++ b/src/compiler/GF/System/UseSignal.hs @@ -18,7 +18,7 @@ module GF.System.UseSignal where import Control.Concurrent (myThreadId, killThread) import Control.Exception (SomeException,catch) import Prelude hiding (catch) -import System.IO +--import System.IO #ifdef mingw32_HOST_OS import GHC.ConsoleHandler diff --git a/src/compiler/GFC.hs b/src/compiler/GFC.hs index c035d0676..61d5726b2 100644 --- a/src/compiler/GFC.hs +++ b/src/compiler/GFC.hs @@ -2,7 +2,7 @@ module GFC (mainGFC, writePGF) where -- module Main where import PGF -import PGF.CId +--import PGF.CId import PGF.Data import PGF.Optimize import GF.Index diff --git a/src/compiler/GFI.hs b/src/compiler/GFI.hs index 7c53ed8d8..1a786a3d2 100644 --- a/src/compiler/GFI.hs +++ b/src/compiler/GFI.hs @@ -13,7 +13,6 @@ import GF.Data.Operations (chunks,err) import GF.Grammar hiding (Ident,isPrefixOf) import GF.Grammar.Analyse import GF.Grammar.Parser (runP, pExp) -import GF.Grammar.Printer (ppGrammar, ppModule) import GF.Grammar.ShowTerm import GF.Grammar.Lookup (allOpers,allOpersTo) import GF.Compile.Rename(renameSourceTerm) @@ -25,7 +24,6 @@ import GF.Infra.CheckM import GF.Infra.UseIO(ioErrorText) import GF.Infra.SIO import GF.Infra.Option -import GF.Infra.Ident (showIdent) import qualified System.Console.Haskeline as Haskeline import GF.Text.Coding(decodeUnicode,encodeUnicode) @@ -36,7 +34,6 @@ import PGF.Data import PGF.Macros import Data.Char -import Data.Maybe import Data.List(nub,isPrefixOf,isInfixOf,partition) import qualified Data.Map as Map import qualified Data.ByteString.Char8 as BS diff --git a/src/compiler/SimpleEditor/Convert.hs b/src/compiler/SimpleEditor/Convert.hs index b2f66f17b..3554e3342 100644 --- a/src/compiler/SimpleEditor/Convert.hs +++ b/src/compiler/SimpleEditor/Convert.hs @@ -5,7 +5,7 @@ import Control.Monad(unless,foldM,ap,mplus) import Data.List(sortBy) import Data.Function(on) import qualified Data.Map as Map -import Text.JSON(encode,makeObj) +import Text.JSON(makeObj) --encode import Text.PrettyPrint(render,text,(<+>)) -- 4 extra imports just to deal with the ByteString mess... diff --git a/src/example-based/ExampleDemo.hs b/src/example-based/ExampleDemo.hs index 1d5fabcaf..7b411001b 100644 --- a/src/example-based/ExampleDemo.hs +++ b/src/example-based/ExampleDemo.hs @@ -2,14 +2,14 @@ module ExampleDemo (Environ,initial,getNext, provideExample, testThis,mkFuncWith where import PGF -import System.IO +--import System.IO import Data.List -import Control.Monad +--import Control.Monad import qualified Data.Map as Map -import qualified Data.IntMap as IntMap +--import qualified Data.IntMap as IntMap import qualified Data.Set as Set import Data.Maybe -import System.Environment (getArgs) +--import System.Environment (getArgs) import System.Random (RandomGen) --newStdGen diff --git a/src/runtime/haskell/PGF.hs b/src/runtime/haskell/PGF.hs index fdb834cad..e7e5c53c5 100644 --- a/src/runtime/haskell/PGF.hs +++ b/src/runtime/haskell/PGF.hs @@ -21,6 +21,8 @@ module PGF( -- * Identifiers CId, mkCId, wildCId, showCId, readCId, + -- extra + ppCId, pIdent, bsCId, -- * Languages Language, @@ -50,6 +52,8 @@ module PGF( mkInt, unInt, mkDouble, unDouble, mkMeta, unMeta, + -- extra + pExpr, -- * Operations -- ** Linearization @@ -111,6 +115,8 @@ module PGF( Lemma, Analysis, Morpho, lookupMorpho, buildMorpho, fullFormLexicon, morphoMissing, + -- extra: + morphoKnown, isInMorpho, -- ** Tokenizing mkTokenizer, @@ -124,6 +130,8 @@ module PGF( gizaAlignment, GraphvizOptions(..), graphvizDefaults, + -- extra: + getDepLabels, -- * Probabilities Probabilities, @@ -131,6 +139,8 @@ module PGF( defaultProbabilities, showProbabilities, readProbabilitiesFromFile, + -- extra: + probTree, setProbabilities, rankTreesByProbs, -- -- ** SortTop -- forExample, @@ -153,21 +163,20 @@ import PGF.Macros import PGF.Expr (Tree) import PGF.Morphology import PGF.Data -import PGF.Binary +import PGF.Binary() import PGF.Tokenizer import qualified PGF.Forest as Forest import qualified PGF.Parse as Parse +import PGF.Utilities(replace) -import GF.Data.Utilities (replace) - -import Data.Char +--import Data.Char import qualified Data.Map as Map -import qualified Data.IntMap as IntMap -import Data.Maybe +--import qualified Data.IntMap as IntMap +--import Data.Maybe import Data.Binary import Data.List(mapAccumL) -import System.Random (newStdGen) -import Control.Monad +--import System.Random (newStdGen) +--import Control.Monad import Text.PrettyPrint --------------------------------------------------- diff --git a/src/runtime/haskell/PGF/Binary.hs b/src/runtime/haskell/PGF/Binary.hs index bf8fe2824..202939f04 100644 --- a/src/runtime/haskell/PGF/Binary.hs +++ b/src/runtime/haskell/PGF/Binary.hs @@ -10,7 +10,7 @@ import Data.Array.IArray import qualified Data.ByteString as BS import qualified Data.Map as Map import qualified Data.IntMap as IntMap -import qualified Data.Set as Set +--import qualified Data.Set as Set import Control.Monad pgfMajorVersion, pgfMinorVersion :: Word16 diff --git a/src/runtime/haskell/PGF/CId.hs b/src/runtime/haskell/PGF/CId.hs index fea304d9d..6a20cb4f3 100644 --- a/src/runtime/haskell/PGF/CId.hs +++ b/src/runtime/haskell/PGF/CId.hs @@ -3,7 +3,7 @@ module PGF.CId (CId(..), readCId, showCId, -- utils - pCId, pIdent, ppCId) where + bsCId, pCId, pIdent, ppCId) where import Control.Monad import qualified Data.ByteString.Char8 as BS @@ -23,6 +23,8 @@ wildCId = CId (BS.singleton '_') mkCId :: String -> CId mkCId s = CId (BS.pack s) +bsCId = CId + -- | Reads an identifier from 'String'. The function returns 'Nothing' if the string is not valid identifier. readCId :: String -> Maybe CId readCId s = case [x | (x,cs) <- RP.readP_to_S pCId s, all isSpace cs] of diff --git a/src/runtime/haskell/PGF/Data.hs b/src/runtime/haskell/PGF/Data.hs index 19df9d0ed..e37b243d0 100644 --- a/src/runtime/haskell/PGF/Data.hs +++ b/src/runtime/haskell/PGF/Data.hs @@ -8,11 +8,11 @@ import qualified Data.Map as Map import qualified Data.Set as Set import qualified Data.IntMap as IntMap import qualified Data.IntSet as IntSet -import qualified GF.Data.TrieMap as TMap +import qualified PGF.TrieMap as TMap import qualified Data.ByteString as BS import Data.Array.IArray import Data.Array.Unboxed -import Data.List +--import Data.List -- internal datatypes for PGF diff --git a/src/runtime/haskell/PGF/Expr.hs b/src/runtime/haskell/PGF/Expr.hs index 998819687..01b791847 100644 --- a/src/runtime/haskell/PGF/Expr.hs +++ b/src/runtime/haskell/PGF/Expr.hs @@ -23,7 +23,7 @@ import PGF.CId import PGF.Type import Data.Char -import Data.Maybe +--import Data.Maybe import Data.List as List import qualified Data.Map as Map hiding (showTree) import Control.Monad diff --git a/src/runtime/haskell/PGF/Forest.hs b/src/runtime/haskell/PGF/Forest.hs index 89ebfb299..8a38948be 100644 --- a/src/runtime/haskell/PGF/Forest.hs +++ b/src/runtime/haskell/PGF/Forest.hs @@ -32,7 +32,7 @@ import qualified Data.IntSet as IntSet import qualified Data.IntMap as IntMap import Control.Monad import Control.Monad.State -import GF.Data.Utilities (nub') +import PGF.Utilities (nub') data Forest = Forest diff --git a/src/runtime/haskell/PGF/Generate.hs b/src/runtime/haskell/PGF/Generate.hs index ae6abc938..76854bda2 100644 --- a/src/runtime/haskell/PGF/Generate.hs +++ b/src/runtime/haskell/PGF/Generate.hs @@ -8,14 +8,13 @@ module PGF.Generate import PGF.CId import PGF.Data -import PGF.Expr -import PGF.Macros +--import PGF.Macros import PGF.TypeCheck -import PGF.Probabilistic +--import PGF.Probabilistic -import Data.Maybe (fromMaybe) -import qualified Data.Map as Map -import qualified Data.IntMap as IntMap +--import Data.Maybe (fromMaybe) +--import qualified Data.Map as Map +--import qualified Data.IntMap as IntMap import Control.Monad import Control.Monad.Identity import System.Random diff --git a/src/runtime/haskell/PGF/Linearize.hs b/src/runtime/haskell/PGF/Linearize.hs index 1e3aee02e..6ec339bd5 100644 --- a/src/runtime/haskell/PGF/Linearize.hs +++ b/src/runtime/haskell/PGF/Linearize.hs @@ -12,7 +12,7 @@ import PGF.Macros import PGF.Expr import Data.Array.IArray import Data.List -import Control.Monad +--import Control.Monad import qualified Data.Map as Map import qualified Data.IntMap as IntMap import qualified Data.Set as Set diff --git a/src/runtime/haskell/PGF/Macros.hs b/src/runtime/haskell/PGF/Macros.hs index ce0f8866e..830a16674 100644 --- a/src/runtime/haskell/PGF/Macros.hs +++ b/src/runtime/haskell/PGF/Macros.hs @@ -4,11 +4,11 @@ import PGF.CId import PGF.Data import Control.Monad import qualified Data.Map as Map -import qualified Data.Set as Set -import qualified Data.IntMap as IntMap -import qualified Data.IntSet as IntSet +--import qualified Data.Set as Set +--import qualified Data.IntMap as IntMap +--import qualified Data.IntSet as IntSet import qualified Data.Array as Array -import Data.Maybe +--import Data.Maybe import Data.List import Data.Array.IArray import Text.PrettyPrint diff --git a/src/runtime/haskell/PGF/Morphology.hs b/src/runtime/haskell/PGF/Morphology.hs index 894b64dfb..2da6da44e 100644 --- a/src/runtime/haskell/PGF/Morphology.hs +++ b/src/runtime/haskell/PGF/Morphology.hs @@ -11,7 +11,7 @@ import qualified Data.Map as Map import qualified Data.Set as Set import qualified Data.IntMap as IntMap import Data.Array.IArray -import Data.List (intersperse) +--import Data.List (intersperse) import Data.Char (isDigit) ---- -- these 4 definitions depend on the datastructure used diff --git a/src/runtime/haskell/PGF/Optimize.hs b/src/runtime/haskell/PGF/Optimize.hs index f04a8b04c..bfc12e097 100644 --- a/src/runtime/haskell/PGF/Optimize.hs +++ b/src/runtime/haskell/PGF/Optimize.hs @@ -7,7 +7,7 @@ module PGF.Optimize import PGF.CId import PGF.Data import PGF.Macros -import Data.Maybe +--import Data.Maybe import Data.List (mapAccumL) import Data.Array.IArray import Data.Array.MArray @@ -17,7 +17,7 @@ import qualified Data.Map as Map import qualified Data.Set as Set import qualified Data.IntSet as IntSet import qualified Data.IntMap as IntMap -import qualified GF.Data.TrieMap as TrieMap +import qualified PGF.TrieMap as TrieMap import qualified Data.List as List import Control.Monad.ST diff --git a/src/runtime/haskell/PGF/Paraphrase.hs b/src/runtime/haskell/PGF/Paraphrase.hs index 015779ace..57697b8d2 100644 --- a/src/runtime/haskell/PGF/Paraphrase.hs +++ b/src/runtime/haskell/PGF/Paraphrase.hs @@ -15,13 +15,13 @@ module PGF.Paraphrase ( import PGF.Data import PGF.Tree -import PGF.Macros (lookDef,isData) -import PGF.CId +--import PGF.Macros (lookDef,isData) +--import PGF.CId import Data.List (nub,sort,group) import qualified Data.Map as Map -import Debug.Trace ---- +--import Debug.Trace ---- paraphrase :: PGF -> Expr -> [Expr] paraphrase pgf t = nub (paraphraseN 2 pgf t) diff --git a/src/runtime/haskell/PGF/Parse.hs b/src/runtime/haskell/PGF/Parse.hs index e50f8436e..9c69940ef 100644 --- a/src/runtime/haskell/PGF/Parse.hs +++ b/src/runtime/haskell/PGF/Parse.hs @@ -15,15 +15,14 @@ module PGF.Parse import Data.Array.IArray import Data.Array.Base (unsafeAt) import Data.List (isPrefixOf, foldl') -import Data.Maybe (fromMaybe, maybe, maybeToList) +import Data.Maybe (fromMaybe, maybeToList) import qualified Data.Map as Map -import qualified GF.Data.TrieMap as TrieMap +import qualified PGF.TrieMap as TrieMap import qualified Data.IntMap as IntMap import qualified Data.IntSet as IntSet import qualified Data.Set as Set import Control.Monad -import GF.Data.SortedList import PGF.CId import PGF.Data import PGF.Expr(Tree) diff --git a/src/runtime/haskell/PGF/Printer.hs b/src/runtime/haskell/PGF/Printer.hs index 5d85255d0..66d8530f0 100644 --- a/src/runtime/haskell/PGF/Printer.hs +++ b/src/runtime/haskell/PGF/Printer.hs @@ -2,16 +2,14 @@ module PGF.Printer (ppPGF,ppCat,ppFId,ppFunId,ppSeqId,ppSeq,ppFun) where import PGF.CId import PGF.Data -import PGF.Macros - -import GF.Data.Operations +--import PGF.Macros import qualified Data.Map as Map import qualified Data.Set as Set import qualified Data.IntMap as IntMap import Data.List import Data.Array.IArray -import Data.Array.Unboxed +--import Data.Array.Unboxed import Text.PrettyPrint diff --git a/src/runtime/haskell/PGF/Probabilistic.hs b/src/runtime/haskell/PGF/Probabilistic.hs index c1fd58fc2..7f980254b 100644 --- a/src/runtime/haskell/PGF/Probabilistic.hs +++ b/src/runtime/haskell/PGF/Probabilistic.hs @@ -15,12 +15,10 @@ module PGF.Probabilistic import PGF.CId import PGF.Data import PGF.Macros -import PGF.Type -import PGF.Expr import qualified Data.Map as Map import Data.List (sortBy,partition,nub,mapAccumL) -import Data.Maybe (fromMaybe, fromJust) +import Data.Maybe (fromMaybe) --, fromJust -- | An abstract data structure which represents -- the probabilities for the different functions in a grammar. diff --git a/src/runtime/haskell/PGF/SortTop.hs b/src/runtime/haskell/PGF/SortTop.hs index 42b5d36d0..5bebd89d6 100644 --- a/src/runtime/haskell/PGF/SortTop.hs +++ b/src/runtime/haskell/PGF/SortTop.hs @@ -4,7 +4,6 @@ module PGF.SortTop import PGF.CId import PGF.Data -import PGF.Expr import qualified Data.Map as Map import qualified Data.Set as Set import Data.Maybe diff --git a/src/runtime/haskell/PGF/Tokenizer.hs b/src/runtime/haskell/PGF/Tokenizer.hs index 101b8fb06..ec75853aa 100644 --- a/src/runtime/haskell/PGF/Tokenizer.hs +++ b/src/runtime/haskell/PGF/Tokenizer.hs @@ -9,7 +9,7 @@ module PGF.Tokenizer ( mkTokenizer ) where -import Data.List (intercalate) +--import Data.List (intercalate) --import Test.QuickCheck import FST.TransducerInterface import PGF.Morphology (fullFormLexicon, buildMorpho) diff --git a/src/runtime/haskell/PGF/Tree.hs b/src/runtime/haskell/PGF/Tree.hs index 62680e29e..96b9979f4 100644 --- a/src/runtime/haskell/PGF/Tree.hs +++ b/src/runtime/haskell/PGF/Tree.hs @@ -7,11 +7,11 @@ module PGF.Tree import PGF.CId import PGF.Expr hiding (Tree) -import Data.Char +--import Data.Char import Data.List as List -import Control.Monad -import qualified Text.PrettyPrint as PP -import qualified Text.ParserCombinators.ReadP as RP +--import Control.Monad +--import qualified Text.PrettyPrint as PP +--import qualified Text.ParserCombinators.ReadP as RP -- | The tree is an evaluated expression in the abstract syntax -- of the grammar. The type is especially restricted to not diff --git a/src/compiler/GF/Data/TrieMap.hs b/src/runtime/haskell/PGF/TrieMap.hs similarity index 96% rename from src/compiler/GF/Data/TrieMap.hs rename to src/runtime/haskell/PGF/TrieMap.hs index 996d91ec7..f0383941a 100644 --- a/src/compiler/GF/Data/TrieMap.hs +++ b/src/runtime/haskell/PGF/TrieMap.hs @@ -1,4 +1,4 @@ -module GF.Data.TrieMap +module PGF.TrieMap ( TrieMap , empty diff --git a/src/runtime/haskell/PGF/Type.hs b/src/runtime/haskell/PGF/Type.hs index 7114dda79..1d6884a7c 100644 --- a/src/runtime/haskell/PGF/Type.hs +++ b/src/runtime/haskell/PGF/Type.hs @@ -1,4 +1,4 @@ -module PGF.Type ( Type(..), Hypo, +module PGF.Type ( Type(..), Hypo, CId, readType, showType, mkType, mkHypo, mkDepHypo, mkImplHypo, unType, @@ -10,7 +10,7 @@ import Data.Char import Data.List import qualified Text.PrettyPrint as PP import qualified Text.ParserCombinators.ReadP as RP -import Control.Monad +--import Control.Monad -- | To read a type from a 'String', use 'readType'. data Type = diff --git a/src/runtime/haskell/PGF/TypeCheck.hs b/src/runtime/haskell/PGF/TypeCheck.hs index 268742b94..141189193 100644 --- a/src/runtime/haskell/PGF/TypeCheck.hs +++ b/src/runtime/haskell/PGF/TypeCheck.hs @@ -30,7 +30,7 @@ module PGF.TypeCheck ( checkType, checkExpr, inferExpr import PGF.Data import PGF.Expr hiding (eval, apply, applyValue, value2expr) import qualified PGF.Expr as Expr -import PGF.Macros (typeOfHypo, cidInt, cidFloat, cidString) +import PGF.Macros (cidInt, cidFloat, cidString) -- typeOfHypo import PGF.CId import Data.Map as Map @@ -38,7 +38,7 @@ import Data.IntMap as IntMap import Data.Maybe as Maybe import Data.List as List import Control.Monad -import Control.Monad.Identity +--import Control.Monad.Identity import Control.Monad.State import Control.Monad.Error import Text.PrettyPrint diff --git a/src/runtime/haskell/PGF/Utilities.hs b/src/runtime/haskell/PGF/Utilities.hs new file mode 100644 index 000000000..5af5b9b5d --- /dev/null +++ b/src/runtime/haskell/PGF/Utilities.hs @@ -0,0 +1,20 @@ +-- | Basic utilities +module PGF.Utilities where +import Data.Set(empty,member,insert) + + +-- | Like 'nub', but O(n log n) instead of O(n^2), since it uses a set to lookup previous things. +-- The result list is stable (the elements are returned in the order they occur), and lazy. +-- Requires that the list elements can be compared by Ord. +-- Code ruthlessly taken from http://hpaste.org/54411 +nub' :: Ord a => [a] -> [a] +nub' = loop empty + where loop _ [] = [] + loop seen (x : xs) + | member x seen = loop seen xs + | otherwise = x : loop (insert x seen) xs + + +-- | Replace all occurences of an element by another element. +replace :: Eq a => a -> a -> [a] -> [a] +replace x y = map (\z -> if z == x then y else z) diff --git a/src/runtime/haskell/PGF/VisualizeTree.hs b/src/runtime/haskell/PGF/VisualizeTree.hs index ed028feb8..855e40d75 100644 --- a/src/runtime/haskell/PGF/VisualizeTree.hs +++ b/src/runtime/haskell/PGF/VisualizeTree.hs @@ -21,24 +21,24 @@ module PGF.VisualizeTree , getDepLabels ) where -import PGF.CId (CId,wildCId,showCId,ppCId,pCId,mkCId) +import PGF.CId (wildCId,showCId,ppCId,mkCId) --CId,pCId, import PGF.Data -import PGF.Expr (showExpr, Tree) +import PGF.Expr (Tree) -- showExpr import PGF.Linearize -import PGF.Macros (lookValCat, lookMap, - BracketedString(..), BracketedTokn(..), flattenBracketedString) +import PGF.Macros (lookValCat, BracketedString(..)) + --lookMap, BracketedTokn(..), flattenBracketedString import qualified Data.Map as Map -import qualified Data.IntMap as IntMap +--import qualified Data.IntMap as IntMap import Data.List (intersperse,nub,mapAccumL,find) -import Data.Char (isDigit) +--import Data.Char (isDigit) import Data.Maybe (fromMaybe) import Text.PrettyPrint -import Data.Array.IArray -import Control.Monad -import qualified Data.Set as Set -import qualified Text.ParserCombinators.ReadP as RP +--import Data.Array.IArray +--import Control.Monad +--import qualified Data.Set as Set +--import qualified Text.ParserCombinators.ReadP as RP data GraphvizOptions = GraphvizOptions {noLeaves :: Bool,