1{-# OPTIONS_GHC -Wall #-}
2{-# LANGUAGE FlexibleContexts #-}
5 , parseDependencies, compile
8import Control.Monad.Error.Class (MonadError, throwError)
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.Helpers as Help
17import qualified Parse.Module as Parse
18import qualified Reporting.Annotation as A
19import qualified Reporting.Task as Task
37 :: (MonadError String m)
39 -> m (PublicModule.Name, [PublicModule.Name])
40parseDependencies src =
41 case Help.iParse Parse.header src of
45 Right (Module.Header names _exports imports) ->
47 ( PublicModule.Name names
48 , map (PublicModule.Name . fst . A.drop) imports
54{-| Compiles Elm source code to JavaScript. -}
59 -> Map.Map PublicModule.Name PublicModule.Interface
60 -> Either String (PublicModule.Interface, String)
61compile user packageName source interfaces =
62 let unwrappedInterfaces =
63 Map.mapKeysMonotonic (\(PublicModule.Name name) -> name) interfaces
66 Compile.compile user packageName unwrappedInterfaces source
69 (Right modul, _warnings) ->
70 Right (Module.toInterface modul, JS.generate modul)
72 (Left _docs, _warnings) ->
73 Left [error "TODO:compile"]
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