helium-1.8: src/Helium/Main/PhaseParser.hs
{-| Module : PhaseParser
License : GPL
Maintainer : helium@cs.uu.nl
Stability : experimental
Portability : portable
-}
module Helium.Main.PhaseParser(phaseParser) where
import Helium.Main.CompileUtils
import Helium.Parser.LexerToken(Token)
import Helium.Parser.Parser (module_)
import Helium.Parser.ParseLibrary(runHParser)
import Text.ParserCombinators.Parsec.Error (ParseError)
phaseParser ::
String -> [Token] -> [Option] ->
Phase ParseError Module
phaseParser fullName tokens options = do
enterNewPhase "Parsing" options
case runHParser module_ fullName tokens True of
Left parseError ->
return (Left [parseError])
Right m ->
return (Right m)