module Data.ParserCombinators.Kangaroo
(
Kangaroo
, runKangaroo
, parse
, ParseErr
, RegionCoda(..)
, RegionName
, liftIOAction
, reportError
, substError
, word8
, satisfy
, checkWord8
, opt
, skip
, position
, region
, atEnd
, lengthRemaining
, regionSize
, intraparse
, advance
, advanceRelative
, restrict
, restrictToPos
, printHexAll
, printHexRange
, printRegionStack
, module Data.ParserCombinators.Kangaroo.Combinators
, module Data.ParserCombinators.Kangaroo.Prim
) where
import Data.ParserCombinators.Kangaroo.Combinators
import Data.ParserCombinators.Kangaroo.ParseMonad
import Data.ParserCombinators.Kangaroo.Prim
type Kangaroo a = GenKangaroo () a
runKangaroo :: Kangaroo a -> FilePath -> IO (Either ParseErr a)
runKangaroo p filename = runGenKangaroo p () filename >>= \(a,_) -> return a
parse :: Kangaroo a -> FilePath -> IO (Either ParseErr a)
parse = runKangaroo