expressions

This commit is contained in:
Oleg Sobolev 2025-12-30 01:27:01 +03:00
parent 75a33c2d94
commit f5e7b7c091
5 changed files with 95 additions and 21 deletions

View file

@ -9,13 +9,12 @@ run source = do
case tokensMaybe of
Left UnexpectedCharacterError -> putStrLn "Unexpected character"
Right tokens -> do
let exprMaybe = parse tokens
case exprMaybe of
let stmtMaybe = parse tokens
case stmtMaybe of
Left ExpectedExpressionError -> putStrLn "Expected expression"
Left MismatchedParenthesesError -> putStrLn "Mismatched parentheses"
Right expr -> do
result <- eval expr
print result
Left ExpectedSemicolonError -> putStrLn "Expected semicolon"
Right statements -> runStatements statements
main :: IO ()
main = putStr ">> " >> hFlush stdout >> getLine >>= run