parsec
parsec copied to clipboard
Parameterized enclosing for char and string literals
charLiteral
and stringLiteral
lexemes encloses literals, respectively, with characters '
and "
(both at the beginning and at the end of a literal) by default. There should be lexemes (one for characters and one for strings) which makes parametric literals enclosing, for instance by taking as arguments a string (not a single character) which encloses a literal at the beginning of it and a string which encloses the literal at the end of it, something like charLiteral :: String -> String -> ParsecT s u m Char
. Thus:
charLiteral "<<" ">>"
would parse <<c>>
, where c
is a single character, valid to be a literal character.
This is just an example, before opening a pull request there should be a reasoning about not to make a breaking change (if it's possible).
Anyway, actually, I don't know a clean way to do what I just explained with the actual API.
Both charLiteral
and stringLiteral
say
The literal character is parsed according to the grammar rules defined in the Haskell report
Breaking change to parsec
are not really welcome.