1
0
forked from GitHub/gf-core

Replace all the different ErrM.hs modules with GF.Data.ErrM.

This commit is contained in:
bringert
2007-12-20 17:34:12 +00:00
parent 070ccd045d
commit 3eba035691
23 changed files with 22 additions and 117 deletions

View File

@@ -18,7 +18,7 @@ import GF.GFCC.Macros
import GF.Devel.PrintGFCC import GF.Devel.PrintGFCC
import GF.GFCC.DataGFCC ---- import GF.GFCC.DataGFCC ----
import GF.Command.ErrM ---- import GF.Data.ErrM ----
import qualified Data.Map as Map import qualified Data.Map as Map

View File

@@ -1,26 +0,0 @@
-- BNF Converter: Error Monad
-- Copyright (C) 2004 Author: Aarne Ranta
-- This file comes with NO WARRANTY and may be used FOR ANY PURPOSE.
module GF.Command.ErrM where
-- the Error monad: like Maybe type with error msgs
import Control.Monad (MonadPlus(..), liftM)
data Err a = Ok a | Bad String
deriving (Read, Show, Eq, Ord)
instance Monad Err where
return = Ok
fail = Bad
Ok a >>= f = f a
Bad s >>= f = Bad s
instance Functor Err where
fmap = liftM
instance MonadPlus Err where
mzero = Bad "Err.mzero"
mplus (Bad _) y = y
mplus x _ = x

View File

@@ -11,7 +11,7 @@ import GF.GFCC.API
import GF.GFCC.Macros import GF.GFCC.Macros
import GF.GFCC.DataGFCC import GF.GFCC.DataGFCC
import GF.Command.ErrM ---- import GF.Data.ErrM ----
import qualified Data.Map as Map import qualified Data.Map as Map

View File

@@ -6,7 +6,7 @@ import GF.GFCC.Macros
import qualified GF.Command.ParGFShell as P import qualified GF.Command.ParGFShell as P
import GF.Command.PrintGFShell import GF.Command.PrintGFShell
import GF.Command.AbsGFShell import GF.Command.AbsGFShell
import GF.Command.ErrM import GF.Data.ErrM
pTree :: String -> Exp pTree :: String -> Exp
pTree s = case P.pTree (P.myLexer s) of pTree s = case P.pTree (P.myLexer s) of

View File

@@ -3,7 +3,7 @@
module GF.Command.ParGFShell where module GF.Command.ParGFShell where
import GF.Command.AbsGFShell import GF.Command.AbsGFShell
import GF.Command.LexGFShell import GF.Command.LexGFShell
import GF.Command.ErrM import GF.Data.ErrM
#if __GLASGOW_HASKELL__ >= 503 #if __GLASGOW_HASKELL__ >= 503
import Data.Array import Data.Array
#else #else

View File

@@ -16,5 +16,5 @@ module GF.Data.ErrM (
module GF.Data.Operations module GF.Data.Operations
) where ) where
import GF.Data.Operations import GF.Data.Operations (Err(..))

View File

@@ -12,7 +12,7 @@ import GF.GFCC.Raw.ConvertGFCC
import GF.Devel.UseIO import GF.Devel.UseIO
import GF.Infra.Option import GF.Infra.Option
import GF.GFCC.API import GF.GFCC.API
import GF.GFCC.ErrM import GF.Data.ErrM
mainGFC :: [String] -> IO () mainGFC :: [String] -> IO ()
mainGFC xx = do mainGFC xx = do

View File

@@ -12,7 +12,7 @@ import GF.GFCC.Raw.ConvertGFCC
import GF.Devel.UseIO import GF.Devel.UseIO
import GF.Infra.Option import GF.Infra.Option
import GF.GFCC.API import GF.GFCC.API
import GF.GFCC.ErrM import GF.Data.ErrM
mainGFC :: [String] -> IO () mainGFC :: [String] -> IO ()
mainGFC xx = do mainGFC xx = do

View File

@@ -24,7 +24,7 @@ import GF.GFCC.Raw.ConvertGFCC
import GF.GFCC.Raw.ParGFCCRaw import GF.GFCC.Raw.ParGFCCRaw
import GF.Command.PPrTree import GF.Command.PPrTree
import GF.GFCC.ErrM import GF.Data.ErrM
import GF.Parsing.FCFG import GF.Parsing.FCFG
import GF.Conversion.SimpleToFCFG (convertGrammar) import GF.Conversion.SimpleToFCFG (convertGrammar)

