X-Git-Url: https://git.martlubbers.net/?a=blobdiff_plain;f=sem.icl;h=1cb9e546002911c200955c5444817522211aae98;hb=c270b0fc79caa24c08c2d00c2e8205bbd47921ed;hp=2003038ad94c1ab32d3bd398abdc79fd62a65502;hpb=022b8166504765b2c84138fc83dfdfaa23fe5774;p=cc1516.git diff --git a/sem.icl b/sem.icl index 2003038..1cb9e54 100644 --- a/sem.icl +++ b/sem.icl @@ -1,6 +1,26 @@ implementation module sem +from Data.Map import :: Map +import Data.Either +import Control.Monad.State import StdMisc -semanticAnalysis :: AST -> Either Error AST -semanticAnalysis a = +import AST +from parse import :: ParserOutput +from yard import :: Error + +:: Gamma :== Map String Type +:: Env a :== State Gamma a + +sem :: ParserOutput -> SemOutput +sem (Left p) = Left p +sem (Right (AST vd fd)) = undef +// foldM semVarDecl vd +// >>= \gamma ->foldM typecheck gamma fd + +semVarDecl :: Env VarDecl +semVarDecl = undef + + + +