driverslop

This commit is contained in:
2026-07-06 02:27:55 -06:00
parent 51c86a12cc
commit e077c6b3c1
2 changed files with 23 additions and 2 deletions
+13
View File
@@ -27,6 +27,7 @@ import Gyehoek.Scheme.Syntax (Lit(LitInt))
import Text.Printf import Text.Printf
import qualified Data.Text as T import qualified Data.Text as T
import qualified Data.Vector.Strict as V import qualified Data.Vector.Strict as V
import Data.IntMap.Strict (IntMap)
type Emit = Writer (Vector Text) type Emit = Writer (Vector Text)
@@ -64,6 +65,18 @@ tshow = T.pack . show
data Module = MkModule
{ funcs :: IntMap Func
}
deriving (Show, Generic)
data Func = MkFunc
{ code :: Text
}
deriving (Show, Generic)
lowerVal :: Env -> Val -> Vector Text lowerVal :: Env -> Val -> Vector Text
lowerVal g (ValLit l) = lowerVal g (ValLit l) =
+10 -2
View File
@@ -8,7 +8,7 @@ module Main
import Gyehoek.Options import Gyehoek.Options
import qualified Data.Text.IO as TIO import qualified Data.Text.IO as TIO
import Data.Text (Text) import Data.Text (Text)
import Prelude hiding (readFile, (.),id) import Prelude hiding (readFile)
import Options.Applicative import Options.Applicative
import Control.Lens import Control.Lens
import Data.Generics.Labels import Data.Generics.Labels
@@ -50,8 +50,16 @@ hGetContents h = T.decodeUtf8 <$> FB.hGetContents h
readFile :: FileSystem :> es => FilePath -> Eff es Text readFile :: FileSystem :> es => FilePath -> Eff es Text
readFile f = FS.withFile f FS.ReadMode hGetContents readFile f = FS.withFile f FS.ReadMode hGetContents
withFile
:: (FileSystem :> es)
=> FilePath -> FS.IOMode -> (Handle -> Eff es a) -> Eff es a
withFile "-" _ k = k FS.stdin
withFile f m k = FS.withFile f m k
readScm :: FileSystem :> es => FilePath -> Eff es (List Scm.Exp) readScm :: FileSystem :> es => FilePath -> Eff es (List Scm.Exp)
readScm f = (Sexp.parseSexps f <$> readFile f) >>= either error pure readScm f =
withFile f FS.ReadMode $ \h ->
Sexp.parseSexps f <$> hGetContents h >>= either error pure
driver driver
:: (GenSym :> es, FileSystem :> es, IOE :> es) :: (GenSym :> es, FileSystem :> es, IOE :> es)