program is runnable again, File doesn't backtrack out of import anymore

This commit is contained in:
vegowotenks 2025-02-21 14:43:35 +01:00
parent 6990c3f759
commit ac0e697622
5 changed files with 78 additions and 14 deletions

View file

@ -1,10 +1,32 @@
module Main (main) where
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
minimalConfig :: IO Config
minimalConfig = do
workingDir <- Directory.getCurrentDirectory >>= Path.parseAbsDir
pure $ Config (Set.singleton workingDir)
main :: IO ()
main = do
text <- getContents
-- fixme: handle errors?
print $ Parsec.parse (File.parse "<stdin>" <* Parsec.eof) "<stdin>" text
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