View File

@@ -3,7 +3,7 @@ module GF.GFCC.CheckGFCC (checkGFCC, checkGFCCio, checkGFCCmaybe) where
import GF.GFCC.CId import GF.GFCC.CId
import GF.GFCC.Macros import GF.GFCC.Macros
import GF.GFCC.DataGFCC import GF.GFCC.DataGFCC
import GF.GFCC.ErrM import GF.Data.ErrM
import qualified Data.Map as Map import qualified Data.Map as Map
import Control.Monad import Control.Monad

View File

@@ -1,26 +0,0 @@
-- BNF Converter: Error Monad
-- Copyright (C) 2004 Author: Aarne Ranta
-- This file comes with NO WARRANTY and may be used FOR ANY PURPOSE.
module GF.GFCC.ErrM where
-- the Error monad: like Maybe type with error msgs
import Control.Monad (MonadPlus(..), liftM)
data Err a = Ok a | Bad String
deriving (Read, Show, Eq, Ord)
instance Monad Err where
return = Ok
fail = Bad
Ok a >>= f = f a
Bad s >>= f = Bad s
instance Functor Err where
fmap = liftM
instance MonadPlus Err where
mzero = Bad "Err.mzero"
mplus (Bad _) y = y
mplus x _ = x

View File

@@ -1,26 +0,0 @@
-- BNF Converter: Error Monad
-- Copyright (C) 2004 Author: Aarne Ranta
-- This file comes with NO WARRANTY and may be used FOR ANY PURPOSE.
module GF.GFCC.Raw.ErrM where
-- the Error monad: like Maybe type with error msgs
import Control.Monad (MonadPlus(..), liftM)
data Err a = Ok a | Bad String
deriving (Read, Show, Eq, Ord)
instance Monad Err where
return = Ok
fail = Bad
Ok a >>= f = f a
Bad s >>= f = Bad s
instance Functor Err where
fmap = liftM
instance MonadPlus Err where
mzero = Bad "Err.mzero"
mplus (Bad _) y = y
mplus x _ = x

View File

@@ -3,7 +3,7 @@
module GF.GFCC.Raw.ParGFCCRaw (parseGrammar) where module GF.GFCC.Raw.ParGFCCRaw (parseGrammar) where
import GF.GFCC.Raw.AbsGFCCRaw import GF.GFCC.Raw.AbsGFCCRaw
import GF.GFCC.Raw.LexGFCCRaw import GF.GFCC.Raw.LexGFCCRaw
import GF.GFCC.Raw.ErrM import GF.Data.ErrM
#if __GLASGOW_HASKELL__ >= 503 #if __GLASGOW_HASKELL__ >= 503
import Data.Array import Data.Array
#else #else

View File

@@ -4,7 +4,7 @@
module GF.GFCC.Raw.ParGFCCRaw (parseGrammar) where module GF.GFCC.Raw.ParGFCCRaw (parseGrammar) where
import GF.GFCC.Raw.AbsGFCCRaw import GF.GFCC.Raw.AbsGFCCRaw
import GF.GFCC.Raw.LexGFCCRaw import GF.GFCC.Raw.LexGFCCRaw
import GF.GFCC.Raw.ErrM import GF.Data.ErrM
} }
%name pGrammar Grammar %name pGrammar Grammar

View File

@@ -3,7 +3,7 @@ module GF.GFCC.SkelGFCC where
-- Haskell module generated by the BNF converter -- Haskell module generated by the BNF converter
import GF.GFCC.AbsGFCC import GF.GFCC.AbsGFCC
import GF.GFCC.ErrM import GF.Data.ErrM
type Result = Err String type Result = Err String
failure :: Show a => a -> Result failure :: Show a => a -> Result

View File

@@ -14,7 +14,7 @@ import GF.GFCC.AbsGFCC
import GF.GFCC.ErrM import GF.Data.ErrM
type ParseFun a = [Token] -> Err a type ParseFun a = [Token] -> Err a

View File

@@ -1,16 +0,0 @@
-- BNF Converter: Error Monad
-- Copyright (C) 2004 Author: Aarne Ranta
-- This file comes with NO WARRANTY and may be used FOR ANY PURPOSE.
module GF.JavaScript.ErrM where
-- the Error monad: like Maybe type with error msgs
data Err a = Ok a | Bad String
deriving (Read, Show, Eq)
instance Monad Err where
return = Ok
fail = Bad
Ok a >>= f = f a
Bad s >>= f = Bad s

