Merge branch 'master' of github.com:dopefishh/cc1516
[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 | Error String
15 :: Gamma
16 :: SemOutput :== Either [SemError] (AST, Gamma)
17
18 instance toString SemError
19 instance toString Gamma
20
21 sem :: AST -> SemOutput