module Compiler.Utils where import Compiler.Types import Language.Types import System.FilePath (()) import Types initialState :: PureCompiler CompilerState initialState = do override <- asks conf_compile_kind return $ CompilerState { state_deployment_kind_override = override , state_into = "" , state_outof_prefix = [] } addDeployment :: Deployment -> InternalCompiler () addDeployment d = tell ([d], []) addCardRef :: CardReference -> InternalCompiler () addCardRef c = tell ([], [c]) sources :: FilePath -> PrefixPart sources fp@('.':f) = Alts [fp, f] sources fp = Literal fp resolvePrefix :: CompilerPrefix -> [FilePath] resolvePrefix [] = [] resolvePrefix [Literal s] = [s] resolvePrefix [Alts ds] = ds resolvePrefix ((Literal s):ps) = do rest <- resolvePrefix ps return $ s rest resolvePrefix ((Alts as):ps) = do a <- as rest <- resolvePrefix ps return $ a rest