diff options
Diffstat (limited to 'snug-clean/src/Snug/Compile.dcl')
-rw-r--r-- | snug-clean/src/Snug/Compile.dcl | 14 |
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] |