1{-# OPTIONS_GHC -Wall #-}
2{-# LANGUAGE FlexibleContexts #-}
5 , parseDependencies, compile
8import Control.Monad.Error (MonadError, throwError)
9import qualified Data.List as List
10import qualified Data.Map as Map
11import qualified Text.PrettyPrint as P
13import qualified AST.Module as Module (HeaderAndImports(HeaderAndImports), toInterface)
14import qualified Compile
15import qualified Elm.Compiler.Module as PublicModule
16import qualified Elm.Compiler.Version as Version
17import Elm.Utils ((|>))
18import qualified Generate.JavaScript as JS
19import qualified Parse.Helpers as Help
20import qualified Parse.Module as Parse
33 :: (MonadError String m)
35 -> m (PublicModule.Name, [PublicModule.Name])
36parseDependencies src =
37 case Help.iParse Parse.headerAndImports src of
41 Right (Module.HeaderAndImports names _exports imports) ->
43 ( PublicModule.Name names
44 , map (PublicModule.Name . fst) imports
50{-| Compiles Elm source code to JavaScript. -}
55 -> Map.Map PublicModule.Name PublicModule.Interface
56 -> Either String (PublicModule.Interface, String)
57compile user packageName source interfaces =
58 let unwrappedInterfaces =
59 Map.mapKeysMonotonic (\(PublicModule.Name name) -> name) interfaces
61 case Compile.compile user packageName unwrappedInterfaces source of
63 Right (Module.toInterface modul, JS.generate modul)
67 |> List.intersperse ""
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