on master help sign in
Get rid of fromFile / have the caller do that
1238607Evan Czaplicki
compiler/src/Elm/Kernel.hs+8−8
@@ -3,7 +3,7 @@
3module Elm.Kernel
3module Elm.Kernel
4 ( Content(..)
4 ( Content(..)
5 , Chunk(..)
5 , Chunk(..)
6− , fromFile
6+ , fromByteString
7 , countFields
7 , countFields
8 )
8 )
9 where
9 where
@@ -11,6 +11,7 @@ module Elm.Kernel
11
11
12import Control.Monad (liftM, liftM2)
12import Control.Monad (liftM, liftM2)
13import Data.Binary (Binary, get, put, getWord8, putWord8)
13import Data.Binary (Binary, get, put, getWord8, putWord8)
14+import qualified Data.ByteString as BS
14import Data.Coerce (coerce)
15import Data.Coerce (coerce)
15import qualified Data.List as List
16import qualified Data.List as List
16import qualified Data.Map as Map
17import qualified Data.Map as Map
@@ -25,7 +26,7 @@ import qualified Elm.Package as Pkg
25import qualified Parse.Module as Module
26import qualified Parse.Module as Module
26import qualified Parse.Variable as Var
27import qualified Parse.Variable as Var
27import Parse.Utils
28import Parse.Utils
28−import Parse.Primitives hiding (Parser, fromFile)
29+import Parse.Primitives hiding (Parser, fromByteString)
29import qualified Parse.Primitives as P
30import qualified Parse.Primitives as P
30import qualified Reporting.Annotation as A
31import qualified Reporting.Annotation as A
31import qualified Reporting.Error.Syntax as E
32import qualified Reporting.Error.Syntax as E
@@ -83,12 +84,11 @@ type Foreigns =
83 Map.Map ModuleName.Raw Pkg.Name
84 Map.Map ModuleName.Raw Pkg.Name
84
85
85
86
86−fromFile :: Pkg.Name -> Foreigns -> FilePath -> IO (Maybe Content)
87+fromByteString :: Pkg.Name -> Foreigns -> BS.ByteString -> Maybe Content
87−fromFile pkg foreigns path =
88+fromByteString pkg foreigns bytes =
88− do result <- P.fromFile (parser pkg foreigns) path
89+ case P.fromByteString (parser pkg foreigns) bytes of
89− case result of
90− P.Ok content _ -> return (Just content)
90+ P.Ok content _ -> Just content
91− P.Err _ _ _ _ -> return Nothing
91+ P.Err _ _ _ _ -> Nothing
92
92
93
93
94parser :: Pkg.Name -> Foreigns -> Parser Content
94parser :: Pkg.Name -> Foreigns -> Parser Content