Safe Haskell | None |
---|---|
Language | Haskell2010 |
Synopsis
- fromLeftExpr :: LeftExpr -> Expr
- data NameKind
- fromNameKind :: NameKind -> String
- newFreshName :: MonadAlpha m => NameKind -> m VarName
- renameVarName :: MonadAlpha m => NameKind -> String -> m VarName
- freeVars :: Expr -> Set VarName
- freeVarsStatements :: [Statement] -> Set VarName
- freeVarsStatement :: Statement -> Set VarName
- freeVarsDeclareRight :: DeclareRight -> Set VarName
- freeVarsAssignExpr :: AssignExpr -> Set VarName
- freeVarsLeftExpr :: LeftExpr -> Set VarName
- shouldBeArray :: [Type] -> Bool
- cinStatement :: Expr -> Statement
- coutStatement :: Expr -> Statement
- repStatement :: VarName -> Expr -> [Statement] -> Statement
- litInt64 :: Integer -> Expr
- litInt32 :: Integer -> Expr
- incrExpr :: Expr -> Expr
- size :: Expr -> Expr
- at :: Expr -> Expr -> Expr
- cast :: Type -> Expr -> Expr
- assignSimple :: VarName -> Expr -> Statement
- assignAt :: VarName -> Expr -> Expr -> Statement
- callFunction :: FunName -> [Type] -> [Expr] -> Expr
- callFunction' :: FunName -> [Type] -> [Expr] -> Statement
- callMethod :: Expr -> FunName -> [Expr] -> Expr
- callMethod' :: Expr -> FunName -> [Expr] -> Statement
- vecCtor :: Type -> [Expr] -> Expr
- begin :: Expr -> Expr
- end :: Expr -> Expr
- mapExprStatementExprM :: Monad m => (Expr -> m Expr) -> (Statement -> m [Statement]) -> Expr -> m Expr
- mapExprStatementLeftExprM :: Monad m => (Expr -> m Expr) -> (Statement -> m [Statement]) -> LeftExpr -> m LeftExpr
- mapExprStatementAssignExprM :: Monad m => (Expr -> m Expr) -> (Statement -> m [Statement]) -> AssignExpr -> m AssignExpr
- mapExprStatementStatementM :: Monad m => (Expr -> m Expr) -> (Statement -> m [Statement]) -> Statement -> m [Statement]
- mapExprStatementToplevelStatementM :: Monad m => (Expr -> m Expr) -> (Statement -> m [Statement]) -> ToplevelStatement -> m ToplevelStatement
- mapExprStatementProgramM :: Monad m => (Expr -> m Expr) -> (Statement -> m [Statement]) -> Program -> m Program
- mapExprStatementProgram :: (Expr -> Expr) -> (Statement -> [Statement]) -> Program -> Program
- mapSubExprM :: Monad m => (Expr -> m Expr) -> Expr -> m Expr
- mapDirectExprStatementM :: Monad m => (Expr -> m Expr) -> Statement -> m Statement
- mapDirectExprAssignExprM :: Monad m => (Expr -> m Expr) -> AssignExpr -> m AssignExpr
- mapDirectExprLeftExprM :: Monad m => (Expr -> m Expr) -> LeftExpr -> m LeftExpr
- replaceExpr :: VarName -> Expr -> Expr -> Expr
- replaceStatement :: VarName -> Expr -> Statement -> Statement
Documentation
fromLeftExpr :: LeftExpr -> Expr Source #
LocalNameKind | |
LocalArgumentNameKind | |
LoopCounterNameKind | |
ConstantNameKind | |
FunctionNameKind | |
ArgumentNameKind |
fromNameKind :: NameKind -> String Source #
newFreshName :: MonadAlpha m => NameKind -> m VarName Source #
renameVarName :: MonadAlpha m => NameKind -> String -> m VarName Source #
shouldBeArray :: [Type] -> Bool Source #
cinStatement :: Expr -> Statement Source #
coutStatement :: Expr -> Statement Source #
mapExprStatementExprM :: Monad m => (Expr -> m Expr) -> (Statement -> m [Statement]) -> Expr -> m Expr Source #
mapExprStatementLeftExprM :: Monad m => (Expr -> m Expr) -> (Statement -> m [Statement]) -> LeftExpr -> m LeftExpr Source #
mapExprStatementAssignExprM :: Monad m => (Expr -> m Expr) -> (Statement -> m [Statement]) -> AssignExpr -> m AssignExpr Source #
mapExprStatementStatementM :: Monad m => (Expr -> m Expr) -> (Statement -> m [Statement]) -> Statement -> m [Statement] Source #
mapExprStatementToplevelStatementM :: Monad m => (Expr -> m Expr) -> (Statement -> m [Statement]) -> ToplevelStatement -> m ToplevelStatement Source #
mapExprStatementProgramM :: Monad m => (Expr -> m Expr) -> (Statement -> m [Statement]) -> Program -> m Program Source #
mapExprStatementProgram :: (Expr -> Expr) -> (Statement -> [Statement]) -> Program -> Program Source #
mapDirectExprStatementM :: Monad m => (Expr -> m Expr) -> Statement -> m Statement Source #
mapDirectExprStatementM
replaces exprs which are direct children of a given statement.
mapDirectExprAssignExprM :: Monad m => (Expr -> m Expr) -> AssignExpr -> m AssignExpr Source #