@@ -1,13 +1,13 @@
1{-# OPTIONS_GHC -Wall #-}
1{-# OPTIONS_GHC -Wall #-}
2{-# LANGUAGE FlexibleContexts #-}
2{-# LANGUAGE FlexibleContexts #-}
3−module Elm.Compiler (version, ModuleName, moduleNameToPath, moduleNameToString, parseDependencies, elmToJs) where
3+module Elm.Compiler (version, parseDependencies, elmToJs) where
5import Control.Monad.Error (MonadError, MonadIO, liftIO, throwError)
5import Control.Monad.Error (MonadError, MonadIO, liftIO, throwError)
6import qualified Data.List as List
6import qualified Data.List as List
7−import System.FilePath ((</>))
8import System.IO.Unsafe (unsafePerformIO)
7import System.IO.Unsafe (unsafePerformIO)
10−import qualified AST.Module as Module
9+import qualified AST.Module as Module (HeaderAndImports(HeaderAndImports), Interfaces)
10+import qualified Elm.Compiler.Module as Module
11import qualified Elm.Compiler.Version as Version
11import qualified Elm.Compiler.Version as Version
12import qualified Metadata.Prelude as Prelude
12import qualified Metadata.Prelude as Prelude
13import qualified Parse.Helpers as Help
13import qualified Parse.Helpers as Help
@@ -21,33 +21,16 @@ version =
21 Version.version
21 Version.version
30−moduleNameToPath :: ModuleName -> FilePath
31−moduleNameToPath (ModuleName names) =
32− List.foldl1 (</>) names
35−moduleNameToString :: ModuleName -> String
36−moduleNameToString (ModuleName names) =
37− List.intercalate "." names
40-- DEPENDENCIES
24-- DEPENDENCIES
42−parseDependencies :: (MonadIO m, MonadError String m) => FilePath -> m (ModuleName, [ModuleName])
26+parseDependencies :: (MonadError String m) => String -> m (Module.Name, [Module.Name])
43−parseDependencies filePath =
27+parseDependencies src =
44− do src <- liftIO (readFile filePath)
45− case Help.iParse Parse.headerAndImports src of
28+ case Help.iParse Parse.headerAndImports src of
46− Left msg ->
29+ Left msg ->
47− throwError (show msg)
30+ throwError (show msg)
49− Right (Module.HeaderAndImports names _exports imports) ->
32+ Right (Module.HeaderAndImports names _exports imports) ->
50− return ( ModuleName names, map (ModuleName . fst) imports )
33+ return ( Module.Name names, map (Module.Name . fst) imports )
53-- COMPILATION
36-- COMPILATION