haskhol-core-1.1.0: src/HaskHOL/Core/Parser.hs
{-|
Module: HaskHOL.Core.Parser
Copyright: (c) The University of Kansas 2013
LICENSE: BSD3
Maintainer: ecaustin@ittc.ku.edu
Stability: unstable
Portability: unknown
This module defines the parsers for 'HOLType's and 'HOLTerm's.
It also re-exports the related benign flags, theory extension mechanisms,
and type/term elaborators.
For examples of the parsers and elaborators in use see the
"HaskHOL.Core.TermRep" module.
-}
module HaskHOL.Core.Parser
( -- * Elaboration Functions
tyElab
, elab
-- * Parsing Functions
, runHOLParser
, ptype
, holTypeParser
, pterm
, holTermParser
-- * Type/Term Representation Conversions
, HOLTypeRep(..)
, HOLTermRep(..)
, HOLThmRep(..)
-- * Primitive Parser types, utility functions, and extensions.
, module HaskHOL.Core.Parser.Lib
) where
import HaskHOL.Core.Lib
import HaskHOL.Core.Parser.Lib
import HaskHOL.Core.Parser.TypeParser
import HaskHOL.Core.Parser.TermParser
import HaskHOL.Core.Parser.Elab
import HaskHOL.Core.Parser.Rep
{-| Runs a custom parser when provided with an input 'String' and a
'HOLContext'.
-}
runHOLParser :: MyParser thry a -> Text -> HOLContext thry ->
Either ParseError a
runHOLParser parser input ctxt =
runParser parser (ctxt, [], 0) "" input
-- | Parser for 'HOLTerm's.
holTermParser :: Text -> HOLContext thry -> Either ParseError PreTerm
holTermParser = runHOLParser pterm
-- | Parser for 'HOLType's.
holTypeParser :: Text -> HOLContext thry -> Either ParseError PreType
holTypeParser = runHOLParser ptype