@@ -1,12 +1,12 @@
1{-# OPTIONS_GHC -Wall #-}
1{-# OPTIONS_GHC -Wall #-}
2module Elm.Compiler
2module Elm.Compiler
4− , parseDependencies, Tag(..)
5 , compile, Context(..), Result(..)
4 , compile, Context(..), Result(..)
7 , Localizer, dummyLocalizer
6 , Localizer, dummyLocalizer
8 , Error, errorToDoc, errorToJson
7 , Error, errorToDoc, errorToJson
9 , Warning, warningToDoc, warningToJson
8 , Warning, warningToDoc, warningToJson
9+ , parseDependencies, Tag(..)
@@ -49,46 +49,6 @@ version =
55−data Tag = Normal | Effect | Port
58−parseDependencies :: Package.Name -> Text -> Either Error (Tag, Maybe M.Raw, [M.Raw])
59−parseDependencies pkgName sourceCode =
60− case Parse.run Parse.header sourceCode of
62− Right $ getDeps pkgName header
65− Left (Error (A.map Error.Syntax err))
68−getDeps :: Package.Name -> Module.Header [Module.UserImport] -> (Tag, Maybe M.Raw, [M.Raw])
69−getDeps pkgName (Module.Header maybeHeaderDecl imports) =
72− if pkgName == Package.core
73− then map (fst . A.drop) imports
74− else map (fst . A.drop) imports ++ map fst Imports.defaults
76− case maybeHeaderDecl of
78− ( Normal, Nothing, dependencies )
80− Just (Module.HeaderDecl sourceTag name _ _ _) ->
84− Module.Normal -> Normal
85− Module.Port _ -> Port
86− Module.Effect _ -> Effect
88− ( tag, Just name, dependencies )
92-- COMPILATION
52-- COMPILATION
@@ -204,3 +164,43 @@ warningToDoc (Localizer localizer) location source (Warning (A.A region wrn)) =
204warningToJson :: Localizer -> String -> Warning -> Json.Value
164warningToJson :: Localizer -> String -> Warning -> Json.Value
205warningToJson (Localizer localizer) location (Warning wrn) =
165warningToJson (Localizer localizer) location (Warning wrn) =
206 Warning.toJson localizer location wrn
166 Warning.toJson localizer location wrn
173+data Tag = Normal | Effect | Port
176+parseDependencies :: Package.Name -> Text -> Either Error (Tag, Maybe M.Raw, [M.Raw])
177+parseDependencies pkgName sourceCode =
178+ case Parse.run Parse.header sourceCode of
180+ Right $ getDeps pkgName header
183+ Left (Error (A.map Error.Syntax err))
186+getDeps :: Package.Name -> Module.Header [Module.UserImport] -> (Tag, Maybe M.Raw, [M.Raw])
187+getDeps pkgName (Module.Header maybeHeaderDecl imports) =
190+ if pkgName == Package.core
191+ then map (fst . A.drop) imports
192+ else map (fst . A.drop) imports ++ map fst Imports.defaults
194+ case maybeHeaderDecl of
196+ ( Normal, Nothing, dependencies )
198+ Just (Module.HeaderDecl sourceTag name _ _ _) ->
202+ Module.Normal -> Normal
203+ Module.Port _ -> Port
204+ Module.Effect _ -> Effect
206+ ( tag, Just name, dependencies )