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
cmDependsFortran.cxx
cmDependsFortran.h
cmDependsFortranLexer.c
cmDependsFortranParser.c
cmDependsFortranLexer.cxx
cmDependsFortranParser.cxx
cmDependsFortranParser.h
cmDependsJavaLexer.cxx
cmDependsJavaParser.cxx

View File

@ -18,7 +18,6 @@
#include "cmSystemTools.h"
#include "cmDependsFortranLexer.h" /* Interface to lexer object. */
#include "cmDependsFortranParser.h" /* Interface to parser object. */
#include <assert.h>
@ -26,15 +25,14 @@
//----------------------------------------------------------------------------
// 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.
int cmDependsFortran_yyparse(yyscan_t);
}
// Get the current buffer processed by the lexer.
YY_BUFFER_STATE cmDependsFortranLexer_GetCurrentBuffer(yyscan_t yyscanner);
// The parser entry point.
int cmDependsFortran_yyparse(yyscan_t);
//----------------------------------------------------------------------------
// Define parser object internal structure.
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
@ -626,30 +626,22 @@ This file must be translated to C and modified to build everywhere.
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
- 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
- remove all YY_BREAK lines occurring right after return statements
Modify cmDependsFortranLexer.h:
- remove TABs
- 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 #line directives (avoids bogus warning on old Sun)
*/
#define cmDependsFortranLexer_cxx
#include "cmDependsFortranParser.h" /* Interface to parser object. */
/* Disable some warnings. */
@ -667,25 +659,29 @@ Modify cmDependsFortranLexer.h:
/* Disable features we do not need. */
#define YY_NEVER_INTERACTIVE 1
#define YY_NO_UNISTD_H 1
#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. */
#undef YY_INPUT
#define YY_INPUT(buf, result, 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 "cmDependsFortranParserTokens.h"
/*--------------------------------------------------------------------------*/
#line 689 "cmDependsFortranLexer.c"
#line 685 "cmDependsFortranLexer.cxx"
#define INITIAL 0
#define free_fmt 1
@ -907,10 +903,10 @@ YY_DECL
register int yy_act;
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 )
{
@ -996,7 +992,7 @@ do_action: /* This label is used only to access EOF actions. */
case 1:
YY_RULE_SETUP
#line 102 "cmDependsFortranLexer.in.l"
#line 98 "cmDependsFortranLexer.in.l"
{
cmDependsFortranParser_StringStart(yyextra);
BEGIN(str_dq);
@ -1004,48 +1000,50 @@ YY_RULE_SETUP
YY_BREAK
case 2:
YY_RULE_SETUP
#line 107 "cmDependsFortranLexer.in.l"
#line 103 "cmDependsFortranLexer.in.l"
{
cmDependsFortranParser_StringStart(yyextra);
BEGIN(str_sq);
}
YY_BREAK
case 3:
#line 113 "cmDependsFortranLexer.in.l"
#line 109 "cmDependsFortranLexer.in.l"
case 4:
YY_RULE_SETUP
#line 113 "cmDependsFortranLexer.in.l"
#line 109 "cmDependsFortranLexer.in.l"
{
yylvalp->string = strdup(cmDependsFortranParser_StringEnd(yyextra));
return STRING;
}
YY_BREAK
case 5:
/* rule 5 can match eol */
#line 119 "cmDependsFortranLexer.in.l"
#line 115 "cmDependsFortranLexer.in.l"
case 6:
/* rule 6 can match eol */
YY_RULE_SETUP
#line 119 "cmDependsFortranLexer.in.l"
#line 115 "cmDependsFortranLexer.in.l"
/* Ignore (continued strings, free fmt) */
YY_BREAK
case 7:
/* rule 7 can match eol */
YY_RULE_SETUP
#line 121 "cmDependsFortranLexer.in.l"
#line 117 "cmDependsFortranLexer.in.l"
/*Ignore (cont. strings, fixed fmt) */
YY_BREAK
case 8:
/* rule 8 can match eol */
YY_RULE_SETUP
#line 123 "cmDependsFortranLexer.in.l"
#line 119 "cmDependsFortranLexer.in.l"
{
unput ('\n');
BEGIN(INITIAL);
return UNTERMINATED_STRING;
}
YY_BREAK
case 9:
YY_RULE_SETUP
#line 129 "cmDependsFortranLexer.in.l"
#line 125 "cmDependsFortranLexer.in.l"
{
cmDependsFortranParser_StringAppend(yyextra, yytext[0]);
}
@ -1053,55 +1051,62 @@ YY_RULE_SETUP
case 10:
/* rule 10 can match eol */
YY_RULE_SETUP
#line 133 "cmDependsFortranLexer.in.l"
#line 129 "cmDependsFortranLexer.in.l"
{ return EOSTMT; } /* Treat comments like */
YY_BREAK
case 11:
/* rule 11 can match eol */
YY_RULE_SETUP
#line 134 "cmDependsFortranLexer.in.l"
#line 130 "cmDependsFortranLexer.in.l"
{ return EOSTMT; } /* empty lines */
YY_BREAK
case 12:
YY_RULE_SETUP
#line 136 "cmDependsFortranLexer.in.l"
#line 132 "cmDependsFortranLexer.in.l"
{ return CPP_INCLUDE; }
YY_BREAK
case 13:
YY_RULE_SETUP
#line 137 "cmDependsFortranLexer.in.l"
#line 133 "cmDependsFortranLexer.in.l"
{ return F90PPR_INCLUDE; }
YY_BREAK
case 14:
YY_RULE_SETUP
#line 138 "cmDependsFortranLexer.in.l"
#line 134 "cmDependsFortranLexer.in.l"
{ return COCO_INCLUDE; }
YY_BREAK
case 15:
YY_RULE_SETUP
#line 139 "cmDependsFortranLexer.in.l"
#line 135 "cmDependsFortranLexer.in.l"
{ return F_INCLUDE; }
YY_BREAK
case 16:
YY_RULE_SETUP
#line 140 "cmDependsFortranLexer.in.l"
#line 136 "cmDependsFortranLexer.in.l"
{ return USE; }
YY_BREAK
case 17:
YY_RULE_SETUP
#line 142 "cmDependsFortranLexer.in.l"
#line 138 "cmDependsFortranLexer.in.l"
{
cmDependsFortranParser_SetInInterface(yyextra, 0);
}
YY_BREAK
case 18:
YY_RULE_SETUP
#line 145 "cmDependsFortranLexer.in.l"
#line 141 "cmDependsFortranLexer.in.l"
{
cmDependsFortranParser_SetInInterface(yyextra, 1);
}
YY_BREAK
case 19:
YY_RULE_SETUP
#line 149 "cmDependsFortranLexer.in.l"
#line 145 "cmDependsFortranLexer.in.l"
/* Ignore */
YY_BREAK
case 20:
YY_RULE_SETUP
#line 150 "cmDependsFortranLexer.in.l"
#line 146 "cmDependsFortranLexer.in.l"
{
if(!cmDependsFortranParser_GetInInterface(yyextra))
{
@ -1111,102 +1116,120 @@ YY_RULE_SETUP
YY_BREAK
case 21:
YY_RULE_SETUP
#line 157 "cmDependsFortranLexer.in.l"
#line 153 "cmDependsFortranLexer.in.l"
{ return CPP_DEFINE; }
YY_BREAK
case 22:
YY_RULE_SETUP
#line 158 "cmDependsFortranLexer.in.l"
#line 154 "cmDependsFortranLexer.in.l"
{ return F90PPR_DEFINE; }
YY_BREAK
case 23:
YY_RULE_SETUP
#line 160 "cmDependsFortranLexer.in.l"
#line 156 "cmDependsFortranLexer.in.l"
{ return CPP_UNDEF; }
YY_BREAK
case 24:
YY_RULE_SETUP
#line 161 "cmDependsFortranLexer.in.l"
#line 157 "cmDependsFortranLexer.in.l"
{ return F90PPR_UNDEF; }
YY_BREAK
case 25:
YY_RULE_SETUP
#line 163 "cmDependsFortranLexer.in.l"
#line 159 "cmDependsFortranLexer.in.l"
{ return CPP_IFDEF; }
YY_BREAK
case 26:
YY_RULE_SETUP
#line 164 "cmDependsFortranLexer.in.l"
#line 160 "cmDependsFortranLexer.in.l"
{ return CPP_IFNDEF; }
YY_BREAK
case 27:
YY_RULE_SETUP
#line 165 "cmDependsFortranLexer.in.l"
#line 161 "cmDependsFortranLexer.in.l"
{ return CPP_IF; }
YY_BREAK
case 28:
YY_RULE_SETUP
#line 166 "cmDependsFortranLexer.in.l"
#line 162 "cmDependsFortranLexer.in.l"
{ return CPP_ELIF; }
YY_BREAK
case 29:
YY_RULE_SETUP
#line 167 "cmDependsFortranLexer.in.l"
#line 163 "cmDependsFortranLexer.in.l"
{ return CPP_ELSE; }
YY_BREAK
case 30:
YY_RULE_SETUP
#line 168 "cmDependsFortranLexer.in.l"
#line 164 "cmDependsFortranLexer.in.l"
{ return CPP_ENDIF; }
YY_BREAK
case 31:
YY_RULE_SETUP
#line 170 "cmDependsFortranLexer.in.l"
#line 166 "cmDependsFortranLexer.in.l"
{ return F90PPR_IFDEF; }
YY_BREAK
case 32:
YY_RULE_SETUP
#line 171 "cmDependsFortranLexer.in.l"
#line 167 "cmDependsFortranLexer.in.l"
{ return F90PPR_IFNDEF; }
YY_BREAK
case 33:
YY_RULE_SETUP
#line 172 "cmDependsFortranLexer.in.l"
#line 168 "cmDependsFortranLexer.in.l"
{ return F90PPR_IF; }
YY_BREAK
case 34:
YY_RULE_SETUP
#line 173 "cmDependsFortranLexer.in.l"
#line 169 "cmDependsFortranLexer.in.l"
{ return F90PPR_ELIF; }
YY_BREAK
case 35:
YY_RULE_SETUP
#line 174 "cmDependsFortranLexer.in.l"
#line 170 "cmDependsFortranLexer.in.l"
{ return F90PPR_ELSE; }
YY_BREAK
case 36:
YY_RULE_SETUP
#line 175 "cmDependsFortranLexer.in.l"
#line 171 "cmDependsFortranLexer.in.l"
{ return F90PPR_ENDIF; }
YY_BREAK
case 37:
/* rule 37 can match eol */
#line 178 "cmDependsFortranLexer.in.l"
#line 174 "cmDependsFortranLexer.in.l"
case 38:
/* rule 38 can match eol */
YY_RULE_SETUP
#line 178 "cmDependsFortranLexer.in.l"
#line 174 "cmDependsFortranLexer.in.l"
/* Ignore */
YY_BREAK
case 39:
YY_RULE_SETUP
#line 181 "cmDependsFortranLexer.in.l"
#line 177 "cmDependsFortranLexer.in.l"
{ yylvalp->string = strdup(yytext); return WORD; }
YY_BREAK
case 40:
/* rule 40 can match eol */
YY_RULE_SETUP
#line 183 "cmDependsFortranLexer.in.l"
#line 179 "cmDependsFortranLexer.in.l"
{ return EOSTMT; }
YY_BREAK
case 41:
YY_RULE_SETUP
#line 185 "cmDependsFortranLexer.in.l"
#line 181 "cmDependsFortranLexer.in.l"
/* Ignore */
YY_BREAK
case 42:
YY_RULE_SETUP
#line 187 "cmDependsFortranLexer.in.l"
#line 183 "cmDependsFortranLexer.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 189 "cmDependsFortranLexer.in.l"
#line 185 "cmDependsFortranLexer.in.l"
{
if(!cmDependsFortranParser_FilePop(yyextra))
{
@ -1216,10 +1239,10 @@ case YY_STATE_EOF(str_dq):
YY_BREAK
case 43:
YY_RULE_SETUP
#line 196 "cmDependsFortranLexer.in.l"
#line 192 "cmDependsFortranLexer.in.l"
ECHO;
YY_BREAK
#line 1250 "cmDependsFortranLexer.c"
#line 1246 "cmDependsFortranLexer.cxx"
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
#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 );
exit( YY_EXIT_FAILURE );
}
@ -2298,15 +2320,13 @@ static int yy_flex_strlen (yyconst char * s , yyscan_t yyscanner)
}
#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 );
}
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
* implementations that use char* generic pointers, and those
* 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 );
}
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 */
}
@ -2337,7 +2356,7 @@ void cmDependsFortran_yyfree (void * ptr , yyscan_t yyscanner)
#undef YY_DECL_IS_OURS
#undef YY_DECL
#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;
return YY_CURRENT_BUFFER;
}

