Safe Haskell | None |
---|---|
Language | Haskell98 |
Combinators for a compile run. 20150218: will replace CompileRun, or this one will overwrite CompileRun, in due time
- 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
- data CompileRunState err
- = CRSOk
- | CRSFail
- | CRSFailMsg String
- | CRSStopSeq
- | CRSStopAllSeq
- | CRSStop
- | CRSFailErrL String [err] (Maybe Int)
- | CRSErrInfoL String Bool [err]
- data CompileRun nm unit info err = CompileRun {
- _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)
- crCompileOrder :: forall cat nm unit info err. ArrowApply cat => Lens cat (CompileRun nm unit info err) [[nm]]
- crTopModNm :: forall cat nm unit info err. ArrowApply cat => Lens cat (CompileRun nm unit info err) nm
- 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)
- crStateInfo :: forall cat nm unit info err a. ArrowApply cat => Lens cat (CompileRun nm unit info err -> CompileRun nm unit a err) (info -> a)
- type CompilePhase n u i e a = CompilePhaseT n u i e Identity a
- data CompilePhaseT n u i e m a
- class CompileUnit u n l s | u -> n l s where
- cuDefault :: u
- cuFPath :: u -> FPath
- cuUpdFPath :: FPath -> u -> u
- cuLocation :: u -> l
- cuUpdLocation :: l -> u -> u
- cuKey :: u -> n
- cuUpdKey :: n -> u -> u
- cuState :: u -> s
- cuUpdState :: s -> u -> u
- cuImports :: u -> [n]
- cuParticipation :: u -> [CompileParticipation]
- class CompileUnitState s where
- cusDefault :: s
- cusUnk :: s
- cusIsUnk :: s -> Bool
- cusIsImpKnown :: s -> Bool
- class CompileRunError e p | e -> p where
- crePPErrL :: [e] -> PP_Doc
- creMkNotFoundErrL :: p -> String -> [String] -> [FileSuffix] -> [e]
- creAreFatal :: [e] -> Bool
- class CompileModName n where
- class CompileRunStateInfo i n p where
- crsiImportPosOfCUKey :: n -> i -> p
- data CompileParticipation = CompileParticipation_NoImport
- class FileLocatable x loc | loc -> x where
- fileLocation :: x -> loc
- noFileLocation :: loc
- mkEmptyCompileRun :: n -> i -> CompileRun n u i e
- crCU :: (Show n, Ord n) => n -> CompileRun n u i e -> u
- crMbCU :: Ord n => n -> CompileRun n u i e -> Maybe u
- ppCR :: (PP n, PP u) => CompileRun n u i e -> PP_Doc
- cpUpdStateInfo :: CompileRunner s n p l u i e m => (i -> i) -> CompilePhaseT n u i e m ()
- cpUpdSI :: CompileRunner s n p l u i e m => (i -> i) -> CompilePhaseT n u i e m ()
- cpUpdCU :: (Ord n, CompileRunner s n p l u i e m) => n -> (u -> u) -> CompilePhaseT n u i e m ()
- cpUpdCUWithKey :: (Ord n, CompileRunner s n p l u i e m) => n -> (n -> u -> (n, u)) -> CompilePhaseT n u i e m n
- cpMbCU :: (Ord n, CompileRunner s n p l u i e m) => n -> CompilePhaseT n u i e m (Maybe u)
- cpSetFail :: CompileRunner s n p l u i e m => CompilePhaseT n u i e m ()
- cpSetStop :: CompileRunner s n p l u i e m => CompilePhaseT n u i e m ()
- cpSetStopSeq :: CompileRunner s n p l u i e m => CompilePhaseT n u i e m ()
- cpSetStopAllSeq :: CompileRunner s n p l u i e m => CompilePhaseT n u i e m ()
- cpSetOk :: CompileRunner s n p l u i e m => CompilePhaseT n u i e m ()
- cpSetErrs :: CompileRunner s n p l u i e m => [e] -> CompilePhaseT n u i e m ()
- cpSetLimitErrs :: CompileRunner s n p l u i e m => Int -> String -> [e] -> CompilePhaseT n u i e m ()
- cpSetLimitErrsWhen :: CompileRunner s n p l u i e m => Int -> String -> [e] -> CompilePhaseT n u i e m ()
- cpSetInfos :: CompileRunner s n p l u i e m => String -> Bool -> [e] -> CompilePhaseT n u i e m ()
- cpSetCompileOrder :: CompileRunner s n p l u i e m => [[n]] -> CompilePhaseT n u i e m ()
- cpSeq :: CompileRunner s n p l u i e m => [CompilePhaseT n u i e m ()] -> CompilePhaseT n u i e m ()
- cpSeqWhen :: CompileRunner s n p l u i e m => Bool -> [CompilePhaseT n u i e m ()] -> CompilePhaseT n u i e m ()
- cpEmpty :: CompileRunner s n p l u i e m => CompilePhaseT n u i e m ()
- cpFindFileForNameOrFPath :: FPATH n => String -> n -> FPath -> [(String, FPath)]
- 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]
- 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]
- cpFindFileForFPath :: (Ord n, FPATH n, FileLocatable u String, CompileRunner s n p String u i e m) => [(FileSuffix, s)] -> [String] -> Maybe n -> Maybe FPath -> CompilePhaseT n u i e m (Maybe FPath)
- 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 ()
- 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 ()
- 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 ()
- cpPP :: (PP n, PP u, CompileRunner s n p l u i e m) => String -> CompilePhaseT n u i e m ()
- cpPPMsg :: (PP msg, CompileRunner s n p l u i e m) => msg -> CompilePhaseT n u i e m ()
- forgetM :: Monad m => m a -> m ()
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 CompileRunState err Source
CRSOk | |
CRSFail | |
CRSFailMsg String | |
CRSStopSeq | |
CRSStopAllSeq | |
CRSStop | |
CRSFailErrL String [err] (Maybe Int) | |
CRSErrInfoL String Bool [err] |
Show (CompileRunState err) | |
Error (CompileRunState err) |
data CompileRun nm unit info err Source
CompileRun | |
|
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)}
(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
cuDefault, cuFPath, cuUpdFPath, cuLocation, cuUpdLocation, cuKey, cuUpdKey, cuState, cuUpdState, cuImports
cuUpdFPath :: FPath -> u -> u Source
cuLocation :: u -> l Source
cuUpdLocation :: l -> u -> u Source
cuUpdKey :: n -> u -> u Source
cuUpdState :: s -> u -> u Source
cuParticipation :: u -> [CompileParticipation] Source
class CompileUnitState s where Source
State of a compile unit
cusDefault :: s Source
cusIsImpKnown :: s -> Bool Source
class CompileRunError e p | e -> p where Source
Error reporting
Nothing
crePPErrL :: [e] -> PP_Doc Source
creMkNotFoundErrL :: p -> String -> [String] -> [FileSuffix] -> [e] Source
creAreFatal :: [e] -> Bool Source
class CompileModName n where Source
Conversion from string to module name
class CompileRunStateInfo i n p where Source
crsiImportPosOfCUKey :: n -> i -> p Source
class FileLocatable x loc | loc -> x where Source
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
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
cpFindFileForFPath :: (Ord n, FPATH n, FileLocatable u String, CompileRunner s n p String u i e m) => [(FileSuffix, s)] -> [String] -> Maybe n -> Maybe FPath -> CompilePhaseT n u i e m (Maybe 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