Safe Haskell | Safe-Inferred |
---|---|
Language | Haskell2010 |
Analyzer.Analyzer
Contents
Synopsis
- analyze :: Program -> (ResultValue Program, Env)
- analyzeProgram :: Program -> Result Program
- analyzeTLVarDecls :: [VarDecl] -> Result ([VarDecl], [(Identifier, Type)])
- analyzeTLFuncDefs :: [(Identifier, Type)] -> [FunctionDef] -> Result [FunctionDef]
- analyzeFunc :: Function -> Result (FunctionType, Function)
- analyzeStmt :: Statement -> MaybeVoid Type -> Result Statement
- analyzeStmtReturn :: MaybeVoid Expression -> MaybeVoid Type -> Result Statement
- analyzeStmtForGoTo :: ForGoTo -> Result Statement
- analyzeStmtFor :: For -> MaybeVoid Type -> Result Statement
- analyzeStmtVarDecl :: VarDecl -> Result VarDecl
- analyzeVarValue :: VarValue -> Result (Type, Expression)
- analyzeIfElse :: IfElse -> MaybeVoid Type -> Result IfElse
- analyzeBlock :: Scope -> Block -> MaybeVoid Type -> Result Block
- analyzeBlock' :: Block -> MaybeVoid Type -> Result Block
- analyzeSimpleStmt :: SimpleStmt -> Result SimpleStmt
- analyzeLvalue :: Lvalue -> Result (Type, Lvalue)
- analyzeExpr :: Expression -> Result (MaybeVoid Type, Expression)
- analyzeExprValue :: Value -> Result (MaybeVoid Type, Expression)
- analyzeExprIdentifier :: Identifier -> Result (MaybeVoid Type, Expression)
- analyzeExprUnaryOp :: UnaryOp -> Expression -> Result (MaybeVoid Type, Expression)
- analyzeExprBinaryOp :: BinaryOp -> Expression -> Expression -> Result (MaybeVoid Type, Expression)
- analyzeExprFuncCall :: Expression -> [Expression] -> Result (MaybeVoid Type, Expression)
- analyzeExprArrayAccessByIndex :: Expression -> Expression -> Result (MaybeVoid Type, Expression)
- analyzeExprLenFuncCall :: Expression -> Result (MaybeVoid Type, Expression)
- analyzeExprPrintFuncCall :: [Expression] -> Result (MaybeVoid Type, Expression)
- analyzeExprPrintlnFuncCall :: [Expression] -> Result (MaybeVoid Type, Expression)
- analyzeExprPanicFuncCall :: Expression -> Result (MaybeVoid Type, Expression)
- analyzeType :: Type -> Result Type
- analyzeArrayType :: ArrayType -> Result (Type, Int)
- analyzeFunctionType :: FunctionType -> Result FunctionType
- analyzeExpr' :: Expression -> Result (Type, Expression)
- analyzeIntExpr :: Expression -> Result Expression
- analyzeBoolExpr :: Expression -> Result Expression
- stdLibFuncExpr :: Identifier -> Expression
- checkEq :: Eq a => a -> a -> Result ()
- checkCondition :: Bool -> Result ()
- unwrapMaybeVoid :: MaybeVoid a -> Result a
- unwrapExprRes :: (MaybeVoid Type, Expression) -> Result (Type, Expression)
- liftCEC :: Either Err a -> Result a
Analyzer
analyzeTLVarDecls :: [VarDecl] -> Result ([VarDecl], [(Identifier, Type)]) Source #
analyzeTLFuncDefs :: [(Identifier, Type)] -> [FunctionDef] -> Result [FunctionDef] Source #
analyzeFunc :: Function -> Result (FunctionType, Function) Source #
analyzeVarValue :: VarValue -> Result (Type, Expression) Source #
analyzeExpr :: Expression -> Result (MaybeVoid Type, Expression) Source #
analyzeExprValue :: Value -> Result (MaybeVoid Type, Expression) Source #
analyzeExprUnaryOp :: UnaryOp -> Expression -> Result (MaybeVoid Type, Expression) Source #
analyzeExprBinaryOp :: BinaryOp -> Expression -> Expression -> Result (MaybeVoid Type, Expression) Source #
analyzeExprFuncCall :: Expression -> [Expression] -> Result (MaybeVoid Type, Expression) Source #
analyzeExprArrayAccessByIndex :: Expression -> Expression -> Result (MaybeVoid Type, Expression) Source #
analyzeExprPrintFuncCall :: [Expression] -> Result (MaybeVoid Type, Expression) Source #
analyzeExprPrintlnFuncCall :: [Expression] -> Result (MaybeVoid Type, Expression) Source #
analyzeExpr' :: Expression -> Result (Type, Expression) Source #
checkCondition :: Bool -> Result () Source #
unwrapMaybeVoid :: MaybeVoid a -> Result a Source #
unwrapExprRes :: (MaybeVoid Type, Expression) -> Result (Type, Expression) Source #