aboutsummaryrefslogtreecommitdiff
path: root/snug-clean/src/Snug/Compile/Simulate.dcl
diff options
context:
space:
mode:
Diffstat (limited to 'snug-clean/src/Snug/Compile/Simulate.dcl')
-rw-r--r--snug-clean/src/Snug/Compile/Simulate.dcl5
1 files changed, 3 insertions, 2 deletions
diff --git a/snug-clean/src/Snug/Compile/Simulate.dcl b/snug-clean/src/Snug/Compile/Simulate.dcl
index bf01675..b131f34 100644
--- a/snug-clean/src/Snug/Compile/Simulate.dcl
+++ b/snug-clean/src/Snug/Compile/Simulate.dcl
@@ -7,13 +7,14 @@ from Control.Monad.Identity import :: Identity, instance Functor Identity,
from Control.Monad.State import :: State, :: StateT,
instance Functor (StateT s m), instance Monad (StateT s m),
instance pure (StateT s m), instance <*> (StateT s m)
+from Data.Error import :: MaybeError
from Data.Functor import class Functor
from MIPS.MIPS32 import :: Immediate, :: Instruction, :: Label, :: Offset,
:: Register
from Snug.Syntax import :: BasicValue
-:: Simulator a :== State SimulationState a
+:: Simulator a :== StateT SimulationState (MaybeError String) a
:: SimulationState
@@ -24,7 +25,7 @@ from Snug.Syntax import :: BasicValue
/* for internal use only: */
| SVImmediate !Immediate
-simulate :: ![StackValue] !(Simulator a) -> [Instruction]
+simulate :: ![StackValue] !(Simulator a) -> MaybeError String [Instruction]
stackSize :: Simulator Int