added argument mismatch
[cc1516.git] / sem.dcl
1 definition module sem
2
3 import qualified Data.Map as Map
4 from Data.Either import :: Either
5 from AST import :: AST, :: Pos, :: Type, :: FieldSelector, :: Op2
6 from StdOverloaded import class toString
7
8 :: SemError
9 = ParseError Pos String
10 | UnifyError Pos Type Type
11 | FieldSelectorError Pos Type FieldSelector
12 | OperatorError Pos Op2 Type
13 | UndeclaredVariableError Pos String
14 | ArgumentMisMatchError Pos String
15 | Error String
16 :: Gamma
17 :: SemOutput :== Either [SemError] (AST, Gamma)
18
19 instance toString SemError
20 instance toString Gamma
21
22 sem :: AST -> SemOutput