a PrinterParser
library for working with '[String]'
- type StringsError = ParserError MajorMinorPos
- (</>) :: PrinterParser StringsError [String] b c -> PrinterParser StringsError [String] a b -> PrinterParser StringsError [String] a c
- alpha :: PrinterParser StringsError [String] r (Char :- r)
- anyChar :: PrinterParser StringsError [String] r (Char :- r)
- anyString :: PrinterParser StringsError [String] r (String :- r)
- char :: Char -> PrinterParser StringsError [String] r (Char :- r)
- digit :: PrinterParser StringsError [String] r (Char :- r)
- eos :: PrinterParser StringsError [String] r r
- int :: PrinterParser StringsError [String] r (Int :- r)
- integer :: PrinterParser StringsError [String] r (Integer :- r)
- lit :: String -> PrinterParser StringsError [String] r r
- satisfy :: (Char -> Bool) -> PrinterParser StringsError [String] r (Char :- r)
- satisfyStr :: (String -> Bool) -> PrinterParser StringsError [String] r (String :- r)
- space :: PrinterParser StringsError [String] r (Char :- r)
- isComplete :: [String] -> Bool
- parseStrings :: PrinterParser StringsError [String] () (r :- ()) -> [String] -> Either StringsError r
- unparseStrings :: PrinterParser e [String] () (r :- ()) -> r -> Maybe [String]
Types
Combinators
(</>) :: PrinterParser StringsError [String] b c -> PrinterParser StringsError [String] a b -> PrinterParser StringsError [String] a cSource
equivalent to f . eos . g
alpha :: PrinterParser StringsError [String] r (Char :- r)Source
matches alphabetic Unicode characters (lower-case, upper-case and title-case letters,
plus letters of caseless scripts and modifiers letters). (Uses isAlpha
)
anyChar :: PrinterParser StringsError [String] r (Char :- r)Source
any character
anyString :: PrinterParser StringsError [String] r (String :- r)Source
matches any String
char :: Char -> PrinterParser StringsError [String] r (Char :- r)Source
matches the specified character
digit :: PrinterParser StringsError [String] r (Char :- r)Source
ascii digits '0'..'9'
eos :: PrinterParser StringsError [String] r rSource
end of string
int :: PrinterParser StringsError [String] r (Int :- r)Source
matches an Int
integer :: PrinterParser StringsError [String] r (Integer :- r)Source
matches an Integer
lit :: String -> PrinterParser StringsError [String] r rSource
a constant string
satisfy :: (Char -> Bool) -> PrinterParser StringsError [String] r (Char :- r)Source
statisfy a Char
predicate
satisfyStr :: (String -> Bool) -> PrinterParser StringsError [String] r (String :- r)Source
space :: PrinterParser StringsError [String] r (Char :- r)Source
matches white-space characters in the Latin-1 range. (Uses isSpace
)
Running the PrinterParser
isComplete :: [String] -> BoolSource
Predicate to test if we have parsed all the strings.
Typically used as argument to parse1
see also: parseStrings
parseStrings :: PrinterParser StringsError [String] () (r :- ()) -> [String] -> Either StringsError rSource
run the parser
Returns the first complete parse or a parse error.
parseStrings (rUnit . lit "foo") ["foo"]
unparseStrings :: PrinterParser e [String] () (r :- ()) -> r -> Maybe [String]Source
run the printer
unparseStrings (rUnit . lit "foo") ()