1{-# OPTIONS_GHC -Wall #-}
4 , parseDependencies, compile
9import qualified Data.Map as Map
11import qualified AST.Module as Module
12import qualified Compile
13import qualified Elm.Compiler.Module as PublicModule
14import qualified Elm.Compiler.Version as Version
15import qualified Generate.JavaScript as JS
16import qualified Parse.Module as Parse
17import qualified Parse.Parse as Parse
18import qualified Reporting.Annotation as A
19import qualified Reporting.Error as Error
20import qualified Reporting.Result as Result
21import qualified Reporting.Warning as Warning
40 -> Either [Error] (PublicModule.Name, [PublicModule.Name])
41parseDependencies sourceCode =
43 (Result.Result _warnings rawResult) =
44 Parse.parse sourceCode Parse.header
48 Left $ map (Error . A.map Error.Syntax) msgs
50 Result.Ok (Module.Header names _exports imports) ->
52 ( PublicModule.Name names
53 , map (PublicModule.Name . fst . A.drop) imports
59{-| Compiles Elm source code to JavaScript. -}
64 -> Map.Map PublicModule.Name PublicModule.Interface
65 -> ([Warning], Either [Error] (PublicModule.Interface, String))
66compile user packageName source interfaces =
67 let unwrappedInterfaces =
68 Map.mapKeysMonotonic (\(PublicModule.Name name) -> name) interfaces
70 (Result.Result warnings rawResult) =
71 Compile.compile user packageName unwrappedInterfaces source
73 (,) (map Warning warnings) $
76 Right (Module.toInterface modul, JS.generate modul)
79 Left (map Error errors)
84newtype Error = Error (A.Located Error.Error)
87errorToString :: String -> String -> Error -> String
88errorToString location source (Error err) =
89 Error.toString location source err
94newtype Warning = Warning (A.Located Warning.Warning)
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