Safe Haskell | None |
---|
- type StringBoomerang = Boomerang StringError String
- type StringPrinterParser = StringBoomerang
- type StringError = ParserError MajorMinorPos
- alpha :: StringBoomerang r (Char :- r)
- anyChar :: StringBoomerang r (Char :- r)
- char :: Char -> StringBoomerang r (Char :- r)
- digit :: StringBoomerang r (Char :- r)
- int :: StringBoomerang r (Int :- r)
- integer :: StringBoomerang r (Integer :- r)
- lit :: String -> StringBoomerang r r
- satisfy :: (Char -> Bool) -> StringBoomerang r (Char :- r)
- space :: StringBoomerang r (Char :- r)
- isComplete :: String -> Bool
- parseString :: StringBoomerang () (r :- ()) -> String -> Either StringError r
- unparseString :: StringBoomerang () (r :- ()) -> r -> Maybe String
Types
type StringPrinterParser = StringBoomerangSource
Deprecated: Use StringBoomerang instead
Combinators
alpha :: StringBoomerang 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 :: StringBoomerang r (Char :- r)Source
any character
digit :: StringBoomerang r (Char :- r)Source
ascii digits '0'..'9'
lit :: String -> StringBoomerang r rSource
a constant string
space :: StringBoomerang r (Char :- r)Source
matches white-space characters in the Latin-1 range. (Uses isSpace
)
Running the Boomerang
isComplete :: String -> BoolSource
Predicate to test if we have parsed all the strings.
Typically used as argument to parse1
see also: parseStrings
parseString :: StringBoomerang () (r :- ()) -> String -> Either StringError rSource
run the parser
Returns the first complete parse or a parse error.
parseString (rUnit . lit "foo") ["foo"]
unparseString :: StringBoomerang () (r :- ()) -> r -> Maybe StringSource
run the printer
unparseString (rUnit . lit "foo") ()