churf/src/Compiler.hs
2023-01-22 19:43:08 +01:00

34 lines
No EOL
946 B
Haskell

module Compiler where
import Control.Applicative (Applicative)
import Control.Monad.Except (Except, MonadError (throwError),
liftEither)
import Data.Either.Combinators (maybeToRight)
import Data.Map (Map)
import qualified Data.Map as Map
import Grammar.Abs
import Grammar.Print (printTree)
import Grammar.Par (myLexer,pProgram)
import System.Exit (exitFailure)
compileFile :: String -> IO ()
compileFile file = do
input <- readFile file
case pProgram (myLexer input) of
Left err -> do
putStrLn "SYNTAX ERROR"
putStrLn err
exitFailure
Right cor -> do
putStrLn $ printTree cor
compile cor
data Compiler = Compiler
{ data :: [LLVMIr] }
data LLVMIr =
compile :: Program -> IO ()
compile p = print "hej"