aboutsummaryrefslogtreecommitdiff
path: root/src/main.hs
diff options
context:
space:
mode:
authorCharles <sircharlesaze@gmail.com>2020-06-03 22:57:10 +0200
committerCharles <sircharlesaze@gmail.com>2020-06-03 22:57:10 +0200
commit2b0b62b44a87536597050c525322c7bcc745bdb2 (patch)
tree56ee143d427c66cb1f0583c07beec5f181abc983 /src/main.hs
parent5e7d3a5ff586ac75b768a9a1c1f2d5b80960e821 (diff)
downloadcomputorv2-2b0b62b44a87536597050c525322c7bcc745bdb2.tar.gz
computorv2-2b0b62b44a87536597050c525322c7bcc745bdb2.tar.bz2
computorv2-2b0b62b44a87536597050c525322c7bcc745bdb2.zip
Added polynom solver from computorv1, Added matrix multipilcation
Diffstat (limited to 'src/main.hs')
-rw-r--r--src/main.hs52
1 files changed, 0 insertions, 52 deletions
diff --git a/src/main.hs b/src/main.hs
deleted file mode 100644
index 58c8ea7..0000000
--- a/src/main.hs
+++ /dev/null
@@ -1,52 +0,0 @@
-import Data.Char
-import qualified Data.Map as M
-import System.IO
-
-import Evaluation as E
-import Expr
-import Parser.Core
-import Parser.Expr
-import Parser.Statement
-
-
-main :: IO ()
-main = promptLoop (Context M.empty M.empty)
-
-promptLoop :: Context -> IO ()
-promptLoop context = do
- putStr "> "
- hFlush stdout
- line <- getLine
- return ()
- if line /= "q"
- then loop line context >>= promptLoop
- else return ()
-
-loop :: String -> Context -> IO Context
-loop input context =
- do
- statement <- case runParserStrict statementP (filter (not . isSpace) input) of
- Left err -> fail ("Error: " ++ err)
- Right s -> return s
- Main.eval context statement
-
-
-eval :: Context -> Statement -> IO Context
-
-eval c (Evaluation e) = do case E.eval c e of
- Just evaluated -> putStrLn $ show evaluated
- Nothing -> putStrLn "Error: couldn't evaluate expression"
- return c
-
-eval (Context vars funcs) (VariableDeclaration name e) =
- case E.eval context e of
- Just evaluated -> return $ Context (M.insert name e vars) funcs
- Nothing -> putStrLn "Error: couldn't evaluate expression" >> return context
- where context = Context vars funcs
-
-eval (Context vars funcs) (FunctionDeclaration name argName e) =
- -- case E.eval context e of
- -- Just evaluated -> return $ Context vars (M.insert name (argName, e) funcs)
- -- Nothing -> putStrLn "Error: couldn't evaluate expression" >> return context
- return $ Context vars (M.insert name (argName, e) funcs)
- -- where context = Context vars funcs