{-# LANGUAGE ImportQualifiedPost #-} {-# LANGUAGE OverloadedStrings #-} module Main (main) where import Data.Text.Lazy.IO qualified as T import Eval.Expr import LLVMGen.Expr import Parser.Expr import System.Environment import Types.Expr getRight :: ParseResult -> Expr getRight (Right r) = r getResult :: String -> Int getResult str = evalExpr (getRight (parseExpr str)) -- TODO: add error messages main :: IO () main = do fileName <- fmap head getArgs contents <- readFile fileName let result = getResult contents print result T.putStrLn (getLLVMStr (getRight (parseExpr contents)))