aboutsummaryrefslogtreecommitdiff
path: root/snug-clean/src/Snug/Compile.dcl
diff options
context:
space:
mode:
Diffstat (limited to 'snug-clean/src/Snug/Compile.dcl')
-rw-r--r--snug-clean/src/Snug/Compile.dcl14
1 files changed, 14 insertions, 0 deletions
diff --git a/snug-clean/src/Snug/Compile.dcl b/snug-clean/src/Snug/Compile.dcl
index 9ad66ff..ef223b8 100644
--- a/snug-clean/src/Snug/Compile.dcl
+++ b/snug-clean/src/Snug/Compile.dcl
@@ -1,5 +1,6 @@
definition module Snug.Compile
+from Control.Monad.State import :: StateT
from Data.Error import :: MaybeError
from Data.Map import :: Map
@@ -24,4 +25,17 @@ from Snug.Syntax import :: ConstructorDef, :: ConstructorIdent, :: Definition,
, type :: !Type
}
+:: CompileM a :== StateT CompileState (MaybeError String) a
+
+:: CompileState
+
+:: Locals :== Map SymbolIdent LocalLocation
+
+:: Local =
+ { location :: !LocalLocation
+ , type :: !Type
+ }
+
+:: LocalLocation
+
compile :: !Namespace ![Definition] -> MaybeError String [Line]