ENH: Changed over to using C++ for building flex/bison generated files. It reduces the number of changes that need to be made after generation.

This commit is contained in:
Brad King 2005-02-01 10:42:52 -05:00
parent 51db85934f
commit 04e56bf7ff
9 changed files with 191 additions and 200 deletions

View File

@ -14,8 +14,8 @@ SET(SRCS
cmDependsC.h cmDependsC.h
cmDependsFortran.cxx cmDependsFortran.cxx
cmDependsFortran.h cmDependsFortran.h
cmDependsFortranLexer.c cmDependsFortranLexer.cxx
cmDependsFortranParser.c cmDependsFortranParser.cxx
cmDependsFortranParser.h cmDependsFortranParser.h
cmDependsJavaLexer.cxx cmDependsJavaLexer.cxx
cmDependsJavaParser.cxx cmDependsJavaParser.cxx

View File

@ -18,7 +18,6 @@
#include "cmSystemTools.h" #include "cmSystemTools.h"
#include "cmDependsFortranLexer.h" /* Interface to lexer object. */
#include "cmDependsFortranParser.h" /* Interface to parser object. */ #include "cmDependsFortranParser.h" /* Interface to parser object. */
#include <assert.h> #include <assert.h>
@ -26,15 +25,14 @@
//---------------------------------------------------------------------------- //----------------------------------------------------------------------------
// Parser methods not included in generated interface. // Parser methods not included in generated interface.
extern "C"
{
// Get the current buffer processed by the lexer.
YY_BUFFER_STATE cmDependsFortranLexer_GetCurrentBuffer(yyscan_t yyscanner);
// The parser entry point. // Get the current buffer processed by the lexer.
int cmDependsFortran_yyparse(yyscan_t); YY_BUFFER_STATE cmDependsFortranLexer_GetCurrentBuffer(yyscan_t yyscanner);
}
// The parser entry point.
int cmDependsFortran_yyparse(yyscan_t);
//----------------------------------------------------------------------------
// Define parser object internal structure. // Define parser object internal structure.
struct cmDependsFortranFile struct cmDependsFortranFile
{ {

View File

@ -1,6 +1,6 @@
#line 2 "cmDependsFortranLexer.c" #line 2 "cmDependsFortranLexer.cxx"
#line 4 "cmDependsFortranLexer.c" #line 4 "cmDependsFortranLexer.cxx"
#define YY_INT_ALIGNED short int #define YY_INT_ALIGNED short int
@ -626,30 +626,22 @@ This file must be translated to C and modified to build everywhere.
Run flex like this: Run flex like this:
flex --prefix=cmDependsFortran_yy --header-file=cmDependsFortranLexer.h -ocmDependsFortranLexer.c cmDependsFortranLexer.in.l flex --prefix=cmDependsFortran_yy --header-file=cmDependsFortranLexer.h -ocmDependsFortranLexer.cxx cmDependsFortranLexer.in.l
Modify cmDependsFortranLexer.c: Modify cmDependsFortranLexer.cxx:
- remove TABs - remove TABs
- add a statement "(void)yyscanner;" to the top of these methods: - remove "yyscanner" argument from these methods:
yy_fatal_error, cmDependsFortran_yyalloc, cmDependsFortran_yyrealloc, cmDependsFortran_yyfree yy_fatal_error, cmDependsFortran_yyalloc, cmDependsFortran_yyrealloc, cmDependsFortran_yyfree
- remove all YY_BREAK lines occurring right after return statements
Modify cmDependsFortranLexer.h: Modify cmDependsFortranLexer.h:
- remove TABs - remove TABs
- remove the yy_init_globals function - remove the yy_init_globals function
- add these lines around all function declarations:
#ifdef __cplusplus
extern "C"
{
#endif
...
#ifdef __cplusplus
}
#endif
- remove the block that includes unistd.h - remove the block that includes unistd.h
- remove #line directives (avoids bogus warning on old Sun)
*/ */
#define cmDependsFortranLexer_cxx
#include "cmDependsFortranParser.h" /* Interface to parser object. */ #include "cmDependsFortranParser.h" /* Interface to parser object. */
/* Disable some warnings. */ /* Disable some warnings. */
@ -667,25 +659,29 @@ Modify cmDependsFortranLexer.h:
/* Disable features we do not need. */ /* Disable features we do not need. */
#define YY_NEVER_INTERACTIVE 1 #define YY_NEVER_INTERACTIVE 1
#define YY_NO_UNISTD_H 1
#define ECHO #define ECHO
/* Setup the proper cmDependsFortran_yylex declaration. */
#define YY_EXTRA_TYPE cmDependsFortranParser*
#define YY_DECL int cmDependsFortran_yylex(YYSTYPE* yylvalp, yyscan_t yyscanner)
/* Replace the lexer input function. */ /* Replace the lexer input function. */
#undef YY_INPUT #undef YY_INPUT
#define YY_INPUT(buf, result, max_size) \ #define YY_INPUT(buf, result, max_size) \
{ result = cmDependsFortranParser_Input(yyextra, buf, max_size); } { result = cmDependsFortranParser_Input(yyextra, buf, max_size); }
/* Provide isatty on Windows. */
#if defined( _WIN32 ) && !defined( __CYGWIN__ )
# include <io.h>
# if defined( _MSC_VER )
# define isatty _isatty
# endif
# define YY_NO_UNISTD_H 1
#endif
/* Include the set of tokens from the parser. */ /* Include the set of tokens from the parser. */
#include "cmDependsFortranParserTokens.h" #include "cmDependsFortranParserTokens.h"
/*--------------------------------------------------------------------------*/ /*--------------------------------------------------------------------------*/
#line 689 "cmDependsFortranLexer.c" #line 685 "cmDependsFortranLexer.cxx"
#define INITIAL 0 #define INITIAL 0
#define free_fmt 1 #define free_fmt 1
@ -907,10 +903,10 @@ YY_DECL
register int yy_act; register int yy_act;
struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
#line 100 "cmDependsFortranLexer.in.l" #line 96 "cmDependsFortranLexer.in.l"
#line 914 "cmDependsFortranLexer.c" #line 910 "cmDependsFortranLexer.cxx"
if ( yyg->yy_init ) if ( yyg->yy_init )
{ {
@ -996,7 +992,7 @@ do_action: /* This label is used only to access EOF actions. */
case 1: case 1:
YY_RULE_SETUP YY_RULE_SETUP
#line 102 "cmDependsFortranLexer.in.l" #line 98 "cmDependsFortranLexer.in.l"
{ {
cmDependsFortranParser_StringStart(yyextra); cmDependsFortranParser_StringStart(yyextra);
BEGIN(str_dq); BEGIN(str_dq);
@ -1004,48 +1000,50 @@ YY_RULE_SETUP
YY_BREAK YY_BREAK
case 2: case 2:
YY_RULE_SETUP YY_RULE_SETUP
#line 107 "cmDependsFortranLexer.in.l" #line 103 "cmDependsFortranLexer.in.l"
{ {
cmDependsFortranParser_StringStart(yyextra); cmDependsFortranParser_StringStart(yyextra);
BEGIN(str_sq); BEGIN(str_sq);
} }
YY_BREAK YY_BREAK
case 3: case 3:
#line 113 "cmDependsFortranLexer.in.l" #line 109 "cmDependsFortranLexer.in.l"
case 4: case 4:
YY_RULE_SETUP YY_RULE_SETUP
#line 113 "cmDependsFortranLexer.in.l" #line 109 "cmDependsFortranLexer.in.l"
{ {
yylvalp->string = strdup(cmDependsFortranParser_StringEnd(yyextra)); yylvalp->string = strdup(cmDependsFortranParser_StringEnd(yyextra));
return STRING; return STRING;
} }
YY_BREAK
case 5: case 5:
/* rule 5 can match eol */ /* rule 5 can match eol */
#line 119 "cmDependsFortranLexer.in.l" #line 115 "cmDependsFortranLexer.in.l"
case 6: case 6:
/* rule 6 can match eol */ /* rule 6 can match eol */
YY_RULE_SETUP YY_RULE_SETUP
#line 119 "cmDependsFortranLexer.in.l" #line 115 "cmDependsFortranLexer.in.l"
/* Ignore (continued strings, free fmt) */ /* Ignore (continued strings, free fmt) */
YY_BREAK YY_BREAK
case 7: case 7:
/* rule 7 can match eol */ /* rule 7 can match eol */
YY_RULE_SETUP YY_RULE_SETUP
#line 121 "cmDependsFortranLexer.in.l" #line 117 "cmDependsFortranLexer.in.l"
/*Ignore (cont. strings, fixed fmt) */ /*Ignore (cont. strings, fixed fmt) */
YY_BREAK YY_BREAK
case 8: case 8:
/* rule 8 can match eol */ /* rule 8 can match eol */
YY_RULE_SETUP YY_RULE_SETUP
#line 123 "cmDependsFortranLexer.in.l" #line 119 "cmDependsFortranLexer.in.l"
{ {
unput ('\n'); unput ('\n');
BEGIN(INITIAL); BEGIN(INITIAL);
return UNTERMINATED_STRING; return UNTERMINATED_STRING;
} }
YY_BREAK
case 9: case 9:
YY_RULE_SETUP YY_RULE_SETUP
#line 129 "cmDependsFortranLexer.in.l" #line 125 "cmDependsFortranLexer.in.l"
{ {
cmDependsFortranParser_StringAppend(yyextra, yytext[0]); cmDependsFortranParser_StringAppend(yyextra, yytext[0]);
} }
@ -1053,55 +1051,62 @@ YY_RULE_SETUP
case 10: case 10:
/* rule 10 can match eol */ /* rule 10 can match eol */
YY_RULE_SETUP YY_RULE_SETUP
#line 133 "cmDependsFortranLexer.in.l" #line 129 "cmDependsFortranLexer.in.l"
{ return EOSTMT; } /* Treat comments like */ { return EOSTMT; } /* Treat comments like */
YY_BREAK
case 11: case 11:
/* rule 11 can match eol */ /* rule 11 can match eol */
YY_RULE_SETUP YY_RULE_SETUP
#line 134 "cmDependsFortranLexer.in.l" #line 130 "cmDependsFortranLexer.in.l"
{ return EOSTMT; } /* empty lines */ { return EOSTMT; } /* empty lines */
YY_BREAK
case 12: case 12:
YY_RULE_SETUP YY_RULE_SETUP
#line 136 "cmDependsFortranLexer.in.l" #line 132 "cmDependsFortranLexer.in.l"
{ return CPP_INCLUDE; } { return CPP_INCLUDE; }
YY_BREAK
case 13: case 13:
YY_RULE_SETUP YY_RULE_SETUP
#line 137 "cmDependsFortranLexer.in.l" #line 133 "cmDependsFortranLexer.in.l"
{ return F90PPR_INCLUDE; } { return F90PPR_INCLUDE; }
YY_BREAK
case 14: case 14:
YY_RULE_SETUP YY_RULE_SETUP
#line 138 "cmDependsFortranLexer.in.l" #line 134 "cmDependsFortranLexer.in.l"
{ return COCO_INCLUDE; } { return COCO_INCLUDE; }
YY_BREAK
case 15: case 15:
YY_RULE_SETUP YY_RULE_SETUP
#line 139 "cmDependsFortranLexer.in.l" #line 135 "cmDependsFortranLexer.in.l"
{ return F_INCLUDE; } { return F_INCLUDE; }
YY_BREAK
case 16: case 16:
YY_RULE_SETUP YY_RULE_SETUP
#line 140 "cmDependsFortranLexer.in.l" #line 136 "cmDependsFortranLexer.in.l"
{ return USE; } { return USE; }
YY_BREAK
case 17: case 17:
YY_RULE_SETUP YY_RULE_SETUP
#line 142 "cmDependsFortranLexer.in.l" #line 138 "cmDependsFortranLexer.in.l"
{ {
cmDependsFortranParser_SetInInterface(yyextra, 0); cmDependsFortranParser_SetInInterface(yyextra, 0);
} }
YY_BREAK YY_BREAK
case 18: case 18:
YY_RULE_SETUP YY_RULE_SETUP
#line 145 "cmDependsFortranLexer.in.l" #line 141 "cmDependsFortranLexer.in.l"
{ {
cmDependsFortranParser_SetInInterface(yyextra, 1); cmDependsFortranParser_SetInInterface(yyextra, 1);
} }
YY_BREAK YY_BREAK
case 19: case 19:
YY_RULE_SETUP YY_RULE_SETUP
#line 149 "cmDependsFortranLexer.in.l" #line 145 "cmDependsFortranLexer.in.l"
/* Ignore */ /* Ignore */
YY_BREAK YY_BREAK
case 20: case 20:
YY_RULE_SETUP YY_RULE_SETUP
#line 150 "cmDependsFortranLexer.in.l" #line 146 "cmDependsFortranLexer.in.l"
{ {
if(!cmDependsFortranParser_GetInInterface(yyextra)) if(!cmDependsFortranParser_GetInInterface(yyextra))
{ {
@ -1111,102 +1116,120 @@ YY_RULE_SETUP
YY_BREAK YY_BREAK
case 21: case 21:
YY_RULE_SETUP YY_RULE_SETUP
#line 157 "cmDependsFortranLexer.in.l" #line 153 "cmDependsFortranLexer.in.l"
{ return CPP_DEFINE; } { return CPP_DEFINE; }
YY_BREAK
case 22: case 22:
YY_RULE_SETUP YY_RULE_SETUP
#line 158 "cmDependsFortranLexer.in.l" #line 154 "cmDependsFortranLexer.in.l"
{ return F90PPR_DEFINE; } { return F90PPR_DEFINE; }
YY_BREAK
case 23: case 23:
YY_RULE_SETUP YY_RULE_SETUP
#line 160 "cmDependsFortranLexer.in.l" #line 156 "cmDependsFortranLexer.in.l"
{ return CPP_UNDEF; } { return CPP_UNDEF; }
YY_BREAK
case 24: case 24:
YY_RULE_SETUP YY_RULE_SETUP
#line 161 "cmDependsFortranLexer.in.l" #line 157 "cmDependsFortranLexer.in.l"
{ return F90PPR_UNDEF; } { return F90PPR_UNDEF; }
YY_BREAK
case 25: case 25:
YY_RULE_SETUP YY_RULE_SETUP
#line 163 "cmDependsFortranLexer.in.l" #line 159 "cmDependsFortranLexer.in.l"
{ return CPP_IFDEF; } { return CPP_IFDEF; }
YY_BREAK
case 26: case 26:
YY_RULE_SETUP YY_RULE_SETUP
#line 164 "cmDependsFortranLexer.in.l" #line 160 "cmDependsFortranLexer.in.l"
{ return CPP_IFNDEF; } { return CPP_IFNDEF; }
YY_BREAK
case 27: case 27:
YY_RULE_SETUP YY_RULE_SETUP
#line 165 "cmDependsFortranLexer.in.l" #line 161 "cmDependsFortranLexer.in.l"
{ return CPP_IF; } { return CPP_IF; }
YY_BREAK
case 28: case 28:
YY_RULE_SETUP YY_RULE_SETUP
#line 166 "cmDependsFortranLexer.in.l" #line 162 "cmDependsFortranLexer.in.l"
{ return CPP_ELIF; } { return CPP_ELIF; }
YY_BREAK
case 29: case 29:
YY_RULE_SETUP YY_RULE_SETUP
#line 167 "cmDependsFortranLexer.in.l" #line 163 "cmDependsFortranLexer.in.l"
{ return CPP_ELSE; } { return CPP_ELSE; }
YY_BREAK
case 30: case 30:
YY_RULE_SETUP YY_RULE_SETUP
#line 168 "cmDependsFortranLexer.in.l" #line 164 "cmDependsFortranLexer.in.l"
{ return CPP_ENDIF; } { return CPP_ENDIF; }
YY_BREAK
case 31: case 31:
YY_RULE_SETUP YY_RULE_SETUP
#line 170 "cmDependsFortranLexer.in.l" #line 166 "cmDependsFortranLexer.in.l"
{ return F90PPR_IFDEF; } { return F90PPR_IFDEF; }
YY_BREAK
case 32: case 32:
YY_RULE_SETUP YY_RULE_SETUP
#line 171 "cmDependsFortranLexer.in.l" #line 167 "cmDependsFortranLexer.in.l"
{ return F90PPR_IFNDEF; } { return F90PPR_IFNDEF; }
YY_BREAK
case 33: case 33:
YY_RULE_SETUP YY_RULE_SETUP
#line 172 "cmDependsFortranLexer.in.l" #line 168 "cmDependsFortranLexer.in.l"
{ return F90PPR_IF; } { return F90PPR_IF; }
YY_BREAK
case 34: case 34:
YY_RULE_SETUP YY_RULE_SETUP
#line 173 "cmDependsFortranLexer.in.l" #line 169 "cmDependsFortranLexer.in.l"
{ return F90PPR_ELIF; } { return F90PPR_ELIF; }
YY_BREAK
case 35: case 35:
YY_RULE_SETUP YY_RULE_SETUP
#line 174 "cmDependsFortranLexer.in.l" #line 170 "cmDependsFortranLexer.in.l"
{ return F90PPR_ELSE; } { return F90PPR_ELSE; }
YY_BREAK
case 36: case 36:
YY_RULE_SETUP YY_RULE_SETUP
#line 175 "cmDependsFortranLexer.in.l" #line 171 "cmDependsFortranLexer.in.l"
{ return F90PPR_ENDIF; } { return F90PPR_ENDIF; }
YY_BREAK
case 37: case 37:
/* rule 37 can match eol */ /* rule 37 can match eol */
#line 178 "cmDependsFortranLexer.in.l" #line 174 "cmDependsFortranLexer.in.l"
case 38: case 38:
/* rule 38 can match eol */ /* rule 38 can match eol */
YY_RULE_SETUP YY_RULE_SETUP
#line 178 "cmDependsFortranLexer.in.l" #line 174 "cmDependsFortranLexer.in.l"
/* Ignore */ /* Ignore */
YY_BREAK YY_BREAK
case 39: case 39:
YY_RULE_SETUP YY_RULE_SETUP
#line 181 "cmDependsFortranLexer.in.l" #line 177 "cmDependsFortranLexer.in.l"
{ yylvalp->string = strdup(yytext); return WORD; } { yylvalp->string = strdup(yytext); return WORD; }
YY_BREAK YY_BREAK
case 40: case 40:
/* rule 40 can match eol */ /* rule 40 can match eol */
YY_RULE_SETUP YY_RULE_SETUP
#line 183 "cmDependsFortranLexer.in.l" #line 179 "cmDependsFortranLexer.in.l"
{ return EOSTMT; } { return EOSTMT; }
YY_BREAK
case 41: case 41:
YY_RULE_SETUP YY_RULE_SETUP
#line 185 "cmDependsFortranLexer.in.l" #line 181 "cmDependsFortranLexer.in.l"
/* Ignore */ /* Ignore */
YY_BREAK YY_BREAK
case 42: case 42:
YY_RULE_SETUP YY_RULE_SETUP
#line 187 "cmDependsFortranLexer.in.l" #line 183 "cmDependsFortranLexer.in.l"
{ return *yytext; } { return *yytext; }
YY_BREAK
case YY_STATE_EOF(INITIAL): case YY_STATE_EOF(INITIAL):
case YY_STATE_EOF(free_fmt): case YY_STATE_EOF(free_fmt):
case YY_STATE_EOF(fixed_fmt): case YY_STATE_EOF(fixed_fmt):
case YY_STATE_EOF(str_sq): case YY_STATE_EOF(str_sq):
case YY_STATE_EOF(str_dq): case YY_STATE_EOF(str_dq):
#line 189 "cmDependsFortranLexer.in.l" #line 185 "cmDependsFortranLexer.in.l"
{ {
if(!cmDependsFortranParser_FilePop(yyextra)) if(!cmDependsFortranParser_FilePop(yyextra))
{ {
@ -1216,10 +1239,10 @@ case YY_STATE_EOF(str_dq):
YY_BREAK YY_BREAK
case 43: case 43:
YY_RULE_SETUP YY_RULE_SETUP
#line 196 "cmDependsFortranLexer.in.l" #line 192 "cmDependsFortranLexer.in.l"
ECHO; ECHO;
YY_BREAK YY_BREAK
#line 1250 "cmDependsFortranLexer.c" #line 1246 "cmDependsFortranLexer.cxx"
case YY_END_OF_BUFFER: case YY_END_OF_BUFFER:
{ {
@ -2019,9 +2042,8 @@ YY_BUFFER_STATE cmDependsFortran_yy_scan_bytes (yyconst char * bytes, int len
#define YY_EXIT_FAILURE 2 #define YY_EXIT_FAILURE 2
#endif #endif
static void yy_fatal_error (yyconst char* msg , yyscan_t yyscanner) static void yy_fatal_error (yyconst char* msg , yyscan_t)
{ {
(void)yyscanner;
(void) fprintf( stderr, "%s\n", msg ); (void) fprintf( stderr, "%s\n", msg );
exit( YY_EXIT_FAILURE ); exit( YY_EXIT_FAILURE );
} }
@ -2298,15 +2320,13 @@ static int yy_flex_strlen (yyconst char * s , yyscan_t yyscanner)
} }
#endif #endif
void *cmDependsFortran_yyalloc (yy_size_t size , yyscan_t yyscanner) void *cmDependsFortran_yyalloc (yy_size_t size , yyscan_t)
{ {
(void)yyscanner;
return (void *) malloc( size ); return (void *) malloc( size );
} }
void *cmDependsFortran_yyrealloc (void * ptr, yy_size_t size , yyscan_t yyscanner) void *cmDependsFortran_yyrealloc (void * ptr, yy_size_t size , yyscan_t)
{ {
(void)yyscanner;
/* The cast to (char *) in the following accommodates both /* The cast to (char *) in the following accommodates both
* implementations that use char* generic pointers, and those * implementations that use char* generic pointers, and those
* that use void* generic pointers. It works with the latter * that use void* generic pointers. It works with the latter
@ -2317,9 +2337,8 @@ void *cmDependsFortran_yyrealloc (void * ptr, yy_size_t size , yyscan_t yyscan
return (void *) realloc( (char *) ptr, size ); return (void *) realloc( (char *) ptr, size );
} }
void cmDependsFortran_yyfree (void * ptr , yyscan_t yyscanner) void cmDependsFortran_yyfree (void * ptr , yyscan_t)
{ {
(void)yyscanner;
free( (char *) ptr ); /* see cmDependsFortran_yyrealloc() for (char *) cast */ free( (char *) ptr ); /* see cmDependsFortran_yyrealloc() for (char *) cast */
} }
@ -2337,7 +2356,7 @@ void cmDependsFortran_yyfree (void * ptr , yyscan_t yyscanner)
#undef YY_DECL_IS_OURS #undef YY_DECL_IS_OURS
#undef YY_DECL #undef YY_DECL
#endif #endif
#line 196 "cmDependsFortranLexer.in.l" #line 192 "cmDependsFortranLexer.in.l"
@ -2348,4 +2367,3 @@ YY_BUFFER_STATE cmDependsFortranLexer_GetCurrentBuffer(yyscan_t yyscanner)
struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
return YY_CURRENT_BUFFER; return YY_CURRENT_BUFFER;
} }

View File

@ -2,10 +2,6 @@
#define cmDependsFortran_yyHEADER_H 1 #define cmDependsFortran_yyHEADER_H 1
#define cmDependsFortran_yyIN_HEADER 1 #define cmDependsFortran_yyIN_HEADER 1
#line 6 "cmDependsFortranLexer.h"
#line 8 "cmDependsFortranLexer.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 */
@ -120,14 +116,7 @@ typedef void* yyscan_t;
#define yycolumn (YY_CURRENT_BUFFER_LVALUE->yy_bs_column) #define yycolumn (YY_CURRENT_BUFFER_LVALUE->yy_bs_column)
#define yy_flex_debug yyg->yy_flex_debug_r #define yy_flex_debug yyg->yy_flex_debug_r
#ifdef __cplusplus
extern "C"
{
#endif
int cmDependsFortran_yylex_init (yyscan_t* scanner); int cmDependsFortran_yylex_init (yyscan_t* scanner);
#ifdef __cplusplus
} /* extern "C" */
#endif
#ifndef YY_TYPEDEF_YY_BUFFER_STATE #ifndef YY_TYPEDEF_YY_BUFFER_STATE
#define YY_TYPEDEF_YY_BUFFER_STATE #define YY_TYPEDEF_YY_BUFFER_STATE
@ -195,10 +184,6 @@ struct yy_buffer_state
}; };
#endif /* !YY_STRUCT_YY_BUFFER_STATE */ #endif /* !YY_STRUCT_YY_BUFFER_STATE */
#ifdef __cplusplus
extern "C"
{
#endif
void cmDependsFortran_yyrestart (FILE *input_file ,yyscan_t yyscanner ); void cmDependsFortran_yyrestart (FILE *input_file ,yyscan_t yyscanner );
void cmDependsFortran_yy_switch_to_buffer (YY_BUFFER_STATE new_buffer ,yyscan_t yyscanner ); void cmDependsFortran_yy_switch_to_buffer (YY_BUFFER_STATE new_buffer ,yyscan_t yyscanner );
YY_BUFFER_STATE cmDependsFortran_yy_create_buffer (FILE *file,int size ,yyscan_t yyscanner ); YY_BUFFER_STATE cmDependsFortran_yy_create_buffer (FILE *file,int size ,yyscan_t yyscanner );
@ -215,10 +200,6 @@ void *cmDependsFortran_yyalloc (yy_size_t ,yyscan_t yyscanner );
void *cmDependsFortran_yyrealloc (void *,yy_size_t ,yyscan_t yyscanner ); void *cmDependsFortran_yyrealloc (void *,yy_size_t ,yyscan_t yyscanner );
void cmDependsFortran_yyfree (void * ,yyscan_t yyscanner ); void cmDependsFortran_yyfree (void * ,yyscan_t yyscanner );
#ifdef __cplusplus
} /* extern "C" */
#endif
/* Begin user sect3 */ /* Begin user sect3 */
#define cmDependsFortran_yywrap(n) 1 #define cmDependsFortran_yywrap(n) 1
@ -242,11 +223,6 @@ void cmDependsFortran_yyfree (void * ,yyscan_t yyscanner );
/* Accessor methods to globals. /* Accessor methods to globals.
These are made visible to non-reentrant scanners for convenience. */ These are made visible to non-reentrant scanners for convenience. */
#ifdef __cplusplus
extern "C"
{
#endif
int cmDependsFortran_yylex_destroy (yyscan_t yyscanner ); int cmDependsFortran_yylex_destroy (yyscan_t yyscanner );
int cmDependsFortran_yyget_debug (yyscan_t yyscanner ); int cmDependsFortran_yyget_debug (yyscan_t yyscanner );
@ -273,10 +249,6 @@ int cmDependsFortran_yyget_lineno (yyscan_t yyscanner );
void cmDependsFortran_yyset_lineno (int line_number ,yyscan_t yyscanner ); void cmDependsFortran_yyset_lineno (int line_number ,yyscan_t yyscanner );
#ifdef __cplusplus
} /* extern "C" */
#endif
/* 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.
*/ */
@ -336,9 +308,6 @@ extern int cmDependsFortran_yylex (yyscan_t yyscanner);
#undef YY_DECL_IS_OURS #undef YY_DECL_IS_OURS
#undef YY_DECL #undef YY_DECL
#endif #endif
#line 196 "cmDependsFortranLexer.in.l"
#line 329 "cmDependsFortranLexer.h"
#undef cmDependsFortran_yyIN_HEADER #undef cmDependsFortran_yyIN_HEADER
#endif /* cmDependsFortran_yyHEADER_H */ #endif /* cmDependsFortran_yyHEADER_H */

View File

@ -31,30 +31,22 @@ This file must be translated to C and modified to build everywhere.
Run flex like this: Run flex like this:
flex --prefix=cmDependsFortran_yy --header-file=cmDependsFortranLexer.h -ocmDependsFortranLexer.c cmDependsFortranLexer.in.l flex --prefix=cmDependsFortran_yy --header-file=cmDependsFortranLexer.h -ocmDependsFortranLexer.cxx cmDependsFortranLexer.in.l
Modify cmDependsFortranLexer.c: Modify cmDependsFortranLexer.cxx:
- remove TABs - remove TABs
- add a statement "(void)yyscanner;" to the top of these methods: - remove "yyscanner" argument from these methods:
yy_fatal_error, yyalloc, yyrealloc, yyfree yy_fatal_error, yyalloc, yyrealloc, yyfree
- remove all YY_BREAK lines occurring right after return statements
Modify cmDependsFortranLexer.h: Modify cmDependsFortranLexer.h:
- remove TABs - remove TABs
- remove the yy_init_globals function - remove the yy_init_globals function
- add these lines around all function declarations:
#ifdef __cplusplus
extern "C"
{
#endif
...
#ifdef __cplusplus
}
#endif
- remove the block that includes unistd.h - remove the block that includes unistd.h
- remove #line directives (avoids bogus warning on old Sun)
*/ */
#define cmDependsFortranLexer_cxx
#include "cmDependsFortranParser.h" /* Interface to parser object. */ #include "cmDependsFortranParser.h" /* Interface to parser object. */
/* Disable some warnings. */ /* Disable some warnings. */
@ -72,18 +64,22 @@ Modify cmDependsFortranLexer.h:
/* Disable features we do not need. */ /* Disable features we do not need. */
#define YY_NEVER_INTERACTIVE 1 #define YY_NEVER_INTERACTIVE 1
#define YY_NO_UNISTD_H 1
#define ECHO #define ECHO
/* Setup the proper yylex declaration. */
#define YY_EXTRA_TYPE cmDependsFortranParser*
#define YY_DECL int cmDependsFortran_yylex(YYSTYPE* yylvalp, yyscan_t yyscanner)
/* Replace the lexer input function. */ /* Replace the lexer input function. */
#undef YY_INPUT #undef YY_INPUT
#define YY_INPUT(buf, result, max_size) \ #define YY_INPUT(buf, result, max_size) \
{ result = cmDependsFortranParser_Input(yyextra, buf, max_size); } { result = cmDependsFortranParser_Input(yyextra, buf, max_size); }
/* Provide isatty on Windows. */
#if defined( _WIN32 ) && !defined( __CYGWIN__ )
# include <io.h>
# if defined( _MSC_VER )
# define isatty _isatty
# endif
# define YY_NO_UNISTD_H 1
#endif
/* Include the set of tokens from the parser. */ /* Include the set of tokens from the parser. */
#include "cmDependsFortranParserTokens.h" #include "cmDependsFortranParserTokens.h"

View File

@ -157,30 +157,34 @@ This file must be translated to C and modified to build everywhere.
Run bison like this: Run bison like this:
bison --yacc --name-prefix=cmDependsFortran_yy --defines=cmDependsFortranParserTokens.h -ocmDependsFortranParser.c cmDependsFortranParser.y bison --yacc --name-prefix=cmDependsFortran_yy --defines=cmDependsFortranParserTokens.h -ocmDependsFortranParser.cxx cmDependsFortranParser.y
Modify cmDependsFortranParser.c: Modify cmDependsFortranParser.cxx:
- remove TABs - remove TABs
*/ */
/*-------------------------------------------------------------------------*/
#define cmDependsFortranParser_cxx
#include "cmDependsFortranParser.h" /* Interface to parser object. */
#include "cmDependsFortranParserTokens.h" /* Need YYSTYPE for YY_DECL. */
/* Configure the parser to use a lexer object. */ /* Configure the parser to use a lexer object. */
#define YYPARSE_PARAM yyscanner #define YYPARSE_PARAM yyscanner
#define YYLEX_PARAM yyscanner #define YYLEX_PARAM yyscanner
#define YY_DECL int cmDependsFortran_yylex(YYSTYPE* yylvalp, yyscan_t yyscanner)
#define YYERROR_VERBOSE 1 #define YYERROR_VERBOSE 1
#define cmDependsFortran_yyerror(x) \ #define cmDependsFortran_yyerror(x) \
cmDependsFortranError(yyscanner, x) cmDependsFortranError(yyscanner, x)
#include "cmDependsFortranLexer.h" /* Interface to lexer object. */
#include "cmDependsFortranParser.h" /* Interface to parser object. */
#include "cmDependsFortranParserTokens.h" /* Need YYSTYPE for YY_DECL. */
/* Forward declare the lexer entry point. */ /* Forward declare the lexer entry point. */
YY_DECL; YY_DECL;
/* Internal utility functions. */ /* Helper function to forward error callback. */
static void cmDependsFortranError(yyscan_t yyscanner, const char* message); static void cmDependsFortranError(yyscan_t yyscanner, const char* message)
{
cmDependsFortranParser* parser = cmDependsFortran_yyget_extra(yyscanner);
cmDependsFortranParser_Error(parser, message);
}
/* Disable some warnings in the generated code. */ /* Disable some warnings in the generated code. */
#ifdef __BORLANDC__ #ifdef __BORLANDC__
@ -205,12 +209,12 @@ static void cmDependsFortranError(yyscan_t yyscanner, const char* message);
#endif #endif
#if ! defined (YYSTYPE) && ! defined (YYSTYPE_IS_DECLARED) #if ! defined (YYSTYPE) && ! defined (YYSTYPE_IS_DECLARED)
#line 71 "cmDependsFortranParser.y" #line 75 "cmDependsFortranParser.y"
typedef union YYSTYPE { typedef union YYSTYPE {
char* string; char* string;
} YYSTYPE; } YYSTYPE;
/* Line 191 of yacc.c. */ /* Line 191 of yacc.c. */
#line 214 "cmDependsFortranParser.c" #line 218 "cmDependsFortranParser.cxx"
# define yystype YYSTYPE /* obsolescent; will be withdrawn */ # define yystype YYSTYPE /* obsolescent; will be withdrawn */
# define YYSTYPE_IS_DECLARED 1 # define YYSTYPE_IS_DECLARED 1
# define YYSTYPE_IS_TRIVIAL 1 # define YYSTYPE_IS_TRIVIAL 1
@ -222,7 +226,7 @@ typedef union YYSTYPE {
/* Line 214 of yacc.c. */ /* Line 214 of yacc.c. */
#line 226 "cmDependsFortranParser.c" #line 230 "cmDependsFortranParser.cxx"
#if ! defined (yyoverflow) || YYERROR_VERBOSE #if ! defined (yyoverflow) || YYERROR_VERBOSE
@ -412,11 +416,11 @@ static const yysigned_char yyrhs[] =
/* YYRLINE[YYN] -- source line where rule number YYN was defined. */ /* YYRLINE[YYN] -- source line where rule number YYN was defined. */
static const unsigned char yyrline[] = static const unsigned char yyrline[] =
{ {
0, 85, 85, 85, 88, 94, 100, 101, 107, 113, 0, 93, 93, 93, 96, 102, 108, 109, 115, 121,
119, 125, 131, 136, 141, 146, 151, 154, 154, 155, 127, 133, 139, 144, 149, 154, 159, 162, 162, 163,
155, 155, 155, 156, 156, 157, 157, 158, 158, 159, 163, 163, 163, 164, 164, 165, 165, 166, 166, 167,
159, 160, 160, 161, 161, 162, 162, 163, 163, 164, 167, 168, 168, 169, 169, 170, 170, 171, 171, 172,
164, 167, 168, 169 172, 175, 176, 177
}; };
#endif #endif
@ -1161,7 +1165,7 @@ yyreduce:
switch (yyn) switch (yyn)
{ {
case 4: case 4:
#line 89 "cmDependsFortranParser.y" #line 97 "cmDependsFortranParser.y"
{ {
cmDependsFortranParser* parser = cmDependsFortran_yyget_extra(yyscanner); cmDependsFortranParser* parser = cmDependsFortran_yyget_extra(yyscanner);
cmDependsFortranParser_RuleUse(parser, yyvsp[-2].string); cmDependsFortranParser_RuleUse(parser, yyvsp[-2].string);
@ -1170,7 +1174,7 @@ yyreduce:
break; break;
case 5: case 5:
#line 95 "cmDependsFortranParser.y" #line 103 "cmDependsFortranParser.y"
{ {
cmDependsFortranParser* parser = cmDependsFortran_yyget_extra(yyscanner); cmDependsFortranParser* parser = cmDependsFortran_yyget_extra(yyscanner);
cmDependsFortranParser_RuleInclude(parser, yyvsp[-2].string); cmDependsFortranParser_RuleInclude(parser, yyvsp[-2].string);
@ -1179,7 +1183,7 @@ yyreduce:
break; break;
case 7: case 7:
#line 102 "cmDependsFortranParser.y" #line 110 "cmDependsFortranParser.y"
{ {
cmDependsFortranParser* parser = cmDependsFortran_yyget_extra(yyscanner); cmDependsFortranParser* parser = cmDependsFortran_yyget_extra(yyscanner);
cmDependsFortranParser_RuleModule(parser, yyvsp[-1].string); cmDependsFortranParser_RuleModule(parser, yyvsp[-1].string);
@ -1188,7 +1192,7 @@ yyreduce:
break; break;
case 8: case 8:
#line 108 "cmDependsFortranParser.y" #line 116 "cmDependsFortranParser.y"
{ {
cmDependsFortranParser* parser = cmDependsFortran_yyget_extra(yyscanner); cmDependsFortranParser* parser = cmDependsFortran_yyget_extra(yyscanner);
cmDependsFortranParser_RuleDefine(parser, yyvsp[-2].string); cmDependsFortranParser_RuleDefine(parser, yyvsp[-2].string);
@ -1197,7 +1201,7 @@ yyreduce:
break; break;
case 9: case 9:
#line 114 "cmDependsFortranParser.y" #line 122 "cmDependsFortranParser.y"
{ {
cmDependsFortranParser* parser = cmDependsFortran_yyget_extra(yyscanner); cmDependsFortranParser* parser = cmDependsFortran_yyget_extra(yyscanner);
cmDependsFortranParser_RuleUndef(parser, yyvsp[-2].string); cmDependsFortranParser_RuleUndef(parser, yyvsp[-2].string);
@ -1206,7 +1210,7 @@ yyreduce:
break; break;
case 10: case 10:
#line 120 "cmDependsFortranParser.y" #line 128 "cmDependsFortranParser.y"
{ {
cmDependsFortranParser* parser = cmDependsFortran_yyget_extra(yyscanner); cmDependsFortranParser* parser = cmDependsFortran_yyget_extra(yyscanner);
cmDependsFortranParser_RuleIfdef(parser, yyvsp[-2].string); cmDependsFortranParser_RuleIfdef(parser, yyvsp[-2].string);
@ -1215,7 +1219,7 @@ yyreduce:
break; break;
case 11: case 11:
#line 126 "cmDependsFortranParser.y" #line 134 "cmDependsFortranParser.y"
{ {
cmDependsFortranParser* parser = cmDependsFortran_yyget_extra(yyscanner); cmDependsFortranParser* parser = cmDependsFortran_yyget_extra(yyscanner);
cmDependsFortranParser_RuleIfndef(parser, yyvsp[-2].string); cmDependsFortranParser_RuleIfndef(parser, yyvsp[-2].string);
@ -1224,7 +1228,7 @@ yyreduce:
break; break;
case 12: case 12:
#line 132 "cmDependsFortranParser.y" #line 140 "cmDependsFortranParser.y"
{ {
cmDependsFortranParser* parser = cmDependsFortran_yyget_extra(yyscanner); cmDependsFortranParser* parser = cmDependsFortran_yyget_extra(yyscanner);
cmDependsFortranParser_RuleIf(parser); cmDependsFortranParser_RuleIf(parser);
@ -1232,7 +1236,7 @@ yyreduce:
break; break;
case 13: case 13:
#line 137 "cmDependsFortranParser.y" #line 145 "cmDependsFortranParser.y"
{ {
cmDependsFortranParser* parser = cmDependsFortran_yyget_extra(yyscanner); cmDependsFortranParser* parser = cmDependsFortran_yyget_extra(yyscanner);
cmDependsFortranParser_RuleElif(parser); cmDependsFortranParser_RuleElif(parser);
@ -1240,7 +1244,7 @@ yyreduce:
break; break;
case 14: case 14:
#line 142 "cmDependsFortranParser.y" #line 150 "cmDependsFortranParser.y"
{ {
cmDependsFortranParser* parser = cmDependsFortran_yyget_extra(yyscanner); cmDependsFortranParser* parser = cmDependsFortran_yyget_extra(yyscanner);
cmDependsFortranParser_RuleElse(parser); cmDependsFortranParser_RuleElse(parser);
@ -1248,7 +1252,7 @@ yyreduce:
break; break;
case 15: case 15:
#line 147 "cmDependsFortranParser.y" #line 155 "cmDependsFortranParser.y"
{ {
cmDependsFortranParser* parser = cmDependsFortran_yyget_extra(yyscanner); cmDependsFortranParser* parser = cmDependsFortran_yyget_extra(yyscanner);
cmDependsFortranParser_RuleEndif(parser); cmDependsFortranParser_RuleEndif(parser);
@ -1256,12 +1260,12 @@ yyreduce:
break; break;
case 41: case 41:
#line 167 "cmDependsFortranParser.y" #line 175 "cmDependsFortranParser.y"
{ free (yyvsp[0].string); } { free (yyvsp[0].string); }
break; break;
case 42: case 42:
#line 168 "cmDependsFortranParser.y" #line 176 "cmDependsFortranParser.y"
{ free (yyvsp[0].string); } { free (yyvsp[0].string); }
break; break;
@ -1269,7 +1273,7 @@ yyreduce:
} }
/* Line 1010 of yacc.c. */ /* Line 1010 of yacc.c. */
#line 1273 "cmDependsFortranParser.c" #line 1277 "cmDependsFortranParser.cxx"
yyvsp -= yylen; yyvsp -= yylen;
yyssp -= yylen; yyssp -= yylen;
@ -1494,12 +1498,7 @@ yyreturn:
} }
#line 172 "cmDependsFortranParser.y" #line 180 "cmDependsFortranParser.y"
/* End of grammar */
/*--------------------------------------------------------------------------*/
void cmDependsFortranError(yyscan_t yyscanner, const char* message)
{
cmDependsFortranParser* parser = cmDependsFortran_yyget_extra(yyscanner);
cmDependsFortranParser_Error(parser, message);
}

View File

@ -17,14 +17,11 @@
#ifndef cmDependsFortranParser_h #ifndef cmDependsFortranParser_h
#define cmDependsFortranParser_h #define cmDependsFortranParser_h
#include <stddef.h> /* size_t */
/* Forward declare parser object type. */ /* Forward declare parser object type. */
typedef struct cmDependsFortranParser_s cmDependsFortranParser; typedef struct cmDependsFortranParser_s cmDependsFortranParser;
#ifdef __cplusplus
extern "C"
{
#endif
/* Functions to enter/exit #include'd files in order. */ /* Functions to enter/exit #include'd files in order. */
int cmDependsFortranParser_FilePush(cmDependsFortranParser* parser, int cmDependsFortranParser_FilePush(cmDependsFortranParser* parser,
const char* fname); const char* fname);
@ -63,8 +60,26 @@ void cmDependsFortranParser_RuleElif(cmDependsFortranParser* parser);
void cmDependsFortranParser_RuleElse(cmDependsFortranParser* parser); void cmDependsFortranParser_RuleElse(cmDependsFortranParser* parser);
void cmDependsFortranParser_RuleEndif(cmDependsFortranParser* parser); void cmDependsFortranParser_RuleEndif(cmDependsFortranParser* parser);
#ifdef __cplusplus /* Define the parser stack element type. */
} /* extern "C" */ typedef union cmDependsFortran_yystype_u cmDependsFortran_yystype;
union cmDependsFortran_yystype_u
{
char* string;
};
/* Setup the proper yylex interface. */
#define YY_EXTRA_TYPE cmDependsFortranParser*
#define YY_DECL int cmDependsFortran_yylex(YYSTYPE* yylvalp, yyscan_t yyscanner)
#define YYSTYPE cmDependsFortran_yystype
#define YYSTYPE_IS_DECLARED 1
#if !defined(cmDependsFortranLexer_cxx)
# include "cmDependsFortranLexer.h"
#endif
#if !defined(cmDependsFortranLexer_cxx) && !defined(cmDependsFortranParser_cxx)
# undef YY_EXTRA_TYPE
# undef YY_DECL
# undef YYSTYPE
# undef YYSTYPE_IS_DECLARED
#endif #endif
#endif #endif

View File

@ -31,31 +31,34 @@ This file must be translated to C and modified to build everywhere.
Run bison like this: Run bison like this:
bison --yacc --name-prefix=cmDependsFortran_yy --defines=cmDependsFortranParserTokens.h -ocmDependsFortranParser.c cmDependsFortranParser.y bison --yacc --name-prefix=cmDependsFortran_yy --defines=cmDependsFortranParserTokens.h -ocmDependsFortranParser.cxx cmDependsFortranParser.y
Modify cmDependsFortranParser.c: Modify cmDependsFortranParser.cxx:
- remove TABs - remove TABs
*/ */
/*-------------------------------------------------------------------------*/
#define cmDependsFortranParser_cxx
#include "cmDependsFortranParser.h" /* Interface to parser object. */
#include "cmDependsFortranParserTokens.h" /* Need YYSTYPE for YY_DECL. */
/* Configure the parser to use a lexer object. */ /* Configure the parser to use a lexer object. */
#define YYPARSE_PARAM yyscanner #define YYPARSE_PARAM yyscanner
#define YYLEX_PARAM yyscanner #define YYLEX_PARAM yyscanner
#define YY_DECL int cmDependsFortran_yylex(YYSTYPE* yylvalp, yyscan_t yyscanner)
#define YYERROR_VERBOSE 1 #define YYERROR_VERBOSE 1
#define cmDependsFortran_yyerror(x) \ #define cmDependsFortran_yyerror(x) \
cmDependsFortranError(yyscanner, x) cmDependsFortranError(yyscanner, x)
/*-------------------------------------------------------------------------*/
#include "cmDependsFortranLexer.h" /* Interface to lexer object. */
#include "cmDependsFortranParser.h" /* Interface to parser object. */
#include "cmDependsFortranParserTokens.h" /* Need YYSTYPE for YY_DECL. */
/* Forward declare the lexer entry point. */ /* Forward declare the lexer entry point. */
YY_DECL; YY_DECL;
/* Internal utility functions. */ /* Helper function to forward error callback. */
static void cmDependsFortranError(yyscan_t yyscanner, const char* message); static void cmDependsFortranError(yyscan_t yyscanner, const char* message)
{
cmDependsFortranParser* parser = cmDependsFortran_yyget_extra(yyscanner);
cmDependsFortranParser_Error(parser, message);
}
/* Disable some warnings in the generated code. */ /* Disable some warnings in the generated code. */
#ifdef __BORLANDC__ #ifdef __BORLANDC__
@ -176,10 +179,3 @@ misc_code:
%% %%
/* End of grammar */ /* End of grammar */
/*--------------------------------------------------------------------------*/
void cmDependsFortranError(yyscan_t yyscanner, const char* message)
{
cmDependsFortranParser* parser = cmDependsFortran_yyget_extra(yyscanner);
cmDependsFortranParser_Error(parser, message);
}

View File

@ -90,7 +90,7 @@
#if ! defined (YYSTYPE) && ! defined (YYSTYPE_IS_DECLARED) #if ! defined (YYSTYPE) && ! defined (YYSTYPE_IS_DECLARED)
#line 71 "cmDependsFortranParser.y" #line 75 "cmDependsFortranParser.y"
typedef union YYSTYPE { typedef union YYSTYPE {
char* string; char* string;
} YYSTYPE; } YYSTYPE;