uhc-util-0.1.5.1: UHC utilities

Safe HaskellNone
LanguageHaskell98

UHC.Util.CompileRun2

Description

Combinators for a compile run. 20150218: will replace CompileRun, or this one will overwrite CompileRun, in due time

Synopsis

Documentation

class (CompileModName nm, CompileUnitState state, CompileUnit unit nm loc state, CompileRunError err pos, CompileRunStateInfo info nm pos, MonadState (CompileRun nm unit info err) m, MonadIO m, Monad m) => CompileRunner state nm pos loc unit info err m Source

Class alias for compile functionality

data CompileRun nm unit info err Source

Constructors

CompileRun 

Fields

_crCUCache :: Map nm unit
 
_crCompileOrder :: [[nm]]
 
_crTopModNm :: nm
 
_crState :: CompileRunState err
 
_crStateInfo :: info
 

crCUCache :: forall cat nm unit info err. ArrowApply cat => Lens cat (CompileRun nm unit info err) (Map nm unit) Source

crCompileOrder :: forall cat nm unit info err. ArrowApply cat => Lens cat (CompileRun nm unit info err) [[nm]] Source

crTopModNm :: forall cat nm unit info err. ArrowApply cat => Lens cat (CompileRun nm unit info err) nm Source

crState :: forall cat nm unit info err a. ArrowApply cat => Lens cat (CompileRun nm unit info err -> CompileRun nm unit info a) (CompileRunState err -> CompileRunState a) Source

crStateInfo :: forall cat nm unit info err a. ArrowApply cat => Lens cat (CompileRun nm unit info err -> CompileRun nm unit a err) (info -> a) Source

type CompilePhase n u i e a = CompilePhaseT n u i e Identity a Source

data CompilePhaseT n u i e m a Source

CompileRun as state in specific StateT variant with non standard >>= newtype CompilePhaseT n u i e m a = CompilePhaseT {runCompilePhaseT :: CompileRun n u i e -> m (a, CompileRun n u i e)}

Instances

