on master help sign in
Change public API of parseDependencies to give out Errors
commit19169fc42866d898bf49ee25d2a7fd0180592366 authorEvan Czaplicki <info@elm-lang.org> dateSun 10 May 2015, 14:47 (11 years ago) parent3d63f82
2 files changed+18−17
src/Elm/Compiler.hs+17−16 src/Parse/Parse.hs+1−1
src/Elm/Compiler.hs+17−16
@@ -1,5 +1,4 @@
11{-# OPTIONS_GHC -Wall #-}
2−{-# LANGUAGE FlexibleContexts #-}
32module Elm.Compiler
43 ( version, rawVersion
54 , parseDependencies, compile
@@ -7,7 +6,6 @@ module Elm.Compiler
76 , Warning
87 ) where
98
10−import Control.Monad.Error.Class (MonadError, throwError)
119import qualified Data.Map as Map
1210
1311import qualified AST.Module as Module
@@ -15,8 +13,8 @@ import qualified Compile
1513import qualified Elm.Compiler.Module as PublicModule
1614import qualified Elm.Compiler.Version as Version
1715import qualified Generate.JavaScript as JS
18−import qualified Parse.Helpers as Help
1916import qualified Parse.Module as Parse
17+import qualified Parse.Parse as Parse
2018import qualified Reporting.Annotation as A
2119import qualified Reporting.Error as Error
2220import qualified Reporting.Result as Result
@@ -38,19 +36,22 @@ rawVersion =
3836-- DEPENDENCIES
3937
4038parseDependencies
41− :: (MonadError String m)
42− => String
43− -> m (PublicModule.Name, [PublicModule.Name])
44−parseDependencies src =
45− case Help.iParse Parse.header src of
46− Left msg ->
47− throwError (show msg)
48−
49− Right (Module.Header names _exports imports) ->
50− return
51− ( PublicModule.Name names
52− , map (PublicModule.Name . fst . A.drop) imports
53− )
39+ :: String
40+ -> Either [Error] (PublicModule.Name, [PublicModule.Name])
41+parseDependencies sourceCode =
42+ let
43+ (Result.Result _warnings rawResult) =
44+ Parse.parse sourceCode Parse.header
45+ in
46+ case rawResult of
47+ Result.Err msgs ->
48+ Left $ map (Error . A.map Error.Syntax) msgs
49+
50+ Result.Ok (Module.Header names _exports imports) ->
51+ Right
52+ ( PublicModule.Name names
53+ , map (PublicModule.Name . fst . A.drop) imports
54+ )
5455
5556
5657-- COMPILATION
src/Parse/Parse.hs+1−1
@@ -1,5 +1,5 @@
11{-# OPTIONS_GHC -Wall #-}
2−module Parse.Parse (program) where
2+module Parse.Parse (program, parse) where
33
44import Control.Applicative ((<$>), (<*>))
55import qualified Data.Map as Map