-- |
-- Module       : Data.TPTP.Parse.Text.Lazy
-- Description  : An attoparsec-based parser for the TPTP language.
-- Copyright    : (c) Evgenii Kotelnikov, 2019-2021
-- License      : GPL-3
-- Maintainer   : evgeny.kotelnikov@gmail.com
-- Stability    : experimental
--

module Data.TPTP.Parse.Text.Lazy (
  -- * Runners of parsers for TPTP units
  parseUnit,

  -- * Runners of parsers for TPTP inputs
  parseTPTP,

  -- * Runners of parsers for TSTP inputs
  parseTSTP
) where

import Data.Attoparsec.Text.Lazy (Result, parse)
import Data.Text.Lazy (Text)

import Data.TPTP (Unit, TPTP, TSTP)
import Data.TPTP.Parse.Combinators (input, unit, tptp, tstp)


-- | Parse a single TPTP unit from 'Data.Text.Lazy.Text'.
parseUnit :: Text -> Result Unit
parseUnit :: Text -> Result Unit
parseUnit = Parser Unit -> Text -> Result Unit
forall a. Parser a -> Text -> Result a
parse (Parser Unit -> Parser Unit
forall a. Parser a -> Parser a
input Parser Unit
unit)

-- | Parse a TPTP input from 'Data.Text.Lazy.Text'.
parseTPTP :: Text -> Result TPTP
parseTPTP :: Text -> Result TPTP
parseTPTP = Parser TPTP -> Text -> Result TPTP
forall a. Parser a -> Text -> Result a
parse (Parser TPTP -> Parser TPTP
forall a. Parser a -> Parser a
input Parser TPTP
tptp)

-- | Parse a TSTP input from 'Data.Text.Lazy.Text'.
parseTSTP :: Text -> Result TSTP
parseTSTP :: Text -> Result TSTP
parseTSTP = Parser TSTP -> Text -> Result TSTP
forall a. Parser a -> Text -> Result a
parse Parser TSTP
tstp