View File

@ -2,10 +2,6 @@
#define cmDependsFortran_yyHEADER_H 1
#define cmDependsFortran_yyIN_HEADER 1
#line 6 "cmDependsFortranLexer.h"
#line 8 "cmDependsFortranLexer.h"
#define YY_INT_ALIGNED short int
/* A lexical scanner generated by flex */
@ -120,14 +116,7 @@ typedef void* yyscan_t;
#define yycolumn (YY_CURRENT_BUFFER_LVALUE->yy_bs_column)
#define yy_flex_debug yyg->yy_flex_debug_r
#ifdef __cplusplus
extern "C"
{
#endif
int cmDependsFortran_yylex_init (yyscan_t* scanner);
#ifdef __cplusplus
} /* extern "C" */
#endif
#ifndef 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 */
#ifdef __cplusplus
extern "C"
{
#endif
void cmDependsFortran_yyrestart (FILE *input_file ,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 );
@ -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_yyfree (void * ,yyscan_t yyscanner );
#ifdef __cplusplus
} /* extern "C" */
#endif
/* Begin user sect3 */
#define cmDependsFortran_yywrap(n) 1
@ -242,11 +223,6 @@ void cmDependsFortran_yyfree (void * ,yyscan_t yyscanner );
/* Accessor methods to globals.
These are made visible to non-reentrant scanners for convenience. */
#ifdef __cplusplus
extern "C"
{
#endif
int cmDependsFortran_yylex_destroy (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 );
#ifdef __cplusplus
} /* extern "C" */
#endif
/* Macros after this point can all be overridden by user definitions in
* section 1.
*/
@ -336,9 +308,6 @@ extern int cmDependsFortran_yylex (yyscan_t yyscanner);
#undef YY_DECL_IS_OURS
#undef YY_DECL
#endif
#line 196 "cmDependsFortranLexer.in.l"
#line 329 "cmDependsFortranLexer.h"
#undef cmDependsFortran_yyIN_HEADER
#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:
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
- add a statement "(void)yyscanner;" to the top of these methods:
- remove "yyscanner" argument from these methods:
yy_fatal_error, yyalloc, yyrealloc, yyfree
- remove all YY_BREAK lines occurring right after return statements
Modify cmDependsFortranLexer.h:
- remove TABs
- 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 #line directives (avoids bogus warning on old Sun)
*/
#define cmDependsFortranLexer_cxx
#include "cmDependsFortranParser.h" /* Interface to parser object. */
/* Disable some warnings. */
@ -72,18 +64,22 @@ Modify cmDependsFortranLexer.h:
/* Disable features we do not need. */
#define YY_NEVER_INTERACTIVE 1
#define YY_NO_UNISTD_H 1
#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. */
#undef YY_INPUT
#define YY_INPUT(buf, result, 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 "cmDependsFortranParserTokens.h"

