packages feed

yapb-0.2: app/ambiguous/Main.hs

module Main where

import CommonParserUtil

import Lexer
import Terminal
import Parser
import Expr

import Run(doProcess)
import ParserSpec (spec)

import System.IO
import System.Environment (getArgs, withArgs)

main :: IO ()
main = do
  args <- getArgs
  _main args

-- Todo: Can I fix to have "test" as a command in stack exec?

_main [] = return ()
_main (fileName:args) = 
  case fileName of
    "test" -> withArgs [] spec
    _ -> do _ <- doProcess True fileName
            _main args

readline msg = do
  putStr msg
  hFlush stdout
  readline'

readline' = do
  ch <- getChar
  if ch == '\n' then
    return ""
  else
    do line <- readline'
       return (ch:line)