1
1
mirror of https://github.com/github/semantic.git synced 2024-12-25 16:02:43 +03:00

Stub in a Function effect.

This commit is contained in:
Rob Rix 2018-07-23 09:15:16 -04:00
parent 9d307f5632
commit bc3b493f31
3 changed files with 8 additions and 2 deletions

View File

@ -16,7 +16,7 @@ module Analysis.Abstract.Graph
) where ) where
import Algebra.Graph.Export.Dot hiding (vertexName) import Algebra.Graph.Export.Dot hiding (vertexName)
import Control.Abstract import Control.Abstract hiding (Function(..))
import Data.Abstract.Address import Data.Abstract.Address
import Data.Abstract.Declarations import Data.Abstract.Declarations
import Data.Abstract.Module (Module (moduleInfo), ModuleInfo (..)) import Data.Abstract.Module (Module (moduleInfo), ModuleInfo (..))

View File

@ -4,6 +4,7 @@ module Control.Abstract.Value
, AbstractIntro(..) , AbstractIntro(..)
, AbstractFunction(..) , AbstractFunction(..)
, Comparator(..) , Comparator(..)
, Function(..)
, asBool , asBool
, while , while
, doWhile , doWhile
@ -47,6 +48,11 @@ class Show value => AbstractFunction address value effects where
call :: value -> [Evaluator address value effects address] -> Evaluator address value effects address call :: value -> [Evaluator address value effects address] -> Evaluator address value effects address
data Function address value m result where
Function :: [Name] -> Set Name -> m address -> Function address value m value
Call :: value -> [address] -> Function address value m address
class Show value => AbstractIntro value where class Show value => AbstractIntro value where
-- | Construct an abstract unit value. -- | Construct an abstract unit value.
-- TODO: This might be the same as the empty tuple for some value types -- TODO: This might be the same as the empty tuple for some value types

View File

@ -25,7 +25,7 @@ import Control.Abstract.Environment as X hiding (runEnvironmentError, runEnviron
import Control.Abstract.Evaluator as X hiding (LoopControl(..), Return(..), catchLoopControl, runLoopControl, catchReturn, runReturn) import Control.Abstract.Evaluator as X hiding (LoopControl(..), Return(..), catchLoopControl, runLoopControl, catchReturn, runReturn)
import Control.Abstract.Heap as X hiding (AddressError(..), runAddressError, runAddressErrorWith) import Control.Abstract.Heap as X hiding (AddressError(..), runAddressError, runAddressErrorWith)
import Control.Abstract.Modules as X (Modules, ResolutionError(..), load, lookupModule, listModulesInDir, require, resolve) import Control.Abstract.Modules as X (Modules, ResolutionError(..), load, lookupModule, listModulesInDir, require, resolve)
import Control.Abstract.Value as X import Control.Abstract.Value as X hiding (Function(..))
import Data.Abstract.Declarations as X import Data.Abstract.Declarations as X
import Data.Abstract.Environment as X import Data.Abstract.Environment as X
import Data.Abstract.FreeVariables as X import Data.Abstract.FreeVariables as X