X-Git-Url: https://ruin.nu/git/?p=proglang.git;a=blobdiff_plain;f=Interpreter.hs;h=ae73abba4a1cff690a8bab18e84c977298c73809;hp=6cfbbda91af2804ac58cd53a96a1447e4dd1cea0;hb=HEAD;hpb=8fdc0177fdf518f63819e5b98dd0368fccca6175 diff --git a/Interpreter.hs b/Interpreter.hs index 6cfbbda..ae73abb 100644 --- a/Interpreter.hs +++ b/Interpreter.hs @@ -13,8 +13,6 @@ import Abssyntax import Typecheck import Interpret -import Control.Monad.State hiding (State) -import Data.Map as Map hiding (showTree) import ErrM @@ -45,12 +43,11 @@ run v p s = let ts = myLLexer s in case p ts of Ok (Program s) -> let (fun,st) = splitFunStm (s) in do putStrLn "\nParse Successful!" showTree v (Program s) - runStateT (do mapM Typecheck.addFunction fun; mapM typeCheckFunction fun; mapM typeCheckStm st) Typecheck.emptyState + typeCheck fun st print "The program is type-correct!!" print "Running program:" - runStateT (do mapM Interpret.addFunction fun; mapM execute st) Interpret.emptyState + interpret fun st print "Done running program!" - return () showTree :: (Show a, Print a) => Int -> a -> IO () showTree v tree