COMP: Do not use non-portable strcasecmp.

This commit is contained in:
Brad King 2007-10-03 17:01:49 -04:00
parent 394077ac5c
commit d06c2eed9a
2 changed files with 54 additions and 36 deletions

View File

@ -134,7 +134,7 @@
/* Copy the first part of user declarations. */ /* Copy the first part of user declarations. */
#line 1 "cmDependsFortranParser.y" #line 1 "/home/kingb/My Programs/CMake/Source/cmDependsFortranParser.y"
/*========================================================================= /*=========================================================================
@ -181,6 +181,7 @@ Modify cmDependsFortranParser.cxx:
#define cmDependsFortranParser_cxx #define cmDependsFortranParser_cxx
#include "cmDependsFortranParser.h" /* Interface to parser object. */ #include "cmDependsFortranParser.h" /* Interface to parser object. */
#include "cmDependsFortranParserTokens.h" /* Need YYSTYPE for YY_DECL. */ #include "cmDependsFortranParserTokens.h" /* Need YYSTYPE for YY_DECL. */
#include "cmSystemTools.h"
/* Configure the parser to use a lexer object. */ /* Configure the parser to use a lexer object. */
#define YYPARSE_PARAM yyscanner #define YYPARSE_PARAM yyscanner
@ -199,6 +200,13 @@ static void cmDependsFortranError(yyscan_t yyscanner, const char* message)
cmDependsFortranParser_Error(parser, message); cmDependsFortranParser_Error(parser, message);
} }
static bool cmDependsFortranParserIsKeyword(const char* word,
const char* keyword)
{
return (strlen(word) == strlen(keyword) &&
cmSystemTools::LowerCase(word) == keyword);
}
/* Disable some warnings in the generated code. */ /* Disable some warnings in the generated code. */
#ifdef __BORLANDC__ #ifdef __BORLANDC__
# pragma warn -8004 /* Variable assigned a value that is not used. */ # pragma warn -8004 /* Variable assigned a value that is not used. */
@ -232,12 +240,12 @@ static void cmDependsFortranError(yyscan_t yyscanner, const char* message)
#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
typedef union YYSTYPE typedef union YYSTYPE
#line 81 "cmDependsFortranParser.y" #line 88 "/home/kingb/My Programs/CMake/Source/cmDependsFortranParser.y"
{ {
char* string; char* string;
} }
/* Line 187 of yacc.c. */ /* Line 187 of yacc.c. */
#line 241 "cmDependsFortranParser.cxx" #line 248 "/home/kingb/My Programs/CMake-gcc-4.0/Source/cmDependsFortranParser.cxx"
YYSTYPE; YYSTYPE;
# define yystype YYSTYPE /* obsolescent; will be withdrawn */ # define yystype YYSTYPE /* obsolescent; will be withdrawn */
# define YYSTYPE_IS_DECLARED 1 # define YYSTYPE_IS_DECLARED 1
@ -250,7 +258,7 @@ typedef union YYSTYPE
/* Line 216 of yacc.c. */ /* Line 216 of yacc.c. */
#line 254 "cmDependsFortranParser.cxx" #line 261 "/home/kingb/My Programs/CMake-gcc-4.0/Source/cmDependsFortranParser.cxx"
#ifdef short #ifdef short
# undef short # undef short
@ -550,11 +558,11 @@ static const yytype_int8 yyrhs[] =
/* YYRLINE[YYN] -- source line where rule number YYN was defined. */ /* YYRLINE[YYN] -- source line where rule number YYN was defined. */
static const yytype_uint8 yyrline[] = static const yytype_uint8 yyrline[] =
{ {
0, 100, 100, 100, 102, 102, 104, 107, 116, 144, 0, 107, 107, 107, 109, 109, 111, 114, 123, 152,
154, 155, 161, 167, 173, 179, 184, 189, 194, 199, 162, 163, 169, 175, 181, 187, 192, 197, 202, 207,
200, 201, 202, 208, 208, 209, 209, 210, 210, 211, 208, 209, 210, 216, 216, 217, 217, 218, 218, 219,
211, 212, 212, 213, 213, 214, 214, 215, 215, 216, 219, 220, 220, 221, 221, 222, 222, 223, 223, 224,
216, 219, 220, 221, 222, 223 224, 227, 228, 229, 230, 231
}; };
#endif #endif
@ -1517,9 +1525,9 @@ yyreduce:
switch (yyn) switch (yyn)
{ {
case 7: case 7:
#line 108 "cmDependsFortranParser.y" #line 115 "/home/kingb/My Programs/CMake/Source/cmDependsFortranParser.y"
{ {
if (strcasecmp((yyvsp[(1) - (2)].string), "interface") == 0) if (cmDependsFortranParserIsKeyword((yyvsp[(1) - (2)].string), "interface"))
{ {
cmDependsFortranParser* parser = cmDependsFortran_yyget_extra(yyscanner); cmDependsFortranParser* parser = cmDependsFortran_yyget_extra(yyscanner);
cmDependsFortranParser_SetInInterface(parser, true); cmDependsFortranParser_SetInInterface(parser, true);
@ -1529,27 +1537,28 @@ yyreduce:
break; break;
case 8: case 8:
#line 117 "cmDependsFortranParser.y" #line 124 "/home/kingb/My Programs/CMake/Source/cmDependsFortranParser.y"
{ {
if (strcasecmp((yyvsp[(1) - (4)].string), "use") == 0) if (cmDependsFortranParserIsKeyword((yyvsp[(1) - (4)].string), "use"))
{ {
cmDependsFortranParser* parser = cmDependsFortran_yyget_extra(yyscanner); cmDependsFortranParser* parser = cmDependsFortran_yyget_extra(yyscanner);
cmDependsFortranParser_RuleUse(parser, (yyvsp[(2) - (4)].string)); cmDependsFortranParser_RuleUse(parser, (yyvsp[(2) - (4)].string));
free((yyvsp[(2) - (4)].string)); free((yyvsp[(2) - (4)].string));
} }
else if (strcasecmp((yyvsp[(1) - (4)].string), "module") == 0) else if (cmDependsFortranParserIsKeyword((yyvsp[(1) - (4)].string), "module"))
{ {
cmDependsFortranParser* parser = cmDependsFortran_yyget_extra(yyscanner); cmDependsFortranParser* parser = cmDependsFortran_yyget_extra(yyscanner);
cmDependsFortranParser_RuleModule(parser, (yyvsp[(2) - (4)].string)); cmDependsFortranParser_RuleModule(parser, (yyvsp[(2) - (4)].string));
free((yyvsp[(2) - (4)].string)); free((yyvsp[(2) - (4)].string));
} }
else if (strcasecmp((yyvsp[(1) - (4)].string), "interface") == 0) else if (cmDependsFortranParserIsKeyword((yyvsp[(1) - (4)].string), "interface"))
{ {
cmDependsFortranParser* parser = cmDependsFortran_yyget_extra(yyscanner); cmDependsFortranParser* parser = cmDependsFortran_yyget_extra(yyscanner);
cmDependsFortranParser_SetInInterface(parser, true); cmDependsFortranParser_SetInInterface(parser, true);
free((yyvsp[(2) - (4)].string)); free((yyvsp[(2) - (4)].string));
} }
else if (strcasecmp((yyvsp[(2) - (4)].string), "interface") == 0 && strcasecmp((yyvsp[(1) - (4)].string), "end") == 0) else if (cmDependsFortranParserIsKeyword((yyvsp[(2) - (4)].string), "interface") &&
cmDependsFortranParserIsKeyword((yyvsp[(1) - (4)].string), "end"))
{ {
cmDependsFortranParser* parser = cmDependsFortran_yyget_extra(yyscanner); cmDependsFortranParser* parser = cmDependsFortran_yyget_extra(yyscanner);
cmDependsFortranParser_SetInInterface(parser, false); cmDependsFortranParser_SetInInterface(parser, false);
@ -1560,9 +1569,9 @@ yyreduce:
break; break;
case 9: case 9:
#line 145 "cmDependsFortranParser.y" #line 153 "/home/kingb/My Programs/CMake/Source/cmDependsFortranParser.y"
{ {
if (strcasecmp((yyvsp[(1) - (4)].string), "include") == 0) if (cmDependsFortranParserIsKeyword((yyvsp[(1) - (4)].string), "include"))
{ {
cmDependsFortranParser* parser = cmDependsFortran_yyget_extra(yyscanner); cmDependsFortranParser* parser = cmDependsFortran_yyget_extra(yyscanner);
cmDependsFortranParser_RuleInclude(parser, (yyvsp[(2) - (4)].string)); cmDependsFortranParser_RuleInclude(parser, (yyvsp[(2) - (4)].string));
@ -1573,7 +1582,7 @@ yyreduce:
break; break;
case 11: case 11:
#line 156 "cmDependsFortranParser.y" #line 164 "/home/kingb/My Programs/CMake/Source/cmDependsFortranParser.y"
{ {
cmDependsFortranParser* parser = cmDependsFortran_yyget_extra(yyscanner); cmDependsFortranParser* parser = cmDependsFortran_yyget_extra(yyscanner);
cmDependsFortranParser_RuleDefine(parser, (yyvsp[(2) - (4)].string)); cmDependsFortranParser_RuleDefine(parser, (yyvsp[(2) - (4)].string));
@ -1582,7 +1591,7 @@ yyreduce:
break; break;
case 12: case 12:
#line 162 "cmDependsFortranParser.y" #line 170 "/home/kingb/My Programs/CMake/Source/cmDependsFortranParser.y"
{ {
cmDependsFortranParser* parser = cmDependsFortran_yyget_extra(yyscanner); cmDependsFortranParser* parser = cmDependsFortran_yyget_extra(yyscanner);
cmDependsFortranParser_RuleUndef(parser, (yyvsp[(2) - (4)].string)); cmDependsFortranParser_RuleUndef(parser, (yyvsp[(2) - (4)].string));
@ -1591,7 +1600,7 @@ yyreduce:
break; break;
case 13: case 13:
#line 168 "cmDependsFortranParser.y" #line 176 "/home/kingb/My Programs/CMake/Source/cmDependsFortranParser.y"
{ {
cmDependsFortranParser* parser = cmDependsFortran_yyget_extra(yyscanner); cmDependsFortranParser* parser = cmDependsFortran_yyget_extra(yyscanner);
cmDependsFortranParser_RuleIfdef(parser, (yyvsp[(2) - (4)].string)); cmDependsFortranParser_RuleIfdef(parser, (yyvsp[(2) - (4)].string));
@ -1600,7 +1609,7 @@ yyreduce:
break; break;
case 14: case 14:
#line 174 "cmDependsFortranParser.y" #line 182 "/home/kingb/My Programs/CMake/Source/cmDependsFortranParser.y"
{ {
cmDependsFortranParser* parser = cmDependsFortran_yyget_extra(yyscanner); cmDependsFortranParser* parser = cmDependsFortran_yyget_extra(yyscanner);
cmDependsFortranParser_RuleIfndef(parser, (yyvsp[(2) - (4)].string)); cmDependsFortranParser_RuleIfndef(parser, (yyvsp[(2) - (4)].string));
@ -1609,7 +1618,7 @@ yyreduce:
break; break;
case 15: case 15:
#line 180 "cmDependsFortranParser.y" #line 188 "/home/kingb/My Programs/CMake/Source/cmDependsFortranParser.y"
{ {
cmDependsFortranParser* parser = cmDependsFortran_yyget_extra(yyscanner); cmDependsFortranParser* parser = cmDependsFortran_yyget_extra(yyscanner);
cmDependsFortranParser_RuleIf(parser); cmDependsFortranParser_RuleIf(parser);
@ -1617,7 +1626,7 @@ yyreduce:
break; break;
case 16: case 16:
#line 185 "cmDependsFortranParser.y" #line 193 "/home/kingb/My Programs/CMake/Source/cmDependsFortranParser.y"
{ {
cmDependsFortranParser* parser = cmDependsFortran_yyget_extra(yyscanner); cmDependsFortranParser* parser = cmDependsFortran_yyget_extra(yyscanner);
cmDependsFortranParser_RuleElif(parser); cmDependsFortranParser_RuleElif(parser);
@ -1625,7 +1634,7 @@ yyreduce:
break; break;
case 17: case 17:
#line 190 "cmDependsFortranParser.y" #line 198 "/home/kingb/My Programs/CMake/Source/cmDependsFortranParser.y"
{ {
cmDependsFortranParser* parser = cmDependsFortran_yyget_extra(yyscanner); cmDependsFortranParser* parser = cmDependsFortran_yyget_extra(yyscanner);
cmDependsFortranParser_RuleElse(parser); cmDependsFortranParser_RuleElse(parser);
@ -1633,7 +1642,7 @@ yyreduce:
break; break;
case 18: case 18:
#line 195 "cmDependsFortranParser.y" #line 203 "/home/kingb/My Programs/CMake/Source/cmDependsFortranParser.y"
{ {
cmDependsFortranParser* parser = cmDependsFortran_yyget_extra(yyscanner); cmDependsFortranParser* parser = cmDependsFortran_yyget_extra(yyscanner);
cmDependsFortranParser_RuleEndif(parser); cmDependsFortranParser_RuleEndif(parser);
@ -1641,18 +1650,18 @@ yyreduce:
break; break;
case 41: case 41:
#line 219 "cmDependsFortranParser.y" #line 227 "/home/kingb/My Programs/CMake/Source/cmDependsFortranParser.y"
{ free ((yyvsp[(1) - (1)].string)); } { free ((yyvsp[(1) - (1)].string)); }
break; break;
case 42: case 42:
#line 220 "cmDependsFortranParser.y" #line 228 "/home/kingb/My Programs/CMake/Source/cmDependsFortranParser.y"
{ free ((yyvsp[(1) - (1)].string)); } { free ((yyvsp[(1) - (1)].string)); }
break; break;
/* Line 1267 of yacc.c. */ /* Line 1267 of yacc.c. */
#line 1656 "cmDependsFortranParser.cxx" #line 1664 "/home/kingb/My Programs/CMake-gcc-4.0/Source/cmDependsFortranParser.cxx"
default: break; default: break;
} }
YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc); YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
@ -1866,7 +1875,7 @@ yyreturn:
} }
#line 226 "cmDependsFortranParser.y" #line 234 "/home/kingb/My Programs/CMake/Source/cmDependsFortranParser.y"
/* End of grammar */ /* End of grammar */

View File

@ -44,6 +44,7 @@ Modify cmDependsFortranParser.cxx:
#define cmDependsFortranParser_cxx #define cmDependsFortranParser_cxx
#include "cmDependsFortranParser.h" /* Interface to parser object. */ #include "cmDependsFortranParser.h" /* Interface to parser object. */
#include "cmDependsFortranParserTokens.h" /* Need YYSTYPE for YY_DECL. */ #include "cmDependsFortranParserTokens.h" /* Need YYSTYPE for YY_DECL. */
#include "cmSystemTools.h"
/* Configure the parser to use a lexer object. */ /* Configure the parser to use a lexer object. */
#define YYPARSE_PARAM yyscanner #define YYPARSE_PARAM yyscanner
@ -62,6 +63,13 @@ static void cmDependsFortranError(yyscan_t yyscanner, const char* message)
cmDependsFortranParser_Error(parser, message); cmDependsFortranParser_Error(parser, message);
} }
static bool cmDependsFortranParserIsKeyword(const char* word,
const char* keyword)
{
return (strlen(word) == strlen(keyword) &&
cmSystemTools::LowerCase(word) == keyword);
}
/* Disable some warnings in the generated code. */ /* Disable some warnings in the generated code. */
#ifdef __BORLANDC__ #ifdef __BORLANDC__
# pragma warn -8004 /* Variable assigned a value that is not used. */ # pragma warn -8004 /* Variable assigned a value that is not used. */
@ -106,7 +114,7 @@ assignment_stmt: WORD ASSIGNMENT_OP other EOSTMT /* Ignore */
keyword_stmt: keyword_stmt:
WORD EOSTMT WORD EOSTMT
{ {
if (strcasecmp($1, "interface") == 0) if (cmDependsFortranParserIsKeyword($1, "interface"))
{ {
cmDependsFortranParser* parser = cmDependsFortran_yyget_extra(yyscanner); cmDependsFortranParser* parser = cmDependsFortran_yyget_extra(yyscanner);
cmDependsFortranParser_SetInInterface(parser, true); cmDependsFortranParser_SetInInterface(parser, true);
@ -115,25 +123,26 @@ keyword_stmt:
} }
| WORD WORD other EOSTMT | WORD WORD other EOSTMT
{ {
if (strcasecmp($1, "use") == 0) if (cmDependsFortranParserIsKeyword($1, "use"))
{ {
cmDependsFortranParser* parser = cmDependsFortran_yyget_extra(yyscanner); cmDependsFortranParser* parser = cmDependsFortran_yyget_extra(yyscanner);
cmDependsFortranParser_RuleUse(parser, $2); cmDependsFortranParser_RuleUse(parser, $2);
free($2); free($2);
} }
else if (strcasecmp($1, "module") == 0) else if (cmDependsFortranParserIsKeyword($1, "module"))
{ {
cmDependsFortranParser* parser = cmDependsFortran_yyget_extra(yyscanner); cmDependsFortranParser* parser = cmDependsFortran_yyget_extra(yyscanner);
cmDependsFortranParser_RuleModule(parser, $2); cmDependsFortranParser_RuleModule(parser, $2);
free($2); free($2);
} }
else if (strcasecmp($1, "interface") == 0) else if (cmDependsFortranParserIsKeyword($1, "interface"))
{ {
cmDependsFortranParser* parser = cmDependsFortran_yyget_extra(yyscanner); cmDependsFortranParser* parser = cmDependsFortran_yyget_extra(yyscanner);
cmDependsFortranParser_SetInInterface(parser, true); cmDependsFortranParser_SetInInterface(parser, true);
free($2); free($2);
} }
else if (strcasecmp($2, "interface") == 0 && strcasecmp($1, "end") == 0) else if (cmDependsFortranParserIsKeyword($2, "interface") &&
cmDependsFortranParserIsKeyword($1, "end"))
{ {
cmDependsFortranParser* parser = cmDependsFortran_yyget_extra(yyscanner); cmDependsFortranParser* parser = cmDependsFortran_yyget_extra(yyscanner);
cmDependsFortranParser_SetInInterface(parser, false); cmDependsFortranParser_SetInInterface(parser, false);
@ -143,7 +152,7 @@ keyword_stmt:
} }
| WORD STRING other EOSTMT | WORD STRING other EOSTMT
{ {
if (strcasecmp($1, "include") == 0) if (cmDependsFortranParserIsKeyword($1, "include"))
{ {
cmDependsFortranParser* parser = cmDependsFortran_yyget_extra(yyscanner); cmDependsFortranParser* parser = cmDependsFortran_yyget_extra(yyscanner);
cmDependsFortranParser_RuleInclude(parser, $2); cmDependsFortranParser_RuleInclude(parser, $2);