repositories
/
cc1516.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
start with sem
[cc1516.git]
/
sem.icl
diff --git
a/sem.icl
b/sem.icl
index
1cb9e54
..
02d0117
100644
(file)
--- a/
sem.icl
+++ b/
sem.icl
@@
-1,6
+1,7
@@
implementation module sem
implementation module sem
-from Data.Map import :: Map
+import qualified Data.Map as Map
+from Data.Func import $
import Data.Either
import Control.Monad.State
import StdMisc
import Data.Either
import Control.Monad.State
import StdMisc
@@
-9,17
+10,17
@@
import AST
from parse import :: ParserOutput
from yard import :: Error
from parse import :: ParserOutput
from yard import :: Error
-:: Gamma :== Map String Type
+:: Gamma :==
'Map'.
Map String Type
:: Env a :== State Gamma a
sem :: ParserOutput -> SemOutput
sem (Left p) = Left p
:: Env a :== State Gamma a
sem :: ParserOutput -> SemOutput
sem (Left p) = Left p
-sem (Right (AST vd fd)) =
undef
+sem (Right (AST vd fd)) =
Right $ AST vd fd
// foldM semVarDecl vd
// >>= \gamma ->foldM typecheck gamma fd
// foldM semVarDecl vd
// >>= \gamma ->foldM typecheck gamma fd
-semVarDecl :: Env VarDecl
-semVarDecl = undef
+semVarDecl ::
VarDecl ->
Env VarDecl
+semVarDecl
(Vardecl pos type ident expr)
= undef