Safe Haskell | None |
---|
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
- readshow :: (Read a, Show a) => PrinterParser StringsError [String] r (a :- 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
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
Note that the combinator (rPair . int . int)
is ill-defined because the parse can not tell where it is supposed to split the sequence of digits to produced two ints.
integer :: PrinterParser StringsError [String] r (Integer :- r)Source
matches an Integer
Note that the combinator (rPair . integer . integer)
is ill-defined because the parse can not tell where it is supposed to split the sequence of digits to produced two ints.
lit :: String -> PrinterParser StringsError [String] r rSource
a constant string
readshow :: (Read a, Show a) => PrinterParser StringsError [String] r (a :- r)Source
lift 'Read'/'Show' to a PrinterParser
There are a few restrictions here:
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") ()