View File

@ -157,30 +157,34 @@ This file must be translated to C and modified to build everywhere.
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
*/
/*-------------------------------------------------------------------------*/
#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. */
#define YYPARSE_PARAM yyscanner
#define YYLEX_PARAM yyscanner
#define YY_DECL int cmDependsFortran_yylex(YYSTYPE* yylvalp, yyscan_t yyscanner)
#define YYERROR_VERBOSE 1
#define cmDependsFortran_yyerror(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. */
YY_DECL;
/* Internal utility functions. */
static void cmDependsFortranError(yyscan_t yyscanner, const char* message);
/* Helper function to forward error callback. */
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. */
#ifdef __BORLANDC__
@ -205,12 +209,12 @@ static void cmDependsFortranError(yyscan_t yyscanner, const char* message);
#endif
#if ! defined (YYSTYPE) && ! defined (YYSTYPE_IS_DECLARED)
#line 71 "cmDependsFortranParser.y"
#line 75 "cmDependsFortranParser.y"
typedef union YYSTYPE {
char* string;
} YYSTYPE;
/* Line 191 of yacc.c. */
#line 214 "cmDependsFortranParser.c"
#line 218 "cmDependsFortranParser.cxx"
# define yystype YYSTYPE /* obsolescent; will be withdrawn */
# define YYSTYPE_IS_DECLARED 1
# define YYSTYPE_IS_TRIVIAL 1
@ -222,7 +226,7 @@ typedef union YYSTYPE {
/* Line 214 of yacc.c. */
#line 226 "cmDependsFortranParser.c"
#line 230 "cmDependsFortranParser.cxx"
#if ! defined (yyoverflow) || YYERROR_VERBOSE
@ -412,11 +416,11 @@ static const yysigned_char yyrhs[] =
/* YYRLINE[YYN] -- source line where rule number YYN was defined. */
static const unsigned char yyrline[] =
{
0, 85, 85, 85, 88, 94, 100, 101, 107, 113,
119, 125, 131, 136, 141, 146, 151, 154, 154, 155,
155, 155, 155, 156, 156, 157, 157, 158, 158, 159,
159, 160, 160, 161, 161, 162, 162, 163, 163, 164,
164, 167, 168, 169
0, 93, 93, 93, 96, 102, 108, 109, 115, 121,
127, 133, 139, 144, 149, 154, 159, 162, 162, 163,
163, 163, 163, 164, 164, 165, 165, 166, 166, 167,
167, 168, 168, 169, 169, 170, 170, 171, 171, 172,
172, 175, 176, 177
};
#endif
@ -1161,7 +1165,7 @@ yyreduce:
switch (yyn)
{
case 4:
#line 89 "cmDependsFortranParser.y"
#line 97 "cmDependsFortranParser.y"
{
cmDependsFortranParser* parser = cmDependsFortran_yyget_extra(yyscanner);
cmDependsFortranParser_RuleUse(parser, yyvsp[-2].string);
@ -1170,7 +1174,7 @@ yyreduce:
break;
case 5:
#line 95 "cmDependsFortranParser.y"
#line 103 "cmDependsFortranParser.y"
{
cmDependsFortranParser* parser = cmDependsFortran_yyget_extra(yyscanner);
cmDependsFortranParser_RuleInclude(parser, yyvsp[-2].string);
@ -1179,7 +1183,7 @@ yyreduce:
break;
case 7:
#line 102 "cmDependsFortranParser.y"
#line 110 "cmDependsFortranParser.y"
{
cmDependsFortranParser* parser = cmDependsFortran_yyget_extra(yyscanner);
cmDependsFortranParser_RuleModule(parser, yyvsp[-1].string);
@ -1188,7 +1192,7 @@ yyreduce:
break;
case 8:
#line 108 "cmDependsFortranParser.y"
#line 116 "cmDependsFortranParser.y"
{
cmDependsFortranParser* parser = cmDependsFortran_yyget_extra(yyscanner);
cmDependsFortranParser_RuleDefine(parser, yyvsp[-2].string);
@ -1197,7 +1201,7 @@ yyreduce:
break;
case 9:
#line 114 "cmDependsFortranParser.y"
#line 122 "cmDependsFortranParser.y"
{
cmDependsFortranParser* parser = cmDependsFortran_yyget_extra(yyscanner);
cmDependsFortranParser_RuleUndef(parser, yyvsp[-2].string);
@ -1206,7 +1210,7 @@ yyreduce:
break;
case 10:
#line 120 "cmDependsFortranParser.y"
#line 128 "cmDependsFortranParser.y"
{
cmDependsFortranParser* parser = cmDependsFortran_yyget_extra(yyscanner);
cmDependsFortranParser_RuleIfdef(parser, yyvsp[-2].string);
@ -1215,7 +1219,7 @@ yyreduce:
break;
case 11:
#line 126 "cmDependsFortranParser.y"
#line 134 "cmDependsFortranParser.y"
{
cmDependsFortranParser* parser = cmDependsFortran_yyget_extra(yyscanner);
cmDependsFortranParser_RuleIfndef(parser, yyvsp[-2].string);
@ -1224,7 +1228,7 @@ yyreduce:
break;
case 12:
#line 132 "cmDependsFortranParser.y"
#line 140 "cmDependsFortranParser.y"
{
cmDependsFortranParser* parser = cmDependsFortran_yyget_extra(yyscanner);
cmDependsFortranParser_RuleIf(parser);
@ -1232,7 +1236,7 @@ yyreduce:
break;
case 13:
#line 137 "cmDependsFortranParser.y"
#line 145 "cmDependsFortranParser.y"
{
cmDependsFortranParser* parser = cmDependsFortran_yyget_extra(yyscanner);
cmDependsFortranParser_RuleElif(parser);
@ -1240,7 +1244,7 @@ yyreduce:
break;
case 14:
#line 142 "cmDependsFortranParser.y"
#line 150 "cmDependsFortranParser.y"
{
cmDependsFortranParser* parser = cmDependsFortran_yyget_extra(yyscanner);
cmDependsFortranParser_RuleElse(parser);
@ -1248,7 +1252,7 @@ yyreduce:
break;
case 15:
#line 147 "cmDependsFortranParser.y"
#line 155 "cmDependsFortranParser.y"
{
cmDependsFortranParser* parser = cmDependsFortran_yyget_extra(yyscanner);
cmDependsFortranParser_RuleEndif(parser);
@ -1256,12 +1260,12 @@ yyreduce:
break;
case 41:
#line 167 "cmDependsFortranParser.y"
#line 175 "cmDependsFortranParser.y"
{ free (yyvsp[0].string); }
break;
case 42:
#line 168 "cmDependsFortranParser.y"
#line 176 "cmDependsFortranParser.y"
{ free (yyvsp[0].string); }
break;
@ -1269,7 +1273,7 @@ yyreduce:
}
/* Line 1010 of yacc.c. */
#line 1273 "cmDependsFortranParser.c"
#line 1277 "cmDependsFortranParser.cxx"
yyvsp -= 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
#define cmDependsFortranParser_h
#include <stddef.h> /* size_t */
/* Forward declare parser object type. */
typedef struct cmDependsFortranParser_s cmDependsFortranParser;
#ifdef __cplusplus
extern "C"
{
#endif
/* Functions to enter/exit #include'd files in order. */
int cmDependsFortranParser_FilePush(cmDependsFortranParser* parser,
const char* fname);
@ -63,8 +60,26 @@ void cmDependsFortranParser_RuleElif(cmDependsFortranParser* parser);
void cmDependsFortranParser_RuleElse(cmDependsFortranParser* parser);
void cmDependsFortranParser_RuleEndif(cmDependsFortranParser* parser);
#ifdef __cplusplus
} /* extern "C" */
/* Define the parser stack element type. */
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

View File

@ -31,31 +31,34 @@ This file must be translated to C and modified to build everywhere.
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
*/
/*-------------------------------------------------------------------------*/
#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. */
#define YYPARSE_PARAM yyscanner
#define YYLEX_PARAM yyscanner
#define YY_DECL int cmDependsFortran_yylex(YYSTYPE* yylvalp, yyscan_t yyscanner)
#define YYERROR_VERBOSE 1
#define cmDependsFortran_yyerror(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. */
YY_DECL;
/* Internal utility functions. */
static void cmDependsFortranError(yyscan_t yyscanner, const char* message);
/* Helper function to forward error callback. */
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. */
#ifdef __BORLANDC__
@ -176,10 +179,3 @@ misc_code:
%%
/* 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)
#line 71 "cmDependsFortranParser.y"
#line 75 "cmDependsFortranParser.y"
typedef union YYSTYPE {
char* string;
} YYSTYPE;