diff options
| author | kr_angelov <kr_angelov@gmail.com> | 2006-12-28 16:45:57 +0000 |
|---|---|---|
| committer | kr_angelov <kr_angelov@gmail.com> | 2006-12-28 16:45:57 +0000 |
| commit | 3f183ce821b3f0188dbe61738fb9b63c6423f655 (patch) | |
| tree | b532f63fc0cacd035d8e8fde4ffe11dd3df158c0 /src/GF/Conversion/GFC.hs | |
| parent | 041c00abf3bfbbc770d52b23f9e27598f25f1f63 (diff) | |
GFCC to FCFG conversion
Diffstat (limited to 'src/GF/Conversion/GFC.hs')
| -rw-r--r-- | src/GF/Conversion/GFC.hs | 24 |
1 files changed, 7 insertions, 17 deletions
diff --git a/src/GF/Conversion/GFC.hs b/src/GF/Conversion/GFC.hs index 2fff4be26..dcaa784f3 100644 --- a/src/GF/Conversion/GFC.hs +++ b/src/GF/Conversion/GFC.hs @@ -18,6 +18,7 @@ module GF.Conversion.GFC import GF.Infra.Option import GF.Canon.GFC (CanonGrammar) import GF.Infra.Ident (Ident, identC) +import qualified GF.Infra.Modules as M import GF.Formalism.GCFG (Rule(..), Abstract(..)) import GF.Formalism.SimpleGFC (decl2cat) @@ -31,23 +32,22 @@ import qualified GF.Conversion.RemoveSingletons as RemSing import qualified GF.Conversion.RemoveErasing as RemEra import qualified GF.Conversion.RemoveEpsilon as RemEps import qualified GF.Conversion.SimpleToMCFG as S2M -import qualified GF.Conversion.SimpleToFCFG as S2FM ---import qualified GF.Conversion.MCFGtoFCFG as M2FM import qualified GF.Conversion.MCFGtoCFG as M2C import GF.Infra.Print import GF.System.Tracing +import qualified Debug.Trace as D ---------------------------------------------------------------------- -- * GFC -> MCFG & CFG, using options to decide which conversion is used -convertGFC :: Options -> (CanonGrammar, Ident) - -> (SGrammar, (EGrammar, (MGrammar, FGrammar, CGrammar))) +convertGFC :: Options -> (CanonGrammar, Ident) + -> (SGrammar, (EGrammar, (MGrammar, CGrammar))) convertGFC opts = \g -> let s = g2s g e = s2e s m = e2m e - in trace2 "Options" (show opts) (s, (e, (m, s2fm s, e2c e))) + in D.trace (show ((M.greatestAbstract (fst g),snd g))) $ trace2 "Options" (show opts) (s, (e, (m, e2c e))) where e2c = M2C.convertGrammar e2m = case getOptVal opts firstCat of Just cat -> flip erasing [identC cat] @@ -57,8 +57,6 @@ convertGFC opts = \g -> let s = g2s g Just "finite-strict" -> strict Just "epsilon" -> epsilon . nondet _ -> nondet - s2fm= S2FM.convertGrammar - m2fm= undefined --M2FM.convertGrammar g2s = case getOptVal opts gfcConversion of Just "finite" -> finite . simple Just "finite2" -> finite . finite . simple @@ -82,20 +80,12 @@ gfc2simple opts = fst . convertGFC opts gfc2mcfg :: Options -> (CanonGrammar, Ident) -> MGrammar gfc2mcfg opts g = mcfg where - (mcfg, _, _) = snd (snd (convertGFC opts g)) + (mcfg, _) = snd (snd (convertGFC opts g)) gfc2cfg :: Options -> (CanonGrammar, Ident) -> CGrammar gfc2cfg opts g = cfg where - (_, _, cfg) = snd (snd (convertGFC opts g)) - -gfc2fcfg :: Options -> (CanonGrammar, Ident) -> FGrammar -gfc2fcfg opts g = fcfg - where - (_, fcfg, _) = snd (snd (convertGFC opts g)) - -mcfg2fcfg :: MGrammar -> FGrammar -mcfg2fcfg = undefined --M2FM.convertGrammar + (_, cfg) = snd (snd (convertGFC opts g)) ---------------------------------------------------------------------- |
