Safe Haskell | Safe-Inferred |
---|---|
Language | Haskell2010 |
Codegen.State
Synopsis
- type MonadCodegen m = (MonadIRBuilder m, MonadModuleBuilder m, MonadFix m, MonadState CodegenState m, MonadError CodegenError m)
- type LocalState = [(String, Operand)]
- type GlobalState = [(String, Operand)]
- type LoopState = Maybe (Name, Name)
- type UniqueNameState = Integer
- data CodegenState = CodegenState {}
- class Monad m => VarBinding m where
- fresh :: MonadState CodegenState m => m Name
- freshName :: MonadState CodegenState m => String -> m Name
Documentation
type MonadCodegen m = (MonadIRBuilder m, MonadModuleBuilder m, MonadFix m, MonadState CodegenState m, MonadError CodegenError m) Source #
type LocalState = [(String, Operand)] Source #
Type alias for the local code generation state.
type GlobalState = [(String, Operand)] Source #
Type alias for the global code generation state.
type UniqueNameState = Integer Source #
Type alias for the variables name .
data CodegenState Source #
Combined state for code generation.
Constructors
CodegenState | |
Fields |
Instances
Show CodegenState Source # | |
Defined in Codegen.State Methods showsPrec :: Int -> CodegenState -> ShowS # show :: CodegenState -> String # showList :: [CodegenState] -> ShowS # |
class Monad m => VarBinding m where Source #
Variable binding typeclass.
Methods
getVar :: String -> m (Maybe Operand) Source #
addVar :: String -> Operand -> m () Source #
getGlobalVar :: String -> m (Maybe Operand) Source #
addGlobalVar :: String -> Operand -> m () Source #
Instances
(MonadState CodegenState m, Monad m) => VarBinding m Source # | |
fresh :: MonadState CodegenState m => m Name Source #
freshName :: MonadState CodegenState m => String -> m Name Source #