diff options
| author | Mirek Kratochvil <exa.exa@gmail.com> | 2022-11-05 18:02:14 +0100 |
|---|---|---|
| committer | Mirek Kratochvil <exa.exa@gmail.com> | 2022-11-05 18:02:14 +0100 |
| commit | 8eb307e3e11a109aeae7f96ffcb7476d93493ffb (patch) | |
| tree | ac0ff172a8508268f0e93d3c869c910122b2303d /app/Main.hs | |
| parent | 8f47919624f0153ff9afa299d994d66bb63037ef (diff) | |
| download | prlg-8eb307e3e11a109aeae7f96ffcb7476d93493ffb.tar.gz prlg-8eb307e3e11a109aeae7f96ffcb7476d93493ffb.tar.bz2 | |
interpreter interprets.
Diffstat (limited to 'app/Main.hs')
| -rw-r--r-- | app/Main.hs | 44 |
1 files changed, 3 insertions, 41 deletions
diff --git a/app/Main.hs b/app/Main.hs index 5dfb25e..2222450 100644 --- a/app/Main.hs +++ b/app/Main.hs @@ -1,46 +1,8 @@ module Main where -import qualified Compiler as C -import Control.Monad.IO.Class -import qualified Data.Map as M -import qualified Interpreter as I -import qualified Parser as P +import Control.Monad import System.Console.Haskeline -import qualified Text.Megaparsec as MP -import Text.Pretty.Simple - -ppr :: Show a => a -> IO () -ppr = - pPrintOpt - CheckColorTty - defaultOutputOptionsDarkBg - { outputOptionsCompactParens = True - , outputOptionsIndentAmount = 2 - , outputOptionsPageWidth = 80 - } - -interpret :: String -> IO () -interpret = lex - where - lex input = - case MP.parse P.lexPrlg "-" input of - Left bundle -> putStr (MP.errorBundlePretty bundle) - Right toks -> parse toks - parse toks = - case MP.parse P.parsePrlg "-" toks of - Left bundle -> putStr (MP.errorBundlePretty bundle) - Right ast -> prologize ast - prologize ast = ppr $ map (P.ast2prlg P.defaultOps) ast +import Frontend (interpreter) main :: IO () -main = - runInputT defaultSettings loop - where - loop :: InputT IO () - loop = do - minput <- getInputLine "prlg> " - case minput of - Nothing -> return () - Just input -> do - liftIO $ interpret input - loop +main = runInputT defaultSettings interpreter |
