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

1
THANKS
View File

@@ -16,6 +16,7 @@ Art Haas ahaas@neosoft.com
Baron Schwartz baron@sequent.org
Ben Pfaff blp@cs.stanford.edu
Benoit Perrot benoit.perrot@epita.fr
Bernd Edligner bernd.edlinger@hotmail.de
Bernd Kiefer kiefer@dfki.de
Bert Deknuydt Bert.Deknuydt@esat.kuleuven.ac.be
Bill Allombert Bill.Allombert@math.u-bordeaux1.fr

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;
}
%}