summaryrefslogtreecommitdiff
path: root/src/GF/Conversion
diff options
context:
space:
mode:
authorkr.angelov <kr.angelov@gmail.com>2007-09-24 08:12:11 +0000
committerkr.angelov <kr.angelov@gmail.com>2007-09-24 08:12:11 +0000
commit6aacec3591e0e6e1d3ddca4605f6467e302cb65f (patch)
treeb18525e17809f1bbef96c6778038085eb7bd8ea0 /src/GF/Conversion
parent0cd5e62e836e8cb8d2b49f76bfb899081aa2366f (diff)
remove FTypes module and move all definitions to Formalism.FCFG
Diffstat (limited to 'src/GF/Conversion')
-rw-r--r--src/GF/Conversion/FTypes.hs63
-rw-r--r--src/GF/Conversion/GFC.hs3
-rw-r--r--src/GF/Conversion/SimpleToFCFG.hs5
3 files changed, 2 insertions, 69 deletions
diff --git a/src/GF/Conversion/FTypes.hs b/src/GF/Conversion/FTypes.hs
deleted file mode 100644
index 9409fc4ee..000000000
--- a/src/GF/Conversion/FTypes.hs
+++ /dev/null
@@ -1,63 +0,0 @@
-module GF.Conversion.FTypes where
-
-import qualified GF.Canon.GFCC.AbsGFCC as AbsGFCC (CId(..))
-
-import GF.Formalism.FCFG
-import GF.Formalism.Utilities
-import GF.Infra.PrintClass
-import GF.Data.Assoc
-
-import Control.Monad (foldM)
-import Data.Array
-
-----------------------------------------------------------------------
--- * basic (leaf) types
-
--- ** input tokens
-
----- type Token = String ---- inlined in FGrammar and FRule
-
-
-----------------------------------------------------------------------
--- * fast nonerasing MCFG
-
-type FIndex = Int
-type FPath = [FIndex]
-type FName = NameProfile AbsGFCC.CId
-type FGrammar = FCFGrammar FCat FName String
-type FRule = FCFRule FCat FName String
-data FCat = FCat {-# UNPACK #-} !Int AbsGFCC.CId [FPath] [(FPath,FIndex)]
-
-initialFCat :: AbsGFCC.CId -> FCat
-initialFCat cat = FCat 0 cat [] []
-
-fcatString = FCat (-1) (AbsGFCC.CId "String") [[0]] []
-fcatInt = FCat (-2) (AbsGFCC.CId "Int") [[0]] []
-fcatFloat = FCat (-3) (AbsGFCC.CId "Float") [[0]] []
-
-fcat2cid :: FCat -> AbsGFCC.CId
-fcat2cid (FCat _ c _ _) = c
-
-instance Eq FCat where
- (FCat id1 _ _ _) == (FCat id2 _ _ _) = id1 == id2
-
-instance Ord FCat where
- compare (FCat id1 _ _ _) (FCat id2 _ _ _) = compare id1 id2
-
-instance Print AbsGFCC.CId where
- prt (AbsGFCC.CId s) = s
-
-isCoercionF :: FName -> Bool
-isCoercionF (Name fun [Unify [0]]) = fun == AbsGFCC.CId "_"
-isCoercionF _ = False
-
-
-----------------------------------------------------------------------
--- * pretty-printing
-
-instance Print FCat where
- prt (FCat _ (AbsGFCC.CId cat) rcs tcs) = cat ++ "{" ++
- prtSep ";" ([prt path | path <- rcs] ++
- [prt path ++ "=" ++ prt term | (path,term) <- tcs])
- ++ "}"
-
diff --git a/src/GF/Conversion/GFC.hs b/src/GF/Conversion/GFC.hs
index 5abfe17c0..354bdea65 100644
--- a/src/GF/Conversion/GFC.hs
+++ b/src/GF/Conversion/GFC.hs
@@ -13,7 +13,7 @@
module GF.Conversion.GFC
(module GF.Conversion.GFC,
- SGrammar, EGrammar, MGrammar, FGrammar, CGrammar) where
+ SGrammar, EGrammar, MGrammar, CGrammar) where
import GF.Infra.Option
import GF.Canon.GFC (CanonGrammar)
@@ -25,7 +25,6 @@ import GF.Formalism.SimpleGFC (decl2cat)
import GF.Formalism.CFG (CFRule(..))
import GF.Formalism.Utilities (symbol, name2fun)
import GF.Conversion.Types
-import GF.Conversion.FTypes
import qualified GF.Conversion.GFCtoSimple as G2S
import qualified GF.Conversion.SimpleToFinite as S2Fin
diff --git a/src/GF/Conversion/SimpleToFCFG.hs b/src/GF/Conversion/SimpleToFCFG.hs
index f5d771298..fc0177900 100644
--- a/src/GF/Conversion/SimpleToFCFG.hs
+++ b/src/GF/Conversion/SimpleToFCFG.hs
@@ -21,7 +21,6 @@ import Control.Monad
import GF.Formalism.Utilities
import GF.Formalism.FCFG
-import GF.Conversion.FTypes
import GF.Canon.GFCC.AbsGFCC
import GF.Canon.GFCC.DataGFCC
@@ -38,9 +37,7 @@ import Data.Maybe
----------------------------------------------------------------------
-- main conversion function
-type FToken = String
-
-convertGrammar :: GFCC -> [(CId,FCFGrammar FCat FName FToken)]
+convertGrammar :: GFCC -> [(CId,FGrammar)]
convertGrammar gfcc = [(cncname,convert abs_defs conc) |
cncname <- cncnames gfcc, conc <- Map.lookup cncname (concretes gfcc)]
where