flex: don't trust YY_USER_INIT

Reported by Bernd Edligner and others.

* src/scan-gram.l: here.
This commit is contained in:
Akim Demaille
2014-12-31 14:48:13 +01:00
parent 8d4dc896cb
commit 975bb56431
2 changed files with 10 additions and 3 deletions

View File

@@ -45,9 +45,6 @@
#define YY_DECL GRAM_LEX_DECL
#define YY_USER_INIT \
code_start = scanner_cursor = loc->start; \
/* Location of scanner cursor. */
static boundary scanner_cursor;
@@ -166,6 +163,15 @@ eqopt ([[:space:]]*=)?
/* Where containing comment or string or character literal started,
when applicable. */
boundary token_start PACIFY_CC (= scanner_cursor);
/* We cannot trust YY_USER_INIT, whose semantics changes over time
(it moved in Flex 2.5.38). */
static bool first = true;
if (first)
{
scanner_cursor = loc->start;
first = false;
}
%}