summaryrefslogtreecommitdiffstats
path: root/Source/cmFortranLexer.cxx
diff options
context:
space:
mode:
authorBrad King <brad.king@kitware.com>2016-09-05 20:46:42 (GMT)
committerBrad King <brad.king@kitware.com>2016-09-20 13:18:47 (GMT)
commitb5ac8b8aa778c7ad612a20deb04a2efafa386d9d (patch)
tree3f0fb4c12b0c363d4c014a29634223c11d0967da /Source/cmFortranLexer.cxx
parentbdcc1f517ed8a513f8c156d83f0244c1b9e98703 (diff)
downloadCMake-b5ac8b8aa778c7ad612a20deb04a2efafa386d9d.zip
CMake-b5ac8b8aa778c7ad612a20deb04a2efafa386d9d.tar.gz
CMake-b5ac8b8aa778c7ad612a20deb04a2efafa386d9d.tar.bz2
Fortran: Add support for submodule syntax in dependency scanning
Fortran 2008 [1] adds support for a new syntax related to modules: submodule ( ParentModule ) SubModule submodule ( ParentModule : SubModule ) NestedSubModule Both of these mean that the current source file requires the module `ParentModule` to be available if it is not provided in the current file. Teach our Fortran dependency scanner to parse this syntax to extract this relationship. For now simply tolerate the nested submodule case and extract only the dependency it expresses on the main module. Further work will be needed to extract dependencies among nested submodules. [1] http://fortranwiki.org/fortran/show/Fortran+2008 Closes: #16234
Diffstat (limited to 'Source/cmFortranLexer.cxx')
-rw-r--r--Source/cmFortranLexer.cxx535
1 files changed, 279 insertions, 256 deletions
diff --git a/Source/cmFortranLexer.cxx b/Source/cmFortranLexer.cxx
index 7bcd993..60d5591 100644
--- a/Source/cmFortranLexer.cxx
+++ b/Source/cmFortranLexer.cxx
@@ -347,8 +347,8 @@ static void yynoreturn yy_fatal_error (yyconst char* msg ,yyscan_t yyscanner );
*yy_cp = '\0'; \
yyg->yy_c_buf_p = yy_cp;
-#define YY_NUM_RULES 50
-#define YY_END_OF_BUFFER 51
+#define YY_NUM_RULES 54
+#define YY_END_OF_BUFFER 55
/* This struct is not used in this scanner,
but its presence is necessary. */
struct yy_trans_info
@@ -356,30 +356,31 @@ struct yy_trans_info
flex_int32_t yy_verify;
flex_int32_t yy_nxt;
};
-static yyconst flex_int16_t yy_accept[199] =
+static yyconst flex_int16_t yy_accept[210] =
{ 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 51, 45, 47, 46, 49, 1, 45, 33, 2, 35,
- 45, 46, 38, 45, 44, 44, 44, 44, 44, 45,
- 44, 47, 45, 46, 45, 44, 9, 8, 9, 4,
- 3, 45, 0, 10, 0, 0, 0, 0, 0, 33,
- 33, 34, 36, 38, 45, 44, 44, 44, 44, 44,
- 0, 48, 44, 0, 0, 0, 12, 0, 0, 0,
- 0, 0, 0, 45, 0, 11, 44, 0, 0, 5,
- 0, 0, 0, 29, 0, 0, 33, 33, 33, 33,
- 0, 0, 39, 44, 44, 44, 43, 12, 12, 0,
-
- 0, 0, 23, 0, 0, 0, 0, 0, 0, 6,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 44,
- 44, 44, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 30, 31, 0, 0, 0, 0,
- 0, 0, 44, 44, 44, 0, 24, 25, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 32, 27, 0,
- 0, 20, 0, 44, 44, 42, 0, 26, 21, 0,
- 0, 0, 19, 0, 0, 18, 28, 0, 0, 40,
- 44, 17, 22, 0, 7, 37, 7, 15, 0, 44,
- 14, 16, 41, 0, 0, 0, 13, 0
-
+ 55, 49, 51, 50, 53, 1, 49, 33, 2, 47,
+ 48, 35, 37, 50, 39, 49, 46, 46, 46, 46,
+ 46, 46, 49, 46, 51, 49, 50, 49, 46, 9,
+ 8, 9, 4, 3, 49, 0, 10, 0, 0, 0,
+ 0, 0, 33, 33, 34, 36, 39, 49, 46, 46,
+ 46, 46, 46, 46, 0, 52, 46, 0, 0, 0,
+ 12, 0, 0, 0, 0, 0, 0, 49, 0, 11,
+ 46, 0, 0, 5, 0, 0, 0, 29, 0, 0,
+ 33, 33, 33, 33, 0, 0, 40, 46, 46, 46,
+
+ 46, 45, 12, 12, 0, 0, 0, 23, 0, 0,
+ 0, 0, 0, 0, 6, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 46, 46, 46, 46, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 30, 31, 0, 0, 0, 0, 0, 0, 46, 46,
+ 46, 46, 0, 24, 25, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 32, 27, 0, 0, 20, 0,
+ 46, 46, 43, 46, 0, 26, 21, 0, 0, 0,
+ 19, 0, 0, 18, 28, 0, 0, 41, 46, 46,
+ 17, 22, 0, 7, 38, 7, 15, 0, 46, 46,
+
+ 14, 16, 42, 44, 0, 0, 0, 13, 0
} ;
static yyconst YY_CHAR yy_ec[256] =
@@ -387,17 +388,17 @@ static yyconst YY_CHAR yy_ec[256] =
1, 1, 1, 1, 1, 1, 1, 1, 2, 3,
1, 1, 4, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 5, 6, 7, 8, 9, 1, 10, 11, 1,
- 1, 12, 1, 13, 1, 1, 1, 14, 14, 14,
- 14, 14, 14, 14, 14, 14, 14, 15, 16, 17,
- 18, 19, 20, 1, 21, 22, 23, 24, 25, 26,
- 22, 22, 27, 22, 22, 28, 29, 30, 31, 22,
- 22, 32, 33, 34, 35, 22, 22, 22, 22, 22,
- 1, 36, 1, 1, 37, 1, 21, 22, 38, 39,
-
- 40, 41, 22, 22, 42, 22, 22, 43, 29, 44,
- 31, 22, 22, 32, 45, 34, 46, 22, 22, 22,
- 22, 22, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 5, 6, 7, 8, 9, 1, 10, 11, 12,
+ 13, 14, 1, 15, 1, 1, 1, 16, 16, 16,
+ 16, 16, 16, 16, 16, 16, 16, 17, 18, 19,
+ 20, 21, 22, 1, 23, 24, 25, 26, 27, 28,
+ 29, 29, 30, 29, 29, 31, 32, 33, 34, 29,
+ 29, 35, 36, 37, 38, 29, 29, 29, 29, 29,
+ 1, 39, 1, 1, 40, 1, 23, 24, 41, 42,
+
+ 43, 44, 29, 29, 45, 29, 29, 46, 32, 47,
+ 34, 29, 29, 35, 48, 37, 49, 29, 29, 29,
+ 29, 29, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
@@ -414,211 +415,217 @@ static yyconst YY_CHAR yy_ec[256] =
1, 1, 1, 1, 1
} ;
-static yyconst YY_CHAR yy_meta[47] =
+static yyconst YY_CHAR yy_meta[50] =
{ 0,
1, 2, 2, 3, 4, 3, 3, 1, 1, 3,
- 3, 1, 3, 5, 1, 3, 1, 3, 6, 1,
- 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
- 7, 7, 7, 7, 7, 1, 5, 7, 7, 7,
- 7, 7, 7, 7, 7, 7
+ 3, 3, 3, 1, 3, 5, 3, 3, 1, 3,
+ 6, 1, 7, 7, 7, 7, 7, 7, 7, 7,
+ 7, 7, 7, 7, 7, 7, 7, 7, 1, 5,
+ 7, 7, 7, 7, 7, 7, 7, 7, 7
} ;
-static yyconst flex_uint16_t yy_base[208] =
+static yyconst flex_uint16_t yy_base[219] =
{ 0,
- 0, 45, 0, 46, 392, 53, 49, 59, 61, 71,
- 392, 0, 572, 572, 364, 572, 91, 77, 572, 572,
- 342, 572, 317, 232, 0, 19, 42, 218, 40, 92,
- 137, 96, 174, 240, 220, 257, 572, 238, 97, 572,
- 572, 0, 205, 572, 302, 50, 77, 83, 59, 137,
- 156, 572, 0, 572, 123, 0, 84, 130, 90, 92,
- 167, 572, 0, 176, 347, 0, 190, 94, 175, 200,
- 121, 92, 201, 393, 193, 572, 0, 162, 222, 175,
- 171, 209, 176, 281, 184, 207, 307, 313, 328, 348,
- 338, 111, 0, 205, 213, 125, 0, 354, 185, 280,
-
- 336, 300, 340, 309, 278, 321, 139, 130, 245, 572,
- 335, 347, 351, 356, 360, 375, 375, 379, 383, 300,
- 80, 381, 384, 390, 392, 393, 397, 399, 397, 402,
- 403, 106, 105, 284, 572, 572, 407, 408, 411, 320,
- 413, 413, 420, 419, 421, 420, 572, 572, 421, 426,
- 428, 420, 467, 432, 101, 83, 438, 572, 572, 439,
- 446, 572, 436, 449, 63, 0, 450, 572, 572, 450,
- 453, 481, 572, 64, 0, 572, 572, 454, 460, 0,
- 464, 572, 572, 463, 572, 572, 572, 572, 468, 471,
- 495, 572, 0, 496, 0, 38, 572, 572, 513, 520,
-
- 526, 529, 536, 543, 550, 557, 564
+ 0, 48, 0, 49, 513, 56, 52, 57, 62, 68,
+ 515, 0, 583, 583, 509, 583, 97, 74, 583, 583,
+ 583, 583, 491, 583, 423, 421, 0, 19, 40, 392,
+ 36, 47, 86, 146, 88, 186, 413, 235, 275, 583,
+ 407, 98, 583, 583, 0, 386, 583, 323, 65, 73,
+ 81, 74, 127, 146, 583, 583, 583, 108, 0, 89,
+ 120, 92, 362, 116, 161, 583, 0, 167, 371, 0,
+ 168, 131, 146, 171, 81, 89, 352, 420, 353, 583,
+ 0, 349, 178, 196, 175, 197, 188, 208, 196, 197,
+ 256, 262, 324, 330, 337, 143, 0, 151, 220, 56,
+
+ 305, 0, 336, 139, 225, 315, 305, 322, 318, 163,
+ 320, 268, 266, 369, 583, 340, 347, 350, 350, 351,
+ 357, 350, 357, 363, 140, 235, 359, 218, 362, 375,
+ 379, 380, 381, 385, 384, 404, 405, 243, 235, 213,
+ 583, 583, 405, 407, 410, 171, 410, 409, 419, 418,
+ 423, 426, 311, 583, 583, 428, 429, 431, 173, 462,
+ 435, 166, 145, 438, 583, 583, 441, 444, 583, 433,
+ 448, 89, 0, 438, 450, 583, 583, 452, 457, 487,
+ 583, 114, 0, 583, 583, 457, 462, 0, 465, 463,
+ 583, 583, 468, 583, 583, 583, 583, 470, 471, 474,
+
+ 500, 583, 0, 0, 505, 0, 65, 583, 583, 524,
+ 531, 537, 540, 547, 554, 561, 568, 575
} ;
-static yyconst flex_int16_t yy_def[208] =
+static yyconst flex_int16_t yy_def[219] =
{ 0,
- 198, 1, 1, 1, 1, 1, 199, 199, 199, 199,
- 198, 200, 198, 198, 201, 198, 200, 198, 198, 198,
- 200, 198, 198, 200, 202, 202, 202, 202, 202, 200,
- 202, 198, 198, 198, 203, 198, 198, 198, 198, 198,
- 198, 200, 201, 198, 198, 198, 198, 198, 198, 198,
- 204, 198, 200, 198, 200, 202, 202, 202, 202, 202,
- 198, 198, 31, 198, 198, 65, 200, 198, 198, 198,
- 198, 198, 198, 203, 203, 198, 36, 198, 198, 198,
- 198, 198, 198, 198, 198, 198, 204, 204, 204, 204,
- 198, 198, 202, 202, 202, 202, 202, 198, 198, 198,
-
- 198, 198, 198, 198, 198, 198, 198, 198, 198, 198,
- 198, 198, 198, 198, 198, 198, 198, 198, 198, 202,
- 202, 202, 198, 198, 198, 198, 198, 198, 198, 198,
- 198, 198, 198, 198, 198, 198, 198, 198, 198, 198,
- 198, 198, 202, 202, 202, 198, 198, 198, 198, 198,
- 198, 198, 198, 198, 198, 198, 198, 198, 198, 198,
- 198, 198, 198, 202, 202, 202, 198, 198, 198, 198,
- 198, 198, 198, 205, 206, 198, 198, 198, 198, 202,
- 202, 198, 198, 198, 198, 198, 198, 198, 198, 202,
- 198, 198, 202, 198, 207, 207, 198, 0, 198, 198,
-
- 198, 198, 198, 198, 198, 198, 198
+ 209, 1, 1, 1, 1, 1, 210, 210, 210, 210,
+ 209, 211, 209, 209, 212, 209, 211, 209, 209, 209,
+ 209, 209, 209, 209, 209, 211, 213, 213, 213, 213,
+ 213, 213, 211, 213, 209, 209, 209, 214, 209, 209,
+ 209, 209, 209, 209, 211, 212, 209, 209, 209, 209,
+ 209, 209, 209, 215, 209, 209, 209, 211, 213, 213,
+ 213, 213, 213, 213, 209, 209, 34, 209, 209, 69,
+ 211, 209, 209, 209, 209, 209, 209, 214, 214, 209,
+ 39, 209, 209, 209, 209, 209, 209, 209, 209, 209,
+ 215, 215, 215, 215, 209, 209, 213, 213, 213, 213,
+
+ 213, 213, 209, 209, 209, 209, 209, 209, 209, 209,
+ 209, 209, 209, 209, 209, 209, 209, 209, 209, 209,
+ 209, 209, 209, 209, 213, 213, 213, 213, 209, 209,
+ 209, 209, 209, 209, 209, 209, 209, 209, 209, 209,
+ 209, 209, 209, 209, 209, 209, 209, 209, 213, 213,
+ 213, 213, 209, 209, 209, 209, 209, 209, 209, 209,
+ 209, 209, 209, 209, 209, 209, 209, 209, 209, 209,
+ 213, 213, 213, 213, 209, 209, 209, 209, 209, 209,
+ 209, 216, 217, 209, 209, 209, 209, 213, 213, 213,
+ 209, 209, 209, 209, 209, 209, 209, 209, 213, 213,
+
+ 209, 209, 213, 213, 209, 218, 218, 209, 0, 209,
+ 209, 209, 209, 209, 209, 209, 209, 209
} ;
-static yyconst flex_uint16_t yy_nxt[619] =
+static yyconst flex_uint16_t yy_nxt[633] =
{ 0,
12, 13, 14, 13, 13, 15, 16, 12, 17, 18,
- 19, 12, 20, 12, 21, 22, 12, 23, 12, 24,
- 25, 25, 25, 25, 26, 25, 27, 25, 28, 25,
- 25, 25, 25, 25, 29, 30, 31, 25, 25, 26,
- 25, 27, 25, 25, 25, 29, 32, 32, 57, 32,
- 32, 38, 33, 33, 32, 34, 197, 32, 39, 40,
- 33, 38, 57, 38, 35, 186, 186, 41, 39, 40,
- 39, 58, 60, 38, 81, 36, 36, 41, 50, 50,
- 39, 50, 51, 181, 60, 58, 52, 175, 86, 81,
- 36, 36, 45, 61, 62, 45, 61, 64, 79, 80,
-
- 64, 79, 86, 65, 82, 174, 83, 93, 84, 156,
- 155, 144, 85, 96, 46, 47, 97, 48, 100, 82,
- 83, 106, 93, 84, 91, 49, 85, 91, 96, 46,
- 47, 97, 48, 100, 133, 106, 49, 42, 50, 50,
- 119, 50, 51, 132, 42, 42, 52, 105, 42, 92,
- 63, 42, 94, 42, 119, 42, 42, 88, 50, 122,
- 88, 89, 105, 95, 92, 90, 108, 94, 61, 62,
- 122, 61, 42, 63, 42, 66, 109, 64, 66, 109,
- 64, 42, 42, 65, 110, 42, 99, 67, 42, 99,
- 42, 99, 42, 42, 99, 76, 111, 68, 69, 114,
-
- 70, 71, 101, 67, 102, 107, 117, 44, 72, 42,
- 42, 111, 68, 69, 114, 70, 71, 101, 102, 72,
- 74, 117, 76, 79, 80, 103, 79, 74, 74, 104,
- 118, 74, 120, 74, 74, 112, 74, 121, 74, 74,
- 103, 113, 78, 104, 73, 118, 109, 120, 59, 109,
- 112, 55, 121, 113, 110, 74, 74, 75, 75, 76,
- 75, 75, 75, 75, 75, 75, 75, 75, 75, 75,
- 77, 75, 75, 75, 75, 75, 75, 77, 77, 77,
- 77, 77, 77, 77, 77, 77, 77, 77, 77, 77,
- 77, 77, 75, 77, 77, 77, 77, 77, 77, 77,
-
- 77, 77, 77, 45, 115, 123, 45, 130, 88, 50,
- 116, 88, 89, 157, 88, 50, 90, 88, 89, 115,
- 123, 130, 90, 126, 116, 46, 47, 157, 48, 88,
- 50, 129, 88, 89, 143, 54, 49, 90, 126, 91,
- 46, 47, 91, 48, 131, 143, 129, 49, 66, 88,
- 50, 66, 88, 89, 161, 99, 53, 90, 99, 131,
- 98, 134, 124, 127, 92, 161, 44, 98, 125, 128,
- 68, 69, 135, 70, 71, 136, 134, 124, 127, 92,
- 125, 72, 137, 128, 138, 68, 69, 135, 70, 71,
- 136, 198, 72, 74, 34, 76, 198, 137, 139, 138,
-
- 74, 74, 140, 141, 74, 142, 74, 74, 145, 74,
- 146, 74, 74, 139, 198, 147, 148, 140, 141, 149,
- 142, 150, 151, 145, 152, 146, 153, 154, 74, 74,
- 147, 148, 158, 159, 149, 160, 150, 151, 162, 152,
- 163, 153, 154, 164, 165, 166, 168, 158, 159, 167,
- 160, 169, 170, 162, 171, 163, 198, 173, 164, 165,
- 166, 168, 176, 167, 177, 171, 169, 170, 172, 178,
- 179, 172, 173, 180, 182, 183, 184, 176, 188, 177,
- 98, 179, 172, 189, 178, 172, 190, 191, 180, 182,
- 183, 184, 192, 188, 98, 193, 194, 194, 189, 194,
-
- 194, 190, 191, 198, 198, 198, 198, 192, 198, 198,
- 193, 195, 195, 37, 37, 37, 37, 37, 37, 37,
- 42, 198, 198, 198, 42, 42, 43, 43, 43, 43,
- 43, 43, 43, 56, 198, 56, 75, 75, 75, 75,
- 75, 75, 75, 87, 87, 87, 87, 87, 87, 87,
- 185, 185, 185, 198, 185, 185, 185, 187, 198, 187,
- 198, 187, 187, 187, 196, 196, 196, 196, 196, 198,
- 196, 11, 198, 198, 198, 198, 198, 198, 198, 198,
- 198, 198, 198, 198, 198, 198, 198, 198, 198, 198,
- 198, 198, 198, 198, 198, 198, 198, 198, 198, 198,
-
- 198, 198, 198, 198, 198, 198, 198, 198, 198, 198,
- 198, 198, 198, 198, 198, 198, 198, 198
+ 19, 20, 21, 12, 22, 12, 23, 24, 12, 25,
+ 12, 26, 27, 27, 27, 27, 28, 27, 27, 29,
+ 27, 30, 27, 27, 27, 31, 27, 32, 33, 34,
+ 27, 27, 28, 27, 29, 27, 27, 31, 32, 35,
+ 35, 60, 35, 35, 41, 36, 36, 35, 37, 41,
+ 35, 42, 43, 36, 41, 60, 42, 43, 44, 38,
+ 41, 42, 61, 63, 44, 53, 53, 42, 53, 54,
+ 39, 39, 64, 55, 63, 208, 61, 65, 66, 68,
+ 65, 85, 68, 127, 64, 69, 39, 39, 48, 83,
+
+ 84, 48, 83, 86, 127, 87, 90, 85, 88, 95,
+ 110, 189, 95, 89, 97, 195, 195, 100, 86, 87,
+ 90, 111, 49, 50, 88, 110, 51, 89, 53, 53,
+ 97, 53, 54, 100, 52, 111, 55, 96, 49, 50,
+ 104, 51, 102, 104, 98, 52, 45, 92, 53, 183,
+ 92, 93, 96, 45, 45, 94, 99, 105, 102, 45,
+ 98, 67, 65, 66, 45, 65, 45, 45, 68, 104,
+ 182, 68, 104, 105, 69, 124, 106, 149, 107, 83,
+ 84, 125, 83, 71, 45, 67, 45, 70, 149, 124,
+ 70, 106, 107, 45, 45, 136, 125, 114, 108, 45,
+
+ 114, 71, 116, 109, 45, 115, 45, 45, 168, 136,
+ 179, 72, 73, 119, 108, 74, 75, 109, 116, 168,
+ 122, 179, 123, 76, 45, 45, 117, 72, 73, 119,
+ 74, 75, 118, 120, 76, 78, 122, 80, 123, 163,
+ 121, 117, 78, 78, 118, 164, 126, 162, 78, 120,
+ 78, 152, 129, 78, 121, 78, 78, 92, 53, 164,
+ 92, 93, 126, 92, 53, 94, 92, 93, 129, 150,
+ 139, 94, 138, 78, 78, 79, 79, 80, 79, 79,
+ 79, 79, 79, 79, 79, 79, 79, 79, 79, 79,
+ 81, 79, 79, 79, 79, 79, 79, 81, 81, 81,
+
+ 81, 81, 81, 81, 81, 81, 81, 81, 81, 81,
+ 81, 81, 81, 79, 81, 81, 81, 81, 81, 81,
+ 81, 81, 81, 81, 48, 92, 53, 48, 92, 93,
+ 132, 92, 53, 94, 92, 93, 128, 104, 95, 94,
+ 104, 95, 135, 175, 130, 137, 132, 133, 49, 50,
+ 131, 103, 51, 113, 134, 80, 112, 175, 135, 130,
+ 52, 137, 131, 133, 49, 50, 96, 51, 134, 140,
+ 114, 52, 70, 114, 141, 70, 142, 144, 115, 143,
+ 146, 96, 145, 147, 140, 101, 103, 148, 47, 151,
+ 141, 153, 142, 144, 143, 146, 72, 73, 145, 147,
+
+ 74, 75, 154, 148, 151, 155, 153, 157, 76, 156,
+ 158, 82, 72, 73, 159, 74, 75, 77, 154, 76,
+ 78, 155, 80, 157, 156, 62, 158, 78, 78, 159,
+ 160, 161, 165, 78, 166, 78, 167, 169, 78, 170,
+ 78, 78, 58, 57, 171, 172, 160, 161, 165, 173,
+ 166, 174, 167, 169, 170, 176, 177, 178, 78, 78,
+ 171, 172, 181, 180, 184, 173, 180, 174, 185, 186,
+ 187, 176, 177, 178, 188, 190, 191, 103, 181, 192,
+ 184, 187, 193, 197, 185, 186, 190, 198, 180, 199,
+ 188, 180, 191, 200, 201, 192, 202, 203, 193, 197,
+
+ 204, 205, 103, 198, 205, 199, 205, 56, 200, 205,
+ 201, 47, 202, 203, 209, 37, 204, 209, 206, 209,
+ 209, 209, 209, 206, 40, 40, 40, 40, 40, 40,
+ 40, 45, 209, 209, 209, 45, 45, 46, 46, 46,
+ 46, 46, 46, 46, 59, 209, 59, 79, 79, 79,
+ 79, 79, 79, 79, 91, 91, 91, 91, 91, 91,
+ 91, 194, 194, 194, 209, 194, 194, 194, 196, 209,
+ 196, 209, 196, 196, 196, 207, 207, 207, 207, 207,
+ 209, 207, 11, 209, 209, 209, 209, 209, 209, 209,
+ 209, 209, 209, 209, 209, 209, 209, 209, 209, 209,
+
+ 209, 209, 209, 209, 209, 209, 209, 209, 209, 209,
+ 209, 209, 209, 209, 209, 209, 209, 209, 209, 209,
+ 209, 209, 209, 209, 209, 209, 209, 209, 209, 209,
+ 209, 209
} ;
-static yyconst flex_int16_t yy_chk[619] =
+static yyconst flex_int16_t yy_chk[633] =
{ 0,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 2, 4, 26, 2,
- 4, 7, 2, 4, 6, 6, 196, 6, 7, 7,
- 6, 8, 26, 9, 6, 174, 174, 9, 8, 8,
- 9, 27, 29, 10, 46, 6, 6, 10, 18, 18,
- 10, 18, 18, 165, 29, 27, 18, 156, 49, 46,
- 6, 6, 17, 30, 30, 17, 30, 32, 39, 39,
-
- 32, 39, 49, 32, 47, 155, 47, 57, 48, 133,
- 132, 121, 48, 59, 17, 17, 60, 17, 68, 47,
- 47, 72, 57, 48, 55, 17, 48, 55, 59, 17,
- 17, 60, 17, 68, 108, 72, 17, 31, 50, 50,
- 92, 50, 50, 107, 31, 31, 50, 71, 31, 55,
- 31, 31, 58, 31, 92, 31, 31, 51, 51, 96,
- 51, 51, 71, 58, 55, 51, 78, 58, 61, 61,
- 96, 61, 31, 31, 33, 33, 80, 64, 33, 80,
- 64, 33, 33, 64, 80, 33, 99, 33, 33, 99,
- 33, 67, 33, 33, 67, 75, 81, 33, 33, 83,
-
- 33, 33, 69, 67, 69, 73, 85, 43, 33, 33,
- 33, 81, 33, 33, 83, 33, 33, 69, 69, 33,
- 35, 85, 35, 79, 79, 70, 79, 35, 35, 70,
- 86, 35, 94, 35, 35, 82, 35, 95, 35, 35,
- 70, 82, 38, 70, 34, 86, 109, 94, 28, 109,
- 82, 24, 95, 82, 109, 35, 35, 36, 36, 36,
- 36, 36, 36, 36, 36, 36, 36, 36, 36, 36,
- 36, 36, 36, 36, 36, 36, 36, 36, 36, 36,
- 36, 36, 36, 36, 36, 36, 36, 36, 36, 36,
- 36, 36, 36, 36, 36, 36, 36, 36, 36, 36,
-
- 36, 36, 36, 45, 84, 100, 45, 105, 87, 87,
- 84, 87, 87, 134, 88, 88, 87, 88, 88, 84,
- 100, 105, 88, 102, 84, 45, 45, 134, 45, 89,
- 89, 104, 89, 89, 120, 23, 45, 89, 102, 91,
- 45, 45, 91, 45, 106, 120, 104, 45, 65, 90,
- 90, 65, 90, 90, 140, 98, 21, 90, 98, 106,
- 65, 111, 101, 103, 91, 140, 15, 98, 101, 103,
- 65, 65, 112, 65, 65, 113, 111, 101, 103, 91,
- 101, 65, 114, 103, 115, 65, 65, 112, 65, 65,
- 113, 11, 65, 74, 5, 74, 0, 114, 116, 115,
-
- 74, 74, 117, 118, 74, 119, 74, 74, 122, 74,
- 123, 74, 74, 116, 0, 124, 125, 117, 118, 126,
- 119, 127, 128, 122, 129, 123, 130, 131, 74, 74,
- 124, 125, 137, 138, 126, 139, 127, 128, 141, 129,
- 142, 130, 131, 143, 144, 145, 149, 137, 138, 146,
- 139, 150, 151, 141, 152, 142, 0, 154, 143, 144,
- 145, 149, 157, 146, 160, 152, 150, 151, 153, 161,
- 163, 153, 154, 164, 167, 170, 171, 157, 178, 160,
- 153, 163, 172, 179, 161, 172, 181, 184, 164, 167,
- 170, 171, 189, 178, 172, 190, 191, 194, 179, 191,
-
- 194, 181, 184, 0, 0, 0, 0, 189, 0, 0,
- 190, 191, 194, 199, 199, 199, 199, 199, 199, 199,
- 200, 0, 0, 0, 200, 200, 201, 201, 201, 201,
- 201, 201, 201, 202, 0, 202, 203, 203, 203, 203,
- 203, 203, 203, 204, 204, 204, 204, 204, 204, 204,
- 205, 205, 205, 0, 205, 205, 205, 206, 0, 206,
- 0, 206, 206, 206, 207, 207, 207, 207, 207, 0,
- 207, 198, 198, 198, 198, 198, 198, 198, 198, 198,
- 198, 198, 198, 198, 198, 198, 198, 198, 198, 198,
- 198, 198, 198, 198, 198, 198, 198, 198, 198, 198,
-
- 198, 198, 198, 198, 198, 198, 198, 198, 198, 198,
- 198, 198, 198, 198, 198, 198, 198, 198
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 2,
+ 4, 28, 2, 4, 7, 2, 4, 6, 6, 8,
+ 6, 7, 7, 6, 9, 28, 8, 8, 9, 6,
+ 10, 9, 29, 31, 10, 18, 18, 10, 18, 18,
+ 6, 6, 32, 18, 31, 207, 29, 33, 33, 35,
+ 33, 49, 35, 100, 32, 35, 6, 6, 17, 42,
+
+ 42, 17, 42, 50, 100, 50, 52, 49, 51, 58,
+ 75, 172, 58, 51, 60, 182, 182, 62, 50, 50,
+ 52, 76, 17, 17, 51, 75, 17, 51, 53, 53,
+ 60, 53, 53, 62, 17, 76, 53, 58, 17, 17,
+ 104, 17, 64, 104, 61, 17, 34, 54, 54, 163,
+ 54, 54, 58, 34, 34, 54, 61, 72, 64, 34,
+ 61, 34, 65, 65, 34, 65, 34, 34, 68, 71,
+ 162, 68, 71, 72, 68, 96, 73, 125, 73, 83,
+ 83, 98, 83, 71, 34, 34, 36, 36, 125, 96,
+ 36, 73, 73, 36, 36, 110, 98, 84, 74, 36,
+
+ 84, 36, 85, 74, 36, 84, 36, 36, 146, 110,
+ 159, 36, 36, 87, 74, 36, 36, 74, 85, 146,
+ 89, 159, 90, 36, 36, 36, 86, 36, 36, 87,
+ 36, 36, 86, 88, 36, 38, 89, 38, 90, 139,
+ 88, 86, 38, 38, 86, 140, 99, 138, 38, 88,
+ 38, 128, 105, 38, 88, 38, 38, 91, 91, 140,
+ 91, 91, 99, 92, 92, 91, 92, 92, 105, 126,
+ 113, 92, 112, 38, 38, 39, 39, 39, 39, 39,
+ 39, 39, 39, 39, 39, 39, 39, 39, 39, 39,
+ 39, 39, 39, 39, 39, 39, 39, 39, 39, 39,
+
+ 39, 39, 39, 39, 39, 39, 39, 39, 39, 39,
+ 39, 39, 39, 39, 39, 39, 39, 39, 39, 39,
+ 39, 39, 39, 39, 48, 93, 93, 48, 93, 93,
+ 107, 94, 94, 93, 94, 94, 101, 103, 95, 94,
+ 103, 95, 109, 153, 106, 111, 107, 108, 48, 48,
+ 106, 103, 48, 82, 108, 79, 77, 153, 109, 106,
+ 48, 111, 106, 108, 48, 48, 95, 48, 108, 116,
+ 114, 48, 69, 114, 117, 69, 118, 120, 114, 119,
+ 122, 95, 121, 123, 116, 63, 69, 124, 46, 127,
+ 117, 129, 118, 120, 119, 122, 69, 69, 121, 123,
+
+ 69, 69, 130, 124, 127, 131, 129, 133, 69, 132,
+ 134, 41, 69, 69, 135, 69, 69, 37, 130, 69,
+ 78, 131, 78, 133, 132, 30, 134, 78, 78, 135,
+ 136, 137, 143, 78, 144, 78, 145, 147, 78, 148,
+ 78, 78, 26, 25, 149, 150, 136, 137, 143, 151,
+ 144, 152, 145, 147, 148, 156, 157, 158, 78, 78,
+ 149, 150, 161, 160, 164, 151, 160, 152, 167, 168,
+ 170, 156, 157, 158, 171, 174, 175, 160, 161, 178,
+ 164, 170, 179, 186, 167, 168, 174, 187, 180, 189,
+ 171, 180, 175, 190, 193, 178, 198, 199, 179, 186,
+
+ 200, 201, 180, 187, 201, 189, 205, 23, 190, 205,
+ 193, 15, 198, 199, 11, 5, 200, 0, 201, 0,
+ 0, 0, 0, 205, 210, 210, 210, 210, 210, 210,
+ 210, 211, 0, 0, 0, 211, 211, 212, 212, 212,
+ 212, 212, 212, 212, 213, 0, 213, 214, 214, 214,
+ 214, 214, 214, 214, 215, 215, 215, 215, 215, 215,
+ 215, 216, 216, 216, 0, 216, 216, 216, 217, 0,
+ 217, 0, 217, 217, 217, 218, 218, 218, 218, 218,
+ 0, 218, 209, 209, 209, 209, 209, 209, 209, 209,
+ 209, 209, 209, 209, 209, 209, 209, 209, 209, 209,
+
+ 209, 209, 209, 209, 209, 209, 209, 209, 209, 209,
+ 209, 209, 209, 209, 209, 209, 209, 209, 209, 209,
+ 209, 209, 209, 209, 209, 209, 209, 209, 209, 209,
+ 209, 209
} ;
/* The intent behind this definition is that it'll catch
@@ -685,7 +692,7 @@ Modify cmFortranLexer.cxx:
/*--------------------------------------------------------------------------*/
-#line 689 "cmFortranLexer.cxx"
+#line 696 "cmFortranLexer.cxx"
#define INITIAL 0
#define free_fmt 1
@@ -956,7 +963,7 @@ YY_DECL
#line 65 "cmFortranLexer.in.l"
-#line 960 "cmFortranLexer.cxx"
+#line 967 "cmFortranLexer.cxx"
while ( /*CONSTCOND*/1 ) /* loops until end-of-file is reached */
{
@@ -984,13 +991,13 @@ yy_match:
while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
{
yy_current_state = (int) yy_def[yy_current_state];
- if ( yy_current_state >= 199 )
+ if ( yy_current_state >= 210 )
yy_c = yy_meta[(unsigned int) yy_c];
}
yy_current_state = yy_nxt[yy_base[yy_current_state] + (flex_int16_t) yy_c];
++yy_cp;
}
- while ( yy_base[yy_current_state] != 572 );
+ while ( yy_base[yy_current_state] != 583 );
yy_find_action:
yy_act = yy_accept[yy_current_state];
@@ -1201,71 +1208,87 @@ YY_RULE_SETUP
#line 148 "cmFortranLexer.in.l"
{ return DCOLON; }
case 37:
-/* rule 37 can match eol */
YY_RULE_SETUP
-#line 150 "cmFortranLexer.in.l"
-{ return GARBAGE; }
+#line 149 "cmFortranLexer.in.l"
+{ return COLON; }
case 38:
+/* rule 38 can match eol */
YY_RULE_SETUP
-#line 152 "cmFortranLexer.in.l"
-{ return ASSIGNMENT_OP; }
+#line 151 "cmFortranLexer.in.l"
+{ return GARBAGE; }
case 39:
YY_RULE_SETUP
-#line 154 "cmFortranLexer.in.l"
-{ return END; }
+#line 153 "cmFortranLexer.in.l"
+{ return ASSIGNMENT_OP; }
case 40:
YY_RULE_SETUP
#line 155 "cmFortranLexer.in.l"
-{ return INCLUDE; }
+{ return END; }
case 41:
YY_RULE_SETUP
#line 156 "cmFortranLexer.in.l"
-{ return INTERFACE; }
+{ return INCLUDE; }
case 42:
YY_RULE_SETUP
#line 157 "cmFortranLexer.in.l"
-{ return MODULE; }
+{ return INTERFACE; }
case 43:
YY_RULE_SETUP
#line 158 "cmFortranLexer.in.l"
-{ return USE; }
+{ return MODULE; }
case 44:
YY_RULE_SETUP
+#line 159 "cmFortranLexer.in.l"
+{ return SUBMODULE; }
+case 45:
+YY_RULE_SETUP
#line 160 "cmFortranLexer.in.l"
+{ return USE; }
+case 46:
+YY_RULE_SETUP
+#line 162 "cmFortranLexer.in.l"
{
yylvalp->string = strdup(yytext);
return WORD;
}
-case 45:
+case 47:
+YY_RULE_SETUP
+#line 167 "cmFortranLexer.in.l"
+{ return LPAREN; }
+case 48:
+YY_RULE_SETUP
+#line 168 "cmFortranLexer.in.l"
+{ return RPAREN; }
+case 49:
YY_RULE_SETUP
-#line 165 "cmFortranLexer.in.l"
+#line 170 "cmFortranLexer.in.l"
{ return GARBAGE; }
-case 46:
-/* rule 46 can match eol */
+case 50:
+/* rule 50 can match eol */
YY_RULE_SETUP
-#line 167 "cmFortranLexer.in.l"
+#line 172 "cmFortranLexer.in.l"
{ return EOSTMT; }
-case 47:
+case 51:
YY_RULE_SETUP
-#line 170 "cmFortranLexer.in.l"
+#line 175 "cmFortranLexer.in.l"
/* Ignore */
YY_BREAK
-case 48:
-/* rule 48 can match eol */
+case 52:
+/* rule 52 can match eol */
YY_RULE_SETUP
-#line 171 "cmFortranLexer.in.l"
+#line 176 "cmFortranLexer.in.l"
/* Ignore line-endings preceded by \ */
YY_BREAK
-case 49:
+case 53:
YY_RULE_SETUP
-#line 173 "cmFortranLexer.in.l"
+#line 178 "cmFortranLexer.in.l"
{ return *yytext; }
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 175 "cmFortranLexer.in.l"
+#line 180 "cmFortranLexer.in.l"
{
if(!cmFortranParser_FilePop(yyextra) )
{
@@ -1273,12 +1296,12 @@ case YY_STATE_EOF(str_dq):
}
}
YY_BREAK
-case 50:
+case 54:
YY_RULE_SETUP
-#line 182 "cmFortranLexer.in.l"
+#line 187 "cmFortranLexer.in.l"
ECHO;
YY_BREAK
-#line 1320 "cmFortranLexer.cxx"
+#line 1347 "cmFortranLexer.cxx"
case YY_END_OF_BUFFER:
{
@@ -1572,7 +1595,7 @@ static int yy_get_next_buffer (yyscan_t yyscanner)
while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
{
yy_current_state = (int) yy_def[yy_current_state];
- if ( yy_current_state >= 199 )
+ if ( yy_current_state >= 210 )
yy_c = yy_meta[(unsigned int) yy_c];
}
yy_current_state = yy_nxt[yy_base[yy_current_state] + (flex_int16_t) yy_c];
@@ -1601,11 +1624,11 @@ static int yy_get_next_buffer (yyscan_t yyscanner)
while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
{
yy_current_state = (int) yy_def[yy_current_state];
- if ( yy_current_state >= 199 )
+ if ( yy_current_state >= 210 )
yy_c = yy_meta[(unsigned int) yy_c];
}
yy_current_state = yy_nxt[yy_base[yy_current_state] + (flex_int16_t) yy_c];
- yy_is_jam = (yy_current_state == 198);
+ yy_is_jam = (yy_current_state == 209);
(void)yyg;
return yy_is_jam ? 0 : yy_current_state;
@@ -2447,7 +2470,7 @@ void cmFortran_yyfree (void * ptr , yyscan_t yyscanner)
#define YYTABLES_NAME "yytables"
-#line 182 "cmFortranLexer.in.l"
+#line 187 "cmFortranLexer.in.l"