definition module Sil.Util.Parser from StdOverloaded import class ==, class toString from Control.Applicative import class Applicative, class Alternative from Control.Monad import class Monad from Data.Error import :: MaybeError from Data.Functor import class Functor from Data.Maybe import :: Maybe from Sil.Error import :: Error :: *ParseState a :: ParsePosition = { pp_line :: Int , pp_token :: Int } class getPos a :: a -> ParsePosition instance getPos ParsePosition :: ParseInput a = PI_NewLine | PI_Token a makeParseState :: [ParseInput a] -> ParseState a :: Parser a b = Parser (*(ParseState a) -> *(MaybeError Error b, *ParseState a)) instance Functor (Parser a) instance Applicative (Parser a) instance Monad (Parser a) instance Alternative (Parser a) class name a :: a -> String instance name String runParser :: (Parser a b) *(ParseState a) -> *(MaybeError Error b, *ParseState a) getPosition :: Parser a ParsePosition () :: (Parser a b) Error -> Parser a b (<#>) :: (Parser a b) String -> Parser a b | toString a fail :: Parser a b top :: Parser a a peek :: Parser a a satisfy :: (a -> Bool) -> Parser a a check :: (a -> Bool) -> Parser a a (until) infix 2 :: (Parser a b) (Parser a c) -> Parser a [b] item :: a -> Parser a a | ==, name, toString a anyItem :: ([a] -> Parser a a) | ==, name, toString a list :: [a] -> Parser a [a] | ==, name, toString a seplist :: a (Parser a b) -> Parser a [b] | ==, name, toString a seplistUntil :: a a (Parser a b) -> Parser a [b] | ==, name, toString a eof :: Parser a () | toString a