parsec icon indicating copy to clipboard operation
parsec copied to clipboard

Parameterized enclosing for char and string literals

Open bogo8liuk opened this issue 1 year ago • 1 comments

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.

bogo8liuk avatar Aug 20 '23 11:08 bogo8liuk

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.

phadej avatar Aug 21 '23 22:08 phadej