mirror of
https://github.com/GrammaticalFramework/gf-core.git
synced 2026-04-15 15:59:32 -06:00
45 lines
1.3 KiB
Haskell
45 lines
1.3 KiB
Haskell
----------------------------------------------------------------------
|
|
-- |
|
|
-- Module : ConvertGrammar
|
|
-- Maintainer : PL
|
|
-- Stability : (stable)
|
|
-- Portability : (portable)
|
|
--
|
|
-- > CVS $Date: 2005/03/29 11:17:54 $
|
|
-- > CVS $Author: peb $
|
|
-- > CVS $Revision: 1.2 $
|
|
--
|
|
-- All (?) grammar conversions which are used in GF
|
|
-----------------------------------------------------------------------------
|
|
|
|
|
|
module GF.Parsing.ConvertGrammar
|
|
(pInfo, emptyPInfo,
|
|
module GF.Parsing.GrammarTypes
|
|
) where
|
|
|
|
import GFC (CanonGrammar)
|
|
import MkGFC (grammar2canon)
|
|
import GF.Parsing.GrammarTypes
|
|
import Ident (Ident(..))
|
|
import Option
|
|
import GF.System.Tracing
|
|
|
|
-- import qualified GF.Parsing.FiniteTypes.Calc as Fin
|
|
import qualified GF.Parsing.ConvertGFCtoMCFG as G2M
|
|
import qualified GF.Parsing.ConvertMCFGtoCFG as M2C
|
|
import qualified GF.Parsing.MCFGrammar as MCFG
|
|
import qualified GF.Parsing.CFGrammar as CFG
|
|
|
|
pInfo :: Options -> CanonGrammar -> Ident -> PInfo
|
|
pInfo opts canon lng = PInfo mcfg cfg mcfp cfp
|
|
where mcfg = G2M.convertGrammar cnv (canon, lng)
|
|
cnv = maybe "nondet" id $ getOptVal opts gfcConversion
|
|
cfg = M2C.convertGrammar mcfg
|
|
mcfp = MCFG.pInfo mcfg
|
|
cfp = CFG.pInfo cfg
|
|
|
|
emptyPInfo :: PInfo
|
|
emptyPInfo = PInfo [] [] (MCFG.pInfo []) (CFG.pInfo [])
|
|
|