mirror of
https://github.com/GrammaticalFramework/gf-core.git
synced 2026-04-09 04:59:31 -06:00
22 lines
784 B
Haskell
22 lines
784 B
Haskell
module GF.Compile.API (batchCompile, compileToGFCC) where
|
|
|
|
import GF.Devel.Compile
|
|
import GF.Devel.GrammarToGFCC
|
|
import GF.GFCC.OptimizeGFCC
|
|
import GF.GFCC.CheckGFCC
|
|
import GF.GFCC.DataGFCC
|
|
import GF.Infra.Option
|
|
import GF.Devel.UseIO
|
|
|
|
-- | Compiles a number of source files and builds a 'GFCC' structure for them.
|
|
compileToGFCC :: Options -> [FilePath] -> IOE GFCC
|
|
compileToGFCC opts fs =
|
|
do gr <- batchCompile opts fs
|
|
let name = justModuleName (last fs)
|
|
gc1 <- putPointE opts "linking ... " $
|
|
let (abs,gc0) = mkCanon2gfcc opts name gr
|
|
in ioeIO $ checkGFCCio gc0
|
|
let opt = if oElem (iOpt "noopt") opts then id else optGFCC
|
|
par = if oElem (iOpt "noparse") opts then id else addParsers
|
|
return (par (opt gc1))
|