Merge branch 'master' of github.com:dopefishh/cc1516
[cc1516.git] / sem.dcl
diff --git a/sem.dcl b/sem.dcl
index 5c01ba0..584deb5 100644 (file)
--- a/sem.dcl
+++ b/sem.dcl
@@ -1,15 +1,22 @@
 definition module sem
 
+import qualified Data.Map as Map
 from Data.Either import :: Either
-from AST import :: AST, :: Pos, :: Type
+from AST import :: AST, :: Pos, :: Type, :: FieldSelector, :: Op2
+from StdOverloaded import class toString
 
 :: SemError 
        = ParseError Pos String 
        | UnifyError Pos Type Type 
+    | FieldSelectorError Pos Type FieldSelector 
+       | OperatorError Pos Op2 Type
+    | UndeclaredVariableError Pos String
+    | ArgumentMisMatchError Pos String
        | Error String
-:: SemOutput :== Either [SemError] AST
-
+:: Gamma
+:: SemOutput :== Either [SemError] (AST, Gamma)
 
 instance toString SemError
+instance toString Gamma
 
 sem :: AST -> SemOutput