module Language.C.Parser (
module Language.C.Parser.Lexer,
module Language.C.Parser.Monad,
module Language.C.Parser.Parser,
parse
) where
import Control.Exception
import qualified Data.ByteString.Char8 as B
import Data.Loc
import Language.C.Parser.Lexer
import Language.C.Parser.Parser
import Language.C.Parser.Monad
import Language.C.Syntax
parse :: [Extensions]
-> [String]
-> P a
-> B.ByteString
-> Maybe Pos
-> Either SomeException a
parse :: forall a.
[Extensions]
-> [String]
-> P a
-> ByteString
-> Maybe Pos
-> Either SomeException a
parse [Extensions]
exts [String]
typnames P a
p ByteString
bs Maybe Pos
pos =
P a -> PState -> Either SomeException a
forall a. P a -> PState -> Either SomeException a
evalP P a
p ([Extensions] -> [String] -> ByteString -> Maybe Pos -> PState
emptyPState [Extensions]
exts [String]
typnames ByteString
bs Maybe Pos
pos)