From fc69c506ff228794995807f382f0ce7e6bffa72e Mon Sep 17 00:00:00 2001 From: VegOwOtenks Date: Sun, 29 Jun 2025 11:00:39 +0200 Subject: [PATCH] feat[app]: Parsing and printing the program --- app/Main.hs | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/app/Main.hs b/app/Main.hs index a31c5a0..4d60a3c 100644 --- a/app/Main.hs +++ b/app/Main.hs @@ -1,4 +1,19 @@ +{-# LANGUAGE LambdaCase #-} module Main (main) where +import Control.Monad ((<$!>)) + +import qualified System.Environment as Env + +import qualified Language.Brainfuck as Brainfuck +import qualified Data.Text as Text +import qualified Data.Text.IO as TextIO main :: IO () -main = pure () +main = do + programFile <- Env.getArgs >>= \case + [x] -> pure x + _ -> error "usage: [program] source.bf" + + instructions <- Brainfuck.parse <$!> TextIO.readFile programFile + + mapM_ (TextIO.putStrLn . Text.pack . show) instructions