cmFortranLexer: Update to flex 2.6

Revise the documented modifications we need to make to the
flex-generated source file according to the needs of the new version.
Also drop the duplicate copyright notice block from the generated file.
This commit is contained in:
Brad King 2016-09-05 15:20:09 -04:00
parent e11cd31fa0
commit f70c71c5a9
5 changed files with 910 additions and 931 deletions

View File

@ -3,3 +3,5 @@ cm_sha2.* whitespace=indent-with-non-tab
# Preserve indentation style in generated code. # Preserve indentation style in generated code.
cmListFileLexer.c whitespace=-tab-in-indent,-indent-with-non-tab cmListFileLexer.c whitespace=-tab-in-indent,-indent-with-non-tab
cmFortranLexer.cxx whitespace=-tab-in-indent,-indent-with-non-tab
cmFortranLexer.h whitespace=-tab-in-indent,-indent-with-non-tab

File diff suppressed because it is too large Load Diff

View File

@ -1,26 +1,19 @@
/*============================================================================
CMake - Cross Platform Makefile Generator
Copyright 2000-2015 Kitware, Inc., Insight Software Consortium
Distributed under the OSI-approved BSD License (the "License");
see accompanying file Copyright.txt for details.
This software is distributed WITHOUT ANY WARRANTY; without even the
implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
See the License for more information.
============================================================================*/
#ifndef cmFortran_yyHEADER_H #ifndef cmFortran_yyHEADER_H
#define cmFortran_yyHEADER_H 1 #define cmFortran_yyHEADER_H 1
#define cmFortran_yyIN_HEADER 1 #define cmFortran_yyIN_HEADER 1
#line 6 "cmFortranLexer.h"
#line 8 "cmFortranLexer.h"
#define YY_INT_ALIGNED short int #define YY_INT_ALIGNED short int
/* A lexical scanner generated by flex */ /* A lexical scanner generated by flex */
#define FLEX_SCANNER #define FLEX_SCANNER
#define YY_FLEX_MAJOR_VERSION 2 #define YY_FLEX_MAJOR_VERSION 2
#define YY_FLEX_MINOR_VERSION 5 #define YY_FLEX_MINOR_VERSION 6
#define YY_FLEX_SUBMINOR_VERSION 39 #define YY_FLEX_SUBMINOR_VERSION 1
#if YY_FLEX_SUBMINOR_VERSION > 0 #if YY_FLEX_SUBMINOR_VERSION > 0
#define FLEX_BETA #define FLEX_BETA
#endif #endif
@ -99,25 +92,13 @@ typedef unsigned int flex_uint32_t;
#endif /* ! FLEXINT_H */ #endif /* ! FLEXINT_H */
#ifdef __cplusplus /* TODO: this is always defined, so inline it */
/* The "const" storage-class-modifier is valid. */
#define YY_USE_CONST
#else /* ! __cplusplus */
/* C99 requires __STDC__ to be defined as 1. */
#if defined (__STDC__)
#define YY_USE_CONST
#endif /* defined (__STDC__) */
#endif /* ! __cplusplus */
#ifdef YY_USE_CONST
#define yyconst const #define yyconst const
#if defined(__GNUC__) && __GNUC__ >= 3
#define yynoreturn __attribute__((__noreturn__))
#else #else
#define yyconst #define yynoreturn
#endif #endif
/* An opaque pointer. */ /* An opaque pointer. */
@ -163,52 +144,52 @@ typedef size_t yy_size_t;
#ifndef YY_STRUCT_YY_BUFFER_STATE #ifndef YY_STRUCT_YY_BUFFER_STATE
#define YY_STRUCT_YY_BUFFER_STATE #define YY_STRUCT_YY_BUFFER_STATE
struct yy_buffer_state struct yy_buffer_state
{ {
FILE *yy_input_file; FILE *yy_input_file;
char *yy_ch_buf; /* input buffer */ char *yy_ch_buf; /* input buffer */
char *yy_buf_pos; /* current position in input buffer */ char *yy_buf_pos; /* current position in input buffer */
/* Size of input buffer in bytes, not including room for EOB /* Size of input buffer in bytes, not including room for EOB
* characters. * characters.
*/ */
yy_size_t yy_buf_size; int yy_buf_size;
/* Number of characters read into yy_ch_buf, not including EOB /* Number of characters read into yy_ch_buf, not including EOB
* characters. * characters.
*/ */
yy_size_t yy_n_chars; int yy_n_chars;
/* Whether we "own" the buffer - i.e., we know we created it, /* Whether we "own" the buffer - i.e., we know we created it,
* and can realloc() it to grow it, and should free() it to * and can realloc() it to grow it, and should free() it to
* delete it. * delete it.
*/ */
int yy_is_our_buffer; int yy_is_our_buffer;
/* Whether this is an "interactive" input source; if so, and /* Whether this is an "interactive" input source; if so, and
* if we're using stdio for input, then we want to use getc() * if we're using stdio for input, then we want to use getc()
* instead of fread(), to make sure we stop fetching input after * instead of fread(), to make sure we stop fetching input after
* each newline. * each newline.
*/ */
int yy_is_interactive; int yy_is_interactive;
/* Whether we're considered to be at the beginning of a line. /* Whether we're considered to be at the beginning of a line.
* If so, '^' rules will be active on the next match, otherwise * If so, '^' rules will be active on the next match, otherwise
* not. * not.
*/ */
int yy_at_bol; int yy_at_bol;
int yy_bs_lineno; /**< The line count. */ int yy_bs_lineno; /**< The line count. */
int yy_bs_column; /**< The column count. */ int yy_bs_column; /**< The column count. */
/* Whether to try to fill the input buffer when we reach the /* Whether to try to fill the input buffer when we reach the
* end of it. * end of it.
*/ */
int yy_fill_buffer; int yy_fill_buffer;
int yy_buffer_status; int yy_buffer_status;
}; };
#endif /* !YY_STRUCT_YY_BUFFER_STATE */ #endif /* !YY_STRUCT_YY_BUFFER_STATE */
void cmFortran_yyrestart (FILE *input_file ,yyscan_t yyscanner ); void cmFortran_yyrestart (FILE *input_file ,yyscan_t yyscanner );
@ -221,7 +202,7 @@ void cmFortran_yypop_buffer_state (yyscan_t yyscanner );
YY_BUFFER_STATE cmFortran_yy_scan_buffer (char *base,yy_size_t size ,yyscan_t yyscanner ); YY_BUFFER_STATE cmFortran_yy_scan_buffer (char *base,yy_size_t size ,yyscan_t yyscanner );
YY_BUFFER_STATE cmFortran_yy_scan_string (yyconst char *yy_str ,yyscan_t yyscanner ); YY_BUFFER_STATE cmFortran_yy_scan_string (yyconst char *yy_str ,yyscan_t yyscanner );
YY_BUFFER_STATE cmFortran_yy_scan_bytes (yyconst char *bytes,yy_size_t len ,yyscan_t yyscanner ); YY_BUFFER_STATE cmFortran_yy_scan_bytes (yyconst char *bytes,int len ,yyscan_t yyscanner );
void *cmFortran_yyalloc (yy_size_t ,yyscan_t yyscanner ); void *cmFortran_yyalloc (yy_size_t ,yyscan_t yyscanner );
void *cmFortran_yyrealloc (void *,yy_size_t ,yyscan_t yyscanner ); void *cmFortran_yyrealloc (void *,yy_size_t ,yyscan_t yyscanner );
@ -229,7 +210,7 @@ void cmFortran_yyfree (void * ,yyscan_t yyscanner );
/* Begin user sect3 */ /* Begin user sect3 */
#define cmFortran_yywrap(yyscanner) 1 #define cmFortran_yywrap(yyscanner) (/*CONSTCOND*/1)
#define YY_SKIP_YYWRAP #define YY_SKIP_YYWRAP
#define yytext_ptr yytext_r #define yytext_ptr yytext_r
@ -243,6 +224,14 @@ void cmFortran_yyfree (void * ,yyscan_t yyscanner );
#endif #endif
#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 #ifndef YY_EXTRA_TYPE
#define YY_EXTRA_TYPE void * #define YY_EXTRA_TYPE void *
#endif #endif
@ -266,23 +255,23 @@ void cmFortran_yyset_extra (YY_EXTRA_TYPE user_defined ,yyscan_t yyscanner );
FILE *cmFortran_yyget_in (yyscan_t yyscanner ); FILE *cmFortran_yyget_in (yyscan_t yyscanner );
void cmFortran_yyset_in (FILE * in_str ,yyscan_t yyscanner ); void cmFortran_yyset_in (FILE * _in_str ,yyscan_t yyscanner );
FILE *cmFortran_yyget_out (yyscan_t yyscanner ); FILE *cmFortran_yyget_out (yyscan_t yyscanner );
void cmFortran_yyset_out (FILE * out_str ,yyscan_t yyscanner ); void cmFortran_yyset_out (FILE * _out_str ,yyscan_t yyscanner );
yy_size_t cmFortran_yyget_leng (yyscan_t yyscanner ); int cmFortran_yyget_leng (yyscan_t yyscanner );
char *cmFortran_yyget_text (yyscan_t yyscanner ); char *cmFortran_yyget_text (yyscan_t yyscanner );
int cmFortran_yyget_lineno (yyscan_t yyscanner ); int cmFortran_yyget_lineno (yyscan_t yyscanner );
void cmFortran_yyset_lineno (int line_number ,yyscan_t yyscanner ); void cmFortran_yyset_lineno (int _line_number ,yyscan_t yyscanner );
int cmFortran_yyget_column (yyscan_t yyscanner ); int cmFortran_yyget_column (yyscan_t yyscanner );
void cmFortran_yyset_column (int column_no ,yyscan_t yyscanner ); void cmFortran_yyset_column (int _column_no ,yyscan_t yyscanner );
/* Macros after this point can all be overridden by user definitions in /* Macros after this point can all be overridden by user definitions in
* section 1. * section 1.
@ -348,5 +337,9 @@ extern int cmFortran_yylex (yyscan_t yyscanner);
#undef YY_DECL #undef YY_DECL
#endif #endif
#line 176 "cmFortranLexer.in.l"
#line 344 "cmFortranLexer.h"
#undef cmFortran_yyIN_HEADER #undef cmFortran_yyIN_HEADER
#endif /* cmFortran_yyHEADER_H */ #endif /* cmFortran_yyHEADER_H */

