ubcc/app/Main.hs

33 lines
863 B
Haskell

module Main
( main
) where
import System.Directory as Directory
import qualified Control.Monad.Trans.Reader as Reader
import qualified Data.Set as Set
import qualified Data.Text.IO as Text.IO
import qualified Text.Parsec as Parsec
import qualified Path as Path
import Ubc.Parse.Syntax.Config (Config(..))
import qualified Ubc.Parse.Syntax.File as File
minimalConfig :: IO Config
minimalConfig = do
workingDir <- Directory.getCurrentDirectory >>= Path.parseAbsDir
pure $ Config (Set.singleton workingDir)
main :: IO ()
main = do
text <- Text.IO.getContents
-- fixme: handle errors?
parseConfig <- minimalConfig
result <- Reader.runReaderT (Parsec.runPT (File.parse <* Parsec.eof) () "<stdin>" text) parseConfig
print $ result
-- print $ Parsec.parse (File.parse <* Parsec.eof) "<stdin>" text