summaryrefslogtreecommitdiffstats
path: root/Source/cmFortranLexer.cxx
diff options
context:
space:
mode:
authorDaniel Pfeifer <daniel@pfeifer-mail.de>2016-11-26 21:47:00 (GMT)
committerBrad King <brad.king@kitware.com>2016-12-14 14:40:33 (GMT)
commitc5df1f165c7f8f1e31e3144d326c6836af2e678d (patch)
tree58a84dbb41717eb7f49c1ae746b39ed5db37ca26 /Source/cmFortranLexer.cxx
parent1dd3e21a54f684df876da6d778ed04535ebf10ee (diff)
downloadCMake-c5df1f165c7f8f1e31e3144d326c6836af2e678d.zip
CMake-c5df1f165c7f8f1e31e3144d326c6836af2e678d.tar.gz
CMake-c5df1f165c7f8f1e31e3144d326c6836af2e678d.tar.bz2
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/cmFortranLexer.cxx')
-rw-r--r--Source/cmFortranLexer.cxx183
1 files changed, 110 insertions, 73 deletions
diff --git a/Source/cmFortranLexer.cxx b/Source/cmFortranLexer.cxx
index a5ef47d..01c09ac 100644
--- a/Source/cmFortranLexer.cxx
+++ b/Source/cmFortranLexer.cxx
@@ -1,7 +1,9 @@
+#include "cmStandardLexer.h"
#line 2 "cmFortranLexer.cxx"
#line 4 "cmFortranLexer.cxx"
+#define FLEXINT_H 1
#define YY_INT_ALIGNED short int
/* A lexical scanner generated by flex */
@@ -651,22 +653,22 @@ static yyconst flex_int16_t yy_chk[633] =
/*
-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 >= 2.6 like this:
- flex -i --prefix=cmFortran_yy --header-file=cmFortranLexer.h -ocmFortranLexer.cxx cmFortranLexer.in.l
+ flex -i --nounistd -DFLEXINT_H --prefix=cmFortran_yy --header-file=cmFortranLexer.h -ocmFortranLexer.cxx cmFortranLexer.in.l
Modify cmFortranLexer.cxx:
- remove trailing whitespace: sed -i 's/\s*$//' cmFortranLexer.h cmFortranLexer.cxx
- remove blank lines at end of file
- - remove "yyscanner = NULL" from end of cmFortran_yylex_destroy
- - remove all YY_BREAK lines occurring right after return statements
+ - #include "cmStandardLexer.h" at the top
- add cast in cmFortran_yy_scan_bytes for loop condition of _yybytes_len to size_t
*/
-#include "cmStandardLexer.h"
+/* IWYU pragma: no_forward_declare yyguts_t */
+
#undef YY_NO_UNPUT
#define cmFortranLexer_cxx
@@ -683,7 +685,7 @@ Modify cmFortranLexer.cxx:
/*--------------------------------------------------------------------------*/
-#line 696 "cmFortranLexer.cxx"
+#line 688 "cmFortranLexer.cxx"
#define INITIAL 0
#define free_fmt 1
@@ -691,14 +693,6 @@ Modify cmFortranLexer.cxx:
#define str_sq 3
#define str_dq 4
-#ifndef YY_NO_UNISTD_H
-/* Special case for "unistd.h", since it is non-ANSI. We include it way
- * down here because we want the user's section 1 to have been scanned first.
- * The user has a chance to override it with an option.
- */
-#include <unistd.h>
-#endif
-
#ifndef YY_EXTRA_TYPE
#define YY_EXTRA_TYPE void *
#endif
@@ -951,10 +945,10 @@ YY_DECL
}
{
-#line 65 "cmFortranLexer.in.l"
+#line 56 "cmFortranLexer.in.l"
-#line 967 "cmFortranLexer.cxx"
+#line 951 "cmFortranLexer.cxx"
while ( /*CONSTCOND*/1 ) /* loops until end-of-file is reached */
{
@@ -1014,7 +1008,7 @@ do_action: /* This label is used only to access EOF actions. */
case 1:
YY_RULE_SETUP
-#line 67 "cmFortranLexer.in.l"
+#line 58 "cmFortranLexer.in.l"
{
cmFortranParser_StringStart(yyextra);
cmFortranParser_SetOldStartcond(yyextra, YY_START);
@@ -1023,7 +1017,7 @@ YY_RULE_SETUP
YY_BREAK
case 2:
YY_RULE_SETUP
-#line 73 "cmFortranLexer.in.l"
+#line 64 "cmFortranLexer.in.l"
{
cmFortranParser_StringStart(yyextra);
cmFortranParser_SetOldStartcond(yyextra, YY_START);
@@ -1031,28 +1025,29 @@ YY_RULE_SETUP
}
YY_BREAK
case 3:
-#line 80 "cmFortranLexer.in.l"
+#line 71 "cmFortranLexer.in.l"
case 4:
YY_RULE_SETUP
-#line 80 "cmFortranLexer.in.l"
+#line 71 "cmFortranLexer.in.l"
{
BEGIN(cmFortranParser_GetOldStartcond(yyextra) );
yylvalp->string = strdup(cmFortranParser_StringEnd(yyextra));
return STRING;
}
+ YY_BREAK
case 5:
/* rule 5 can match eol */
-#line 87 "cmFortranLexer.in.l"
+#line 78 "cmFortranLexer.in.l"
case 6:
/* rule 6 can match eol */
YY_RULE_SETUP
-#line 87 "cmFortranLexer.in.l"
+#line 78 "cmFortranLexer.in.l"
/* Ignore (continued strings, free fmt) */
YY_BREAK
case 7:
/* rule 7 can match eol */
YY_RULE_SETUP
-#line 89 "cmFortranLexer.in.l"
+#line 80 "cmFortranLexer.in.l"
{
if (cmFortranParser_GetOldStartcond(yyextra) == fixed_fmt)
; /* Ignore (cont. strings, fixed fmt) */
@@ -1065,15 +1060,16 @@ YY_RULE_SETUP
case 8:
/* rule 8 can match eol */
YY_RULE_SETUP
-#line 99 "cmFortranLexer.in.l"
+#line 90 "cmFortranLexer.in.l"
{
unput ('\n');
BEGIN(INITIAL);
return UNTERMINATED_STRING;
}
+ YY_BREAK
case 9:
YY_RULE_SETUP
-#line 105 "cmFortranLexer.in.l"
+#line 96 "cmFortranLexer.in.l"
{
cmFortranParser_StringAppend(yyextra, yytext[0]);
}
@@ -1081,205 +1077,245 @@ YY_RULE_SETUP
case 10:
/* rule 10 can match eol */
YY_RULE_SETUP
-#line 109 "cmFortranLexer.in.l"
+#line 100 "cmFortranLexer.in.l"
{ return EOSTMT; } /* Treat comments like */
+ YY_BREAK
case 11:
/* rule 11 can match eol */
YY_RULE_SETUP
-#line 110 "cmFortranLexer.in.l"
+#line 101 "cmFortranLexer.in.l"
{ return EOSTMT; } /* empty lines */
+ YY_BREAK
case 12:
YY_RULE_SETUP
-#line 112 "cmFortranLexer.in.l"
+#line 103 "cmFortranLexer.in.l"
{ return CPP_LINE_DIRECTIVE; }
+ YY_BREAK
case 13:
/* rule 13 can match eol */
YY_RULE_SETUP
-#line 113 "cmFortranLexer.in.l"
+#line 104 "cmFortranLexer.in.l"
{
yytext[yyleng-1] = 0;
yylvalp->string = strdup(strchr(yytext, '<')+1);
return CPP_INCLUDE_ANGLE;
}
+ YY_BREAK
case 14:
YY_RULE_SETUP
-#line 118 "cmFortranLexer.in.l"
+#line 109 "cmFortranLexer.in.l"
{ return CPP_INCLUDE; }
+ YY_BREAK
case 15:
YY_RULE_SETUP
-#line 119 "cmFortranLexer.in.l"
+#line 110 "cmFortranLexer.in.l"
{ return F90PPR_INCLUDE; }
+ YY_BREAK
case 16:
YY_RULE_SETUP
-#line 120 "cmFortranLexer.in.l"
+#line 111 "cmFortranLexer.in.l"
{ return COCO_INCLUDE; }
+ YY_BREAK
case 17:
YY_RULE_SETUP
-#line 122 "cmFortranLexer.in.l"
+#line 113 "cmFortranLexer.in.l"
{ return CPP_DEFINE; }
+ YY_BREAK
case 18:
YY_RULE_SETUP
-#line 123 "cmFortranLexer.in.l"
+#line 114 "cmFortranLexer.in.l"
{ return F90PPR_DEFINE; }
+ YY_BREAK
case 19:
YY_RULE_SETUP
-#line 125 "cmFortranLexer.in.l"
+#line 116 "cmFortranLexer.in.l"
{ return CPP_UNDEF; }
+ YY_BREAK
case 20:
YY_RULE_SETUP
-#line 126 "cmFortranLexer.in.l"
+#line 117 "cmFortranLexer.in.l"
{ return F90PPR_UNDEF; }
+ YY_BREAK
case 21:
YY_RULE_SETUP
-#line 128 "cmFortranLexer.in.l"
+#line 119 "cmFortranLexer.in.l"
{ return CPP_IFDEF; }
+ YY_BREAK
case 22:
YY_RULE_SETUP
-#line 129 "cmFortranLexer.in.l"
+#line 120 "cmFortranLexer.in.l"
{ return CPP_IFNDEF; }
+ YY_BREAK
case 23:
YY_RULE_SETUP
-#line 130 "cmFortranLexer.in.l"
+#line 121 "cmFortranLexer.in.l"
{ return CPP_IF; }
+ YY_BREAK
case 24:
YY_RULE_SETUP
-#line 131 "cmFortranLexer.in.l"
+#line 122 "cmFortranLexer.in.l"
{ return CPP_ELIF; }
+ YY_BREAK
case 25:
YY_RULE_SETUP
-#line 132 "cmFortranLexer.in.l"
+#line 123 "cmFortranLexer.in.l"
{ return CPP_ELSE; }
+ YY_BREAK
case 26:
YY_RULE_SETUP
-#line 133 "cmFortranLexer.in.l"
+#line 124 "cmFortranLexer.in.l"
{ return CPP_ENDIF; }
+ YY_BREAK
case 27:
YY_RULE_SETUP
-#line 135 "cmFortranLexer.in.l"
+#line 126 "cmFortranLexer.in.l"
{ return F90PPR_IFDEF; }
+ YY_BREAK
case 28:
YY_RULE_SETUP
-#line 136 "cmFortranLexer.in.l"
+#line 127 "cmFortranLexer.in.l"
{ return F90PPR_IFNDEF; }
+ YY_BREAK
case 29:
YY_RULE_SETUP
-#line 137 "cmFortranLexer.in.l"
+#line 128 "cmFortranLexer.in.l"
{ return F90PPR_IF; }
+ YY_BREAK
case 30:
YY_RULE_SETUP
-#line 138 "cmFortranLexer.in.l"
+#line 129 "cmFortranLexer.in.l"
{ return F90PPR_ELIF; }
+ YY_BREAK
case 31:
YY_RULE_SETUP
-#line 139 "cmFortranLexer.in.l"
+#line 130 "cmFortranLexer.in.l"
{ return F90PPR_ELSE; }
+ YY_BREAK
case 32:
YY_RULE_SETUP
-#line 140 "cmFortranLexer.in.l"
+#line 131 "cmFortranLexer.in.l"
{ return F90PPR_ENDIF; }
+ YY_BREAK
/* Line continuations, possible involving comments. */
case 33:
/* rule 33 can match eol */
YY_RULE_SETUP
-#line 143 "cmFortranLexer.in.l"
+#line 134 "cmFortranLexer.in.l"
YY_BREAK
case 34:
/* rule 34 can match eol */
YY_RULE_SETUP
-#line 144 "cmFortranLexer.in.l"
+#line 135 "cmFortranLexer.in.l"
YY_BREAK
case 35:
YY_RULE_SETUP
-#line 146 "cmFortranLexer.in.l"
+#line 137 "cmFortranLexer.in.l"
{ return COMMA; }
+ YY_BREAK
case 36:
YY_RULE_SETUP
-#line 148 "cmFortranLexer.in.l"
+#line 139 "cmFortranLexer.in.l"
{ return DCOLON; }
+ YY_BREAK
case 37:
YY_RULE_SETUP
-#line 149 "cmFortranLexer.in.l"
+#line 140 "cmFortranLexer.in.l"
{ return COLON; }
+ YY_BREAK
case 38:
/* rule 38 can match eol */
YY_RULE_SETUP
-#line 151 "cmFortranLexer.in.l"
+#line 142 "cmFortranLexer.in.l"
{ return GARBAGE; }
+ YY_BREAK
case 39:
YY_RULE_SETUP
-#line 153 "cmFortranLexer.in.l"
+#line 144 "cmFortranLexer.in.l"
{ return ASSIGNMENT_OP; }
+ YY_BREAK
case 40:
YY_RULE_SETUP
-#line 155 "cmFortranLexer.in.l"
+#line 146 "cmFortranLexer.in.l"
{ return END; }
+ YY_BREAK
case 41:
YY_RULE_SETUP
-#line 156 "cmFortranLexer.in.l"
+#line 147 "cmFortranLexer.in.l"
{ return INCLUDE; }
+ YY_BREAK
case 42:
YY_RULE_SETUP
-#line 157 "cmFortranLexer.in.l"
+#line 148 "cmFortranLexer.in.l"
{ return INTERFACE; }
+ YY_BREAK
case 43:
YY_RULE_SETUP
-#line 158 "cmFortranLexer.in.l"
+#line 149 "cmFortranLexer.in.l"
{ return MODULE; }
+ YY_BREAK
case 44:
YY_RULE_SETUP
-#line 159 "cmFortranLexer.in.l"
+#line 150 "cmFortranLexer.in.l"
{ return SUBMODULE; }
+ YY_BREAK
case 45:
YY_RULE_SETUP
-#line 160 "cmFortranLexer.in.l"
+#line 151 "cmFortranLexer.in.l"
{ return USE; }
+ YY_BREAK
case 46:
YY_RULE_SETUP
-#line 162 "cmFortranLexer.in.l"
+#line 153 "cmFortranLexer.in.l"
{
yylvalp->string = strdup(yytext);
return WORD;
}
+ YY_BREAK
case 47:
YY_RULE_SETUP
-#line 167 "cmFortranLexer.in.l"
+#line 158 "cmFortranLexer.in.l"
{ return LPAREN; }
+ YY_BREAK
case 48:
YY_RULE_SETUP
-#line 168 "cmFortranLexer.in.l"
+#line 159 "cmFortranLexer.in.l"
{ return RPAREN; }
+ YY_BREAK
case 49:
YY_RULE_SETUP
-#line 170 "cmFortranLexer.in.l"
+#line 161 "cmFortranLexer.in.l"
{ return GARBAGE; }
+ YY_BREAK
case 50:
/* rule 50 can match eol */
YY_RULE_SETUP
-#line 172 "cmFortranLexer.in.l"
+#line 163 "cmFortranLexer.in.l"
{ return EOSTMT; }
+ YY_BREAK
case 51:
YY_RULE_SETUP
-#line 175 "cmFortranLexer.in.l"
+#line 166 "cmFortranLexer.in.l"
/* Ignore */
YY_BREAK
case 52:
/* rule 52 can match eol */
YY_RULE_SETUP
-#line 176 "cmFortranLexer.in.l"
+#line 167 "cmFortranLexer.in.l"
/* Ignore line-endings preceded by \ */
YY_BREAK
case 53:
YY_RULE_SETUP
-#line 178 "cmFortranLexer.in.l"
+#line 169 "cmFortranLexer.in.l"
{ return *yytext; }
+ YY_BREAK
case YY_STATE_EOF(INITIAL):
case YY_STATE_EOF(free_fmt):
case YY_STATE_EOF(fixed_fmt):
case YY_STATE_EOF(str_sq):
case YY_STATE_EOF(str_dq):
-#line 180 "cmFortranLexer.in.l"
+#line 171 "cmFortranLexer.in.l"
{
if(!cmFortranParser_FilePop(yyextra) )
{
@@ -1289,10 +1325,10 @@ case YY_STATE_EOF(str_dq):
YY_BREAK
case 54:
YY_RULE_SETUP
-#line 187 "cmFortranLexer.in.l"
+#line 178 "cmFortranLexer.in.l"
ECHO;
YY_BREAK
-#line 1347 "cmFortranLexer.cxx"
+#line 1331 "cmFortranLexer.cxx"
case YY_END_OF_BUFFER:
{
@@ -2400,6 +2436,7 @@ int cmFortran_yylex_destroy (yyscan_t yyscanner)
/* Destroy the main struct (reentrant only). */
cmFortran_yyfree ( yyscanner , yyscanner );
+ yyscanner = NULL;
return 0;
}
@@ -2461,7 +2498,7 @@ void cmFortran_yyfree (void * ptr , yyscan_t yyscanner)
#define YYTABLES_NAME "yytables"
-#line 187 "cmFortranLexer.in.l"
+#line 178 "cmFortranLexer.in.l"