1
1
mirror of https://github.com/github/semantic.git synced 2024-12-30 10:27:45 +03:00

Define an evaluating state type.

This commit is contained in:
Rob Rix 2018-03-26 12:48:21 -04:00
parent eb02706b2f
commit 4d85b1f18e

View File

@ -43,6 +43,14 @@ type EvaluatingEffects term value
, State (IntMap.IntMap term) -- For jumps
]
data EvaluatingState term value = EvaluatingState
{ environment :: EnvironmentFor value
, heap :: HeapFor value
, modules :: ModuleTable (EnvironmentFor value, value)
, exports :: ExportsFor value
, jumps :: IntMap.IntMap term
}
-- | Find the value in the 'Final' result of running.
findValue :: (effects ~ RequiredEffects term value (Evaluating term value effects))
=> Final effects value -> Either Prelude.String (Either (SomeExc (Unspecialized value)) (Either (SomeExc (ValueExc value)) value))