module Puppet.Parser (
runPuppetParser
, puppetParser
, prettyParseError
, module Puppet.Parser.PrettyPrinter
, module Puppet.Parser.Types
, module Puppet.Parser.Lens
) where
import XPrelude
import Text.Megaparsec
import Puppet.Parser.PrettyPrinter
import Puppet.Parser.Lens
import Puppet.Parser.Internal
import Puppet.Parser.Types
prettyParseError :: ParseErrorBundle Text Void -> PrettyError
prettyParseError err = PrettyError $ "cannot parse" <+> pretty (errorBundlePretty err)
runPuppetParser :: String -> Text -> Either (ParseErrorBundle Text Void) (Vector Statement)
runPuppetParser = parse puppetParser
puppetParser :: Parser (Vector Statement)
puppetParser = optional sc >> statementList