content: {-# OPTIONS  #-}
  -----------------------------------------------------------------------------
  -- |
  -- Module      :  Language.C.Parser
  -- Copyright   :  (c) 2008 Benedikt Huber
  -- License     :  BSD-style
  -- Maintainer  : benedikt.huber@gmail.com
  -- Stability   : experimental
  -- Portability : ghc
  --
  -- Language.C parser
  -----------------------------------------------------------------------------
  module Language.C.Parser (
      -- * Simple API
      parseC,
      -- * Parser Monad
      P,execParser,execParser_,builtinTypeNames,
      -- * Exposed Parsers
      translUnitP, extDeclP, statementP, expressionP,
      -- * Parser Monad
      ParseError(..)
  )
  where
  import Language.C.Parser.Parser (parseC,translUnitP, extDeclP, statementP, expressionP)
  import Language.C.Parser.ParserMonad (execParser, ParseError(..),P)
  import Language.C.Parser.Builtin (builtinTypeNames)
  
  import Language.C.Data
  
  -- | run the given parser using a new name supply and builtin typedefs
  --   see 'execParser'
  --
  -- Synopsis: @runParser parser inputStream initialPos@
  execParser_ :: P a -> InputStream -> Position -> Either ParseError a
  execParser_ parser input pos =
    fmap fst $ execParser parser input pos builtinTypeNames newNameSupply
  