on master help sign in
Have Elm.Compiler.parseDependencies produce tags
commit4b72f55ea61ea784481439260929b270606e94ed authorEvan Czaplicki <info@elm-lang.org> dateTue 19 Apr 2016, 15:13 (11 years ago) parentf63f8a6
1 file changed+20−4
src/Elm/Compiler.hs+20−4
src/Elm/Compiler.hs+20−4
@@ -1,7 +1,7 @@
11{-# OPTIONS_GHC -Wall #-}
22module Elm.Compiler
33 ( version
4− , parseDependencies
4+ , parseDependencies, Tag(..)
55 , compile, Context(..), Result(..)
66 , Localizer, dummyLocalizer
77 , Error, errorToString, errorToJson, printError
@@ -47,14 +47,30 @@ version =
4747-- DEPENDENCIES
4848
4949
50−parseDependencies :: String -> Either [Error] (PublicModule.Raw, [PublicModule.Raw])
50+data Tag
51+ = Normal
52+ | Effect
53+ | Port
54+
55+
56+parseDependencies :: String -> Either [Error] (Tag, PublicModule.Raw, [PublicModule.Raw])
5157parseDependencies sourceCode =
5258 let
5359 (Result.Result _ _ answer) =
5460 Parse.parse sourceCode Parse.header
5561
56− getDeps (Module.Header _ name _ _ _ imports) =
57− ( name, map (fst . A.drop) imports )
62+ getDeps (Module.Header sourceTag name _ _ _ imports) =
63+ let
64+ tag =
65+ case sourceTag of
66+ Module.Normal -> Normal
67+ Module.Port _ -> Port
68+ Module.Effect _ -> Effect
69+ in
70+ ( tag
71+ , name
72+ , map (fst . A.drop) imports
73+ )
5874 in
5975 Result.answerToEither (Error . A.map Error.Syntax) getDeps answer
6076