summaryrefslogtreecommitdiff
path: root/Source/cmExprLexer.in.l
diff options
context:
space:
mode:
authorDaniel Pfeifer <daniel@pfeifer-mail.de>2016-11-26 22:47:00 +0100
committerBrad King <brad.king@kitware.com>2016-12-14 09:40:33 -0500
commitc5df1f165c7f8f1e31e3144d326c6836af2e678d (patch)
tree58a84dbb41717eb7f49c1ae746b39ed5db37ca26 /Source/cmExprLexer.in.l
parent1dd3e21a54f684df876da6d778ed04535ebf10ee (diff)
downloadcmake-c5df1f165c7f8f1e31e3144d326c6836af2e678d.tar.gz
Regenerate lexer source code
Revise the manual procedure in the `*Lexer.in.l` files. Some of our post-processing steps are no longer necessary with the current set of supported compilers. Some steps changed with newer versions of flex. Then regenerate all lexers with flex version 2.6.1.
Diffstat (limited to 'Source/cmExprLexer.in.l')
-rw-r--r--Source/cmExprLexer.in.l24
1 files changed, 8 insertions, 16 deletions
diff --git a/Source/cmExprLexer.in.l b/Source/cmExprLexer.in.l
index e32abd9992..25ddba4604 100644
--- a/Source/cmExprLexer.in.l
+++ b/Source/cmExprLexer.in.l
@@ -3,29 +3,21 @@
file Copyright.txt or https://cmake.org/licensing for details. */
/*
-This file must be translated to C and modified to build everywhere.
+This file must be translated to C++ and modified to build everywhere.
-Run flex like this:
+Run flex >= 2.6 like this:
- flex --prefix=cmExpr_yy --header-file=cmExprLexer.h -ocmExprLexer.cxx cmExprLexer.in.l
+ flex --nounistd -DFLEXINT_H --prefix=cmExpr_yy --header-file=cmExprLexer.h -ocmExprLexer.cxx cmExprLexer.in.l
Modify cmExprLexer.cxx:
- - remove TABs
- - remove use of the 'register' storage class specifier
- - remove "yyscanner" argument from these methods:
- yy_fatal_error, cmExpr_yyalloc, cmExpr_yyrealloc, cmExpr_yyfree
- - remove all YY_BREAK lines occurring right after return statements
- - change while ( 1 ) to for(;;)
-
-Modify cmExprLexer.h:
- - remove TABs
- - remove the yy_init_globals function
- - remove the block that includes unistd.h
- - remove #line directives (avoids bogus warning on old Sun)
+ - remove trailing whitespace: sed -i 's/\s*$//' cmExprLexer.h cmExprLexer.cxx
+ - remove blank lines at end of file
+ - #include "cmStandardLexer.h" at the top
+ - add cast in yy_scan_bytes for loop condition of _yybytes_len to size_t
*/
-#include "cmStandardLexer.h"
+/* IWYU pragma: no_forward_declare yyguts_t */
#include "cmExprParserHelper.h"