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
38 :: (MonadError String m)
40 -> m (PublicModule.Name, [PublicModule.Name])
41parseDependencies src =
42 case Help.iParse Parse.headerAndImports src of
46 Right (Module.HeaderAndImports names _exports imports) ->
48 ( PublicModule.Name names
49 , map (PublicModule.Name . fst) imports
55{-| Compiles Elm source code to JavaScript. -}
60 -> Map.Map PublicModule.Name PublicModule.Interface
61 -> Either String (PublicModule.Interface, String)
62compile user packageName source interfaces =
63 let unwrappedInterfaces =
64 Map.mapKeysMonotonic (\(PublicModule.Name name) -> name) interfaces
66 case Compile.compile user packageName unwrappedInterfaces source of
68 Right (Module.toInterface modul, JS.generate modul)
72 |> 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