1
0
forked from GitHub/gf-core

Removed on-demand parser generation from the PGF interpreter.

This commit is contained in:
bjorn
2008-10-16 10:18:54 +00:00
parent 8d832b5b9a
commit d698a006cc
2 changed files with 1 additions and 13 deletions

View File

@@ -587,10 +587,6 @@ library
GF.Data.Assoc
GF.Data.ErrM
GF.Text.UTF8
-- needed only for the on demand generation of PMCFG
GF.Data.BacktrackM
GF.Compile.GenerateFCFG
GF.Compile.GeneratePMCFG
executable gf
build-depends: base,

View File

@@ -69,7 +69,6 @@ import PGF.Raw.Parse
import PGF.Raw.Print (printTree)
import PGF.Parsing.FCFG
import qualified PGF.Parsing.FCFG.Incremental as Incremental
import qualified GF.Compile.GeneratePMCFG as PMCFG
import GF.Text.UTF8
import GF.Data.ErrM
@@ -205,14 +204,7 @@ complete :: PGF -> Language -> Category -> String
readPGF f = do
s <- readFile f >>= return . decodeUTF8 -- pgf is in UTF8, internal in unicode
g <- parseGrammar s
return $! addParsers $ toPGF g
-- Adds parsers for all concretes that don't have a parser.
addParsers :: PGF -> PGF
addParsers pgf = pgf { concretes = Map.map conv (concretes pgf) }
where
conv cnc | isJust (parser cnc) = cnc
| otherwise = cnc { parser = Just (PMCFG.convertConcrete (abstract pgf) cnc) }
return $! toPGF g
linearize pgf lang = concat . take 1 . PGF.Linearize.linearizes pgf (mkCId lang)