module GF.CompilerAPI where

-- started by AR 28/1/2011 - STILL DUMMY

import GF.Compile
-- SHOULD IMPORT MUCH LESS

-- the main compiler passes
import GF.Compile.GetGrammar
import GF.Compile.Rename
import GF.Compile.CheckGrammar
import GF.Compile.Optimize
import GF.Compile.SubExOpt
import GF.Compile.GrammarToPGF
import GF.Compile.ReadFiles
import GF.Compile.Update
import GF.Compile.Refresh

import GF.Grammar.Grammar
import GF.Grammar.Lookup
import GF.Grammar.Printer
import GF.Grammar.Binary

import GF.Infra.Ident
import GF.Infra.Option
import GF.Infra.Modules
import GF.Infra.UseIO
import GF.Infra.CheckM

import GF.Data.Operations

import Control.Monad
import System.IO
import System.Directory
import System.FilePath
import qualified Data.Map as Map
import qualified Data.Set as Set
import Data.List(nub)
import Data.Maybe (isNothing)
import Data.Binary
import qualified Data.ByteString.Char8 as BS
import GF.Text.Pretty

import PGF.CId
import PGF.Data
import PGF.Macros
import PGF.Optimize
import PGF.Probabilistic

-- the main types

type GF  = GF.Grammar.SourceGrammar
type PGF = PGF.PGF

-- some API functions - should take Options and perhaps some Env; return error msgs

exBasedGF :: FilePath -> IO GF

multiGF   :: FilePath -> IO GF

getGF     :: FilePath -> IO GF

cfGF      :: FilePath -> IO GF

ebnfGF    :: FilePath -> IO GF

emitGFO   :: GF -> IO ()

readGFO   :: FilePath -> IO GF

gf2pgf    :: GF -> PGF

emitPGF   :: PGF -> IO ()

readPGF   :: FilePath -> IO PGF

emitJSGF  :: PGF -> IO ()

emitSLF   :: PGF -> IO ()



exBasedGF = error "no exBasedGF"

multiGF = error "no multiGF"

getGF = error "no getGF"

cfGF = error "no cfGF"

ebnfGF = error "no ebnfGF"

emitGFO = error "no emitGFO"

readGFO = error "no readGFO"

gf2pgf = error "no gf2pgf" 

emitPGF = error "no emitPGF"

readPGF = error "no readPGF"

emitJSGF = error "no emitJSGF"

emitSLF = error "no emitSLF"


