Unhandled TOK_ERROR
for incompletely parsed unsupported backtracking control flags
#386
Labels
TOK_ERROR
for incompletely parsed unsupported backtracking control flags
#386
The PCRE dialect's lexer and parser hit an assertion with the input
(*:
:This appears to be because the lexer expects a
)
to close the backtracking control flags, but if the'(*' .. ')' {}
in lx does not get the closing')'
it just returnsTOK_ERROR
, and the parser does not have a catch-all error handler at the right layer -- the very first thing the generated parser's point of entry does isreturn
if the current terminal is the error token. This misses the other error handlers, so the assertion that if parsing did not produce an expression, an error code is set fails shortly after.I spent a bit trying to flag the error properly in the parser, but I'm not that familiar with
sid
. Adding aTOK_ERROR
check inparser.act
betweenADVANCE_LEXER;
andDIALECT_ENTRY
catches it, but seems hacky. There also doesn't seem to be a clearly appropriate error code --RE_EXSUB
("expected sub-expression") may be the closest.The text was updated successfully, but these errors were encountered: