On Tue, Feb 04, 2020 at 08:55:55PM -0800, Marc Simpson wrote: > The current filter (py-filt.l) only supports triple-quoted strings > formed with double quotes; single quote multi-line literals are > incorrectly highlighted, e.g.
hmm - I overlooked that (when I wrote it in 1999).
> '''
> 'foo'
> bar
> '''
>
> Naive patch: declare QUOTE4, duplicate and adapt the existing QUOTE3
> block:
>
> %s NORMAL QUOTE1 QUOTE2 QUOTE3 QUOTE4
>
> ...
>
> <NORMAL>\'\'\' { BeginQuote(QUOTE4, String_attr); }
> <QUOTE4>\'\'\' { FinishQuote(NORMAL); }
> <QUOTE4>(\\.|.) { flt_bfr_append(yytext, yyleng); }
> <QUOTE4>[\n] { flt_bfr_append(yytext, yyleng); }
>
> (This can surely be simplified.)
Only a little.
The last two lines can be combined with the similar QUOTE3 ones,
like this:
<QUOTE3,QUOTE4>(\\.|.) { flt_bfr_append(yytext, yyleng); }
<QUOTE3,QUOTE4>[\n] { flt_bfr_append(yytext, yyleng); }
lex doesn't have macros, or something analogous, so the other two
lines in each chunk can't be merged.
--
Thomas E. Dickey <[email protected]>
https://invisible-island.net
ftp://ftp.invisible-island.net
signature.asc
Description: PGP signature