View File

@ -24,28 +24,21 @@
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 -i --prefix=cmFortran_yy --header-file=cmFortranLexer.h -ocmFortranLexer.cxx cmFortranLexer.in.l flex -i --prefix=cmFortran_yy --header-file=cmFortranLexer.h -ocmFortranLexer.cxx cmFortranLexer.in.l
Modify cmFortranLexer.cxx: Modify cmFortranLexer.cxx:
- remove TABs - remove trailing whitespace: sed -i 's/\s*$//' cmFortranLexer.h cmFortranLexer.cxx
- remove use of the 'register' storage class specifier - remove blank lines at end of file
- remove "yyscanner" argument from these methods:
yy_fatal_error, cmFortran_yyalloc, cmFortran_yyrealloc, cmFortran_yyfree
- remove "yyscanner = NULL" from end of cmFortran_yylex_destroy - remove "yyscanner = NULL" from end of cmFortran_yylex_destroy
- remove all YY_BREAK lines occurring right after return statements - remove all YY_BREAK lines occurring right after return statements
- change while ( 1 ) to for(;;) - add cast in yy_scan_bytes for loop condition of _yybytes_len to size_t
Modify cmFortranLexer.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)
*/ */
#include "cmStandardLexer.h" #include "cmStandardLexer.h"
#undef YY_NO_UNPUT
#define cmFortranLexer_cxx #define cmFortranLexer_cxx
#include "cmFortranParser.h" /* Interface to parser object. */ #include "cmFortranParser.h" /* Interface to parser object. */

View File

@ -73,6 +73,7 @@ union cmFortran_yystype_u
#define YYSTYPE cmFortran_yystype #define YYSTYPE cmFortran_yystype
#define YYSTYPE_IS_DECLARED 1 #define YYSTYPE_IS_DECLARED 1
#if !defined(cmFortranLexer_cxx) #if !defined(cmFortranLexer_cxx)
#define YY_NO_UNISTD_H
#include "cmFortranLexer.h" #include "cmFortranLexer.h"
#endif #endif
#if !defined(cmFortranLexer_cxx) #if !defined(cmFortranLexer_cxx)