{-# LANGUAGE OverloadedStrings #-} -- | Default values. module Fay.Compiler.Defaults where import Fay.Compiler.Config import Fay.Compiler.Decl (compileDecls) import Fay.Compiler.Exp (compileLit) import Fay.Types import Data.Default import Data.Map as M import Data.Set as S import Language.Haskell.Exts.Syntax import Paths_fay -- | The default compiler reader value. defaultCompileReader :: CompileConfig -> IO CompileReader defaultCompileReader config = do srcdir <- faySourceDir return CompileReader { readerConfig = addConfigDirectoryInclude Nothing srcdir config , readerCompileLit = compileLit , readerCompileDecls = compileDecls } -- | The default compiler state. defaultCompileState :: IO CompileState defaultCompileState = do types <- getDataFileName "src/Language/Fay/Types.hs" return CompileState { _stateExports = M.empty , stateModuleName = ModuleName "Main" , stateRecordTypes = [] , stateRecords = [] , stateNewtypes = [] , stateImported = [("Fay.Types",types)] , stateNameDepth = 1 , stateLocalScope = S.empty , stateModuleScope = def , stateModuleScopes = M.empty , stateJsModulePaths = S.empty }