1{-# OPTIONS_GHC -Wall #-}
9import qualified Data.ByteString as B
11import qualified AST.Source as Src
12import qualified Elm.Compiler.Module as M
13import qualified Elm.Name as N
14import qualified Elm.Package as Pkg
15import qualified Parse.Primitives as Parser
16import qualified Parse.Module as Module
17import qualified Reporting.Annotation as A
18import qualified Reporting.Error as Error
25data Tag = Normal | Effect | Port
32parse :: Pkg.Name -> B.ByteString -> Either Error.Error (Maybe (Tag, M.Raw), [M.Raw])
33parse pkgName sourceCode =
36 Module.module_ pkgName (return ())
38 case Parser.run headerParser sourceCode of
39 Right (Src.Module header imports _) ->
41 ( fmap simplifyHeader header
46 Left (Error.Syntax err)
49getName :: Src.Import -> N.Name
50getName (Src.Import (A.At _ name) _ _) =
58simplifyHeader :: Src.Header -> (Tag, N.Name)
59simplifyHeader (Src.Header name effects _ _) =
60 ( toTag effects, name )
63toTag :: Src.Effects -> Tag
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