(CompileRunner state n pos loc u i e m, MonadError e' m) => MonadError e' (CompilePhaseT n u i e m) 
(CompileRunner state n pos loc u i e m, MonadState s m) => MonadState s (CompilePhaseT n u i e m) 
MonadTrans (CompilePhaseT n u i e) 
CompileRunner state n pos loc u i e m => Monad (CompilePhaseT n u i e m) 
CompileRunner state n pos loc u i e m => Functor (CompilePhaseT n u i e m) 
CompileRunner state n pos loc u i e m => Applicative (CompilePhaseT n u i e m) 
(CompileRunner state n pos loc u i e m, MonadIO m) => MonadIO (CompilePhaseT n u i e m) 

class CompileUnit u n l s | u -> n l s where Source

Per compile unit

Methods

cuDefault :: u Source

cuFPath :: u -> FPath Source

cuUpdFPath :: FPath -> u -> u Source

cuLocation :: u -> l Source

cuUpdLocation :: l -> u -> u Source

cuKey :: u -> n Source

cuUpdKey :: n -> u -> u Source

cuState :: u -> s Source

cuUpdState :: s -> u -> u Source

cuImports :: u -> [n] Source

cuParticipation :: u -> [CompileParticipation] Source

class CompileUnitState s where Source

State of a compile unit

class CompileRunError e p | e -> p where Source

Error reporting

Minimal complete definition

Nothing

Methods

crePPErrL :: [e] -> PP_Doc Source

creMkNotFoundErrL :: p -> String -> [String] -> [FileSuffix] -> [e] Source

creAreFatal :: [e] -> Bool Source

Instances

class CompileModName n where Source

Conversion from string to module name

Methods

mkCMNm :: String -> n Source

class CompileRunStateInfo i n p where Source

Methods

crsiImportPosOfCUKey :: n -> i -> p Source

class FileLocatable x loc | loc -> x where Source

Methods

fileLocation :: x -> loc Source

noFileLocation :: loc Source

mkEmptyCompileRun :: n -> i -> CompileRun n u i e Source

crCU :: (Show n, Ord n) => n -> CompileRun n u i e -> u Source

crMbCU :: Ord n => n -> CompileRun n u i e -> Maybe u Source

ppCR :: (PP n, PP u) => CompileRun n u i e -> PP_Doc Source

cpUpdStateInfo :: CompileRunner s n p l u i e m => (i -> i) -> CompilePhaseT n u i e m () Source

cpUpdSI :: CompileRunner s n p l u i e m => (i -> i) -> CompilePhaseT n u i e m () Source

cpUpdCU :: (Ord n, CompileRunner s n p l u i e m) => n -> (u -> u) -> CompilePhaseT n u i e m () Source

cpUpdCUWithKey :: (Ord n, CompileRunner s n p l u i e m) => n -> (n -> u -> (n, u)) -> CompilePhaseT n u i e m n Source

cpMbCU :: (Ord n, CompileRunner s n p l u i e m) => n -> CompilePhaseT n u i e m (Maybe u) Source

lookup unit

cpSetFail :: CompileRunner s n p l u i e m => CompilePhaseT n u i e m () Source

cpSetStop :: CompileRunner s n p l u i e m => CompilePhaseT n u i e m () Source

cpSetStopSeq :: CompileRunner s n p l u i e m => CompilePhaseT n u i e m () Source

cpSetStopAllSeq :: CompileRunner s n p l u i e m => CompilePhaseT n u i e m () Source

cpSetOk :: CompileRunner s n p l u i e m => CompilePhaseT n u i e m () Source

cpSetErrs :: CompileRunner s n p l u i e m => [e] -> CompilePhaseT n u i e m () Source

cpSetLimitErrs :: CompileRunner s n p l u i e m => Int -> String -> [e] -> CompilePhaseT n u i e m () Source

cpSetLimitErrsWhen :: CompileRunner s n p l u i e m => Int -> String -> [e] -> CompilePhaseT n u i e m () Source

cpSetInfos :: CompileRunner s n p l u i e m => String -> Bool -> [e] -> CompilePhaseT n u i e m () Source

cpSetCompileOrder :: CompileRunner s n p l u i e m => [[n]] -> CompilePhaseT n u i e m () Source

cpSeq :: CompileRunner s n p l u i e m => [CompilePhaseT n u i e m ()] -> CompilePhaseT n u i e m () Source

cpSeqWhen :: CompileRunner s n p l u i e m => Bool -> [CompilePhaseT n u i e m ()] -> CompilePhaseT n u i e m () Source

cpEmpty :: CompileRunner s n p l u i e m => CompilePhaseT n u i e m () Source

cpFindFilesForFPathInLocations :: (Ord n, FPATH n, FileLocatable u loc, Show loc, CompileRunner s n p loc u i e m) => (loc -> n -> FPath -> [(loc, FPath, [e])]) -> ((FPath, loc, [e]) -> res) -> Bool -> [(FileSuffix, s)] -> [loc] -> Maybe n -> Maybe FPath -> CompilePhaseT n u i e m [res] Source

cpFindFilesForFPath :: forall e n u p i s m. (Ord n, FPATH n, FileLocatable u String, CompileRunner s n p String u i e m) => Bool -> [(FileSuffix, s)] -> [String] -> Maybe n -> Maybe FPath -> CompilePhaseT n u i e m [FPath] Source

cpImportGather :: (Show n, Ord n, CompileRunner s n p l u i e m) => (n -> CompilePhaseT n u i e m ()) -> n -> CompilePhaseT n u i e m () Source

Abbreviation for cpImportGatherFromMods for 1 module

cpImportGatherFromMods :: (Show n, Ord n, CompileRunner s n p l u i e m) => (Maybe prev -> n -> CompilePhaseT n u i e m (x, Maybe prev)) -> [n] -> CompilePhaseT n u i e m () Source

recursively extract imported modules

cpImportGatherFromModsWithImp :: (Show n, Ord n, CompileRunner s n p l u i e m) => (u -> [n]) -> (Maybe prev -> n -> CompilePhaseT n u i e m (x, Maybe prev)) -> [n] -> CompilePhaseT n u i e m () Source

recursively extract imported modules, providing a way to import + do the import

cpPP :: (PP n, PP u, CompileRunner s n p l u i e m) => String -> CompilePhaseT n u i e m () Source

cpPPMsg :: (PP msg, CompileRunner s n p l u i e m) => msg -> CompilePhaseT n u i e m () Source

forgetM :: Monad m => m a -> m () Source