1{-# OPTIONS_GHC -Wall #-}
4 , parseDependencies, compile
5 , Dealiaser, dummyDealiaser
6 , Error, errorToString, errorToJson, printError
7 , Warning, warningToString, warningToJson, printWarning
10import qualified Data.Aeson as Json
11import qualified Data.Map as Map
13import qualified AST.Module as Module
14import qualified Compile
15import qualified Elm.Compiler.Module as PublicModule
16import qualified Elm.Compiler.Version as Version
17import qualified Generate.JavaScript as JS
18import qualified Parse.Module as Parse
19import qualified Parse.Parse as Parse
20import qualified Reporting.Annotation as A
21import qualified Reporting.Error as Error
22import qualified Reporting.PrettyPrint as P
23import qualified Reporting.Result as Result
24import qualified Reporting.Warning as Warning
43 -> Either [Error] (PublicModule.Name, [PublicModule.Name])
44parseDependencies sourceCode =
46 (Result.Result _warnings rawResult) =
47 Parse.parse sourceCode Parse.header
51 Left $ map (Error . A.map Error.Syntax) msgs
53 Result.Ok (Module.Header names _exports imports) ->
55 ( PublicModule.Name names
56 , map (PublicModule.Name . fst . A.drop) imports
62{-| Compiles Elm source code to JavaScript. -}
68 -> Map.Map PublicModule.Name PublicModule.Interface
69 -> (Dealiaser, [Warning], Either [Error] (PublicModule.Interface, String))
70compile user packageName isRoot source interfaces =
71 let unwrappedInterfaces =
72 Map.mapKeysMonotonic (\(PublicModule.Name name) -> name) interfaces
74 (Result.Result (dealiaser, warnings) rawResult) =
75 Compile.compile user packageName isRoot unwrappedInterfaces source
77 (,,) (maybe dummyDealiaser Dealiaser dealiaser) (map Warning warnings) $
80 Right (Module.toInterface modul, JS.generate modul)
83 Left (map Error errors)
92dummyDealiaser :: Dealiaser
100 Error (A.Located Error.Error)
103errorToString :: Dealiaser -> String -> String -> Error -> String
104errorToString (Dealiaser dealiaser) location source (Error err) =
105 Error.toString dealiaser location source err
108printError :: Dealiaser -> String -> String -> Error -> IO ()
109printError (Dealiaser dealiaser) location source (Error err) =
110 Error.print dealiaser location source err
113errorToJson :: Dealiaser -> String -> Error -> Json.Value
114errorToJson (Dealiaser dealiaser) location (Error err) =
115 Error.toJson dealiaser location err
121 Warning (A.Located Warning.Warning)
124warningToString :: Dealiaser -> String -> String -> Warning -> String
125warningToString (Dealiaser dealiaser) location source (Warning err) =
126 Warning.toString dealiaser location source err
129printWarning :: Dealiaser -> String -> String -> Warning -> IO ()
130printWarning (Dealiaser dealiaser) location source (Warning err) =
131 Warning.print dealiaser location source err
134warningToJson :: Dealiaser -> String -> Warning -> Json.Value
135warningToJson (Dealiaser dealiaser) location (Warning err) =
136 Warning.toJson dealiaser location err
keysesc to close
- j k
- move down, up
- enter
- open
- esc
- back, or up a level
- 1 2 3 4
- readme, files, commits, refs
- /
- filter
- y
- copy the clone command
- c
- compare the chosen commit with another (or shift-click both)
- ?
- show or hide this list