@@ -1,13 +1,13 @@
11{-# OPTIONS_GHC -Wall #-}
22{-# LANGUAGE FlexibleContexts #-}
3−module Elm.Compiler (version, ModuleName, moduleNameToPath, moduleNameToString, parseDependencies, elmToJs) where
3+module Elm.Compiler (version, parseDependencies, elmToJs) where
44
55import Control.Monad.Error (MonadError, MonadIO, liftIO, throwError)
66import qualified Data.List as List
7−import System.FilePath ((</>))
87import System.IO.Unsafe (unsafePerformIO)
98
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
1111import qualified Elm.Compiler.Version as Version
1212import qualified Metadata.Prelude as Prelude
1313import qualified Parse.Helpers as Help
@@ -21,33 +21,16 @@ version =
2121 Version.version
2222
2323
24−-- MODULE NAMES
25−
26−newtype ModuleName =
27− ModuleName [String]
28−
29−
30−moduleNameToPath :: ModuleName -> FilePath
31−moduleNameToPath (ModuleName names) =
32− List.foldl1 (</>) names
33−
34−
35−moduleNameToString :: ModuleName -> String
36−moduleNameToString (ModuleName names) =
37− List.intercalate "." names
38−
39−
4024-- DEPENDENCIES
4125
42−parseDependencies :: (MonadIO m, MonadError String m) => FilePath -> m (ModuleName, [ModuleName])
43−parseDependencies filePath =
44− do src <- liftIO (readFile filePath)
45− case Help.iParse Parse.headerAndImports src of
46− Left msg ->
47− throwError (show msg)
26+parseDependencies :: (MonadError String m) => String -> m (Module.Name, [Module.Name])
27+parseDependencies src =
28+ case Help.iParse Parse.headerAndImports src of
29+ Left msg ->
30+ throwError (show msg)
4831
49− Right (Module.HeaderAndImports names _exports imports) ->
50− return ( ModuleName names, map (ModuleName . fst) imports )
32+ Right (Module.HeaderAndImports names _exports imports) ->
33+ return ( Module.Name names, map (Module.Name . fst) imports )
5134
5235
5336-- COMPILATION