ubcc/app/Main.hs

33 lines
814 B
Haskell
Raw Normal View History

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 Text.Parsec as Parsec
import qualified Path as Path
import Ubc.Parse.Syntax.Config (Config(..))
import qualified Ubc.Parse.Syntax.File as File
2024-12-30 08:44:51 +01:00
minimalConfig :: IO Config
minimalConfig = do
workingDir <- Directory.getCurrentDirectory >>= Path.parseAbsDir
pure $ Config (Set.singleton workingDir)
2024-12-30 08:44:51 +01:00
main :: IO ()
main = do
text <- 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