View File

@@ -3,7 +3,7 @@
module GF.JavaScript.ParJS where module GF.JavaScript.ParJS where
import GF.JavaScript.AbsJS import GF.JavaScript.AbsJS
import GF.JavaScript.LexJS import GF.JavaScript.LexJS
import GF.JavaScript.ErrM import GF.Data.ErrM
#if __GLASGOW_HASKELL__ >= 503 #if __GLASGOW_HASKELL__ >= 503
import Data.Array import Data.Array
#else #else

View File

@@ -4,7 +4,7 @@
module GF.JavaScript.ParJS where module GF.JavaScript.ParJS where
import GF.JavaScript.AbsJS import GF.JavaScript.AbsJS
import GF.JavaScript.LexJS import GF.JavaScript.LexJS
import GF.JavaScript.ErrM import GF.Data.ErrM
} }
%name pProgram Program %name pProgram Program

View File

@@ -3,7 +3,7 @@ module GF.JavaScript.SkelJS where
-- Haskell module generated by the BNF converter -- Haskell module generated by the BNF converter
import GF.JavaScript.AbsJS import GF.JavaScript.AbsJS
import GF.JavaScript.ErrM import GF.Data.ErrM
type Result = Err String type Result = Err String
failure :: Show a => a -> Result failure :: Show a => a -> Result

View File

@@ -14,7 +14,7 @@ import GF.JavaScript.AbsJS
import GF.JavaScript.ErrM import GF.Data.ErrM
type ParseFun a = [Token] -> Err a type ParseFun a = [Token] -> Err a

View File

@@ -24,7 +24,7 @@ import GF.Parsing.FCFG.PInfo
import GF.GFCC.DataGFCC import GF.GFCC.DataGFCC
import GF.GFCC.CId import GF.GFCC.CId
import GF.GFCC.Macros import GF.GFCC.Macros
import GF.GFCC.ErrM import GF.Data.ErrM
import qualified Data.Map as Map import qualified Data.Map as Map

View File

@@ -19,14 +19,13 @@ import GF.System.Tracing
import GF.Infra.Print import GF.Infra.Print
import qualified GF.Grammar.PrGrammar as PrGrammar import qualified GF.Grammar.PrGrammar as PrGrammar
import GF.Data.Operations (Err(..)) import GF.Data.ErrM
import qualified GF.Grammar.Grammar as Grammar import qualified GF.Grammar.Grammar as Grammar
import qualified GF.Grammar.Macros as Macros import qualified GF.Grammar.Macros as Macros
import qualified GF.Canon.AbsGFC as AbsGFC import qualified GF.Canon.AbsGFC as AbsGFC
import qualified GF.GFCC.DataGFCC as AbsGFCC import qualified GF.GFCC.DataGFCC as AbsGFCC
import GF.GFCC.CId import GF.GFCC.CId
import qualified GF.GFCC.ErrM as ErrM
import qualified GF.Infra.Ident as Ident import qualified GF.Infra.Ident as Ident
import GF.CF.CFIdent (CFCat, cfCat2Ident, CFTok, wordsCFTok, prCFTok) import GF.CF.CFIdent (CFCat, cfCat2Ident, CFTok, wordsCFTok, prCFTok)
@@ -73,7 +72,7 @@ parse :: String -- ^ parsing algorithm (mcfg or cfg)
-> Ident.Ident -- ^ abstract module name -> Ident.Ident -- ^ abstract module name
-> CFCat -- ^ starting category -> CFCat -- ^ starting category
-> [CFTok] -- ^ input tokens -> [CFTok] -- ^ input tokens
-> GF.Data.Operations.Err [Grammar.Term] -- ^ resulting GF terms -> Err [Grammar.Term] -- ^ resulting GF terms
-- parsing via CFG -- parsing via CFG
@@ -137,8 +136,8 @@ parse "f" strategy pinfo abs startCat inString =
let Ident.IC x = cfCat2Ident startCat let Ident.IC x = cfCat2Ident startCat
cat' = CId x cat' = CId x
in case PF.parseFCF strategy (fcfPInfo pinfo) cat' (map prCFTok inString) of in case PF.parseFCF strategy (fcfPInfo pinfo) cat' (map prCFTok inString) of
ErrM.Ok es -> Ok (map (exp2term abs) es) Ok es -> Ok (map (exp2term abs) es)
ErrM.Bad msg -> Bad msg Bad msg -> Bad msg
-- error parser: -- error parser: