Merge topic 'fortran-module-dep'

219a9b1e14 Fortran: Fix suprious dependencies with submodules
a7211d6a2f Fortran: Teach lexer to handle CRLF newlines

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !7529
This commit is contained in:
Brad King
2022-08-10 13:17:23 +00:00
committed by Kitware Robot
8 changed files with 376 additions and 370 deletions

View File

@@ -557,31 +557,32 @@ struct yy_trans_info
flex_int32_t yy_verify;
flex_int32_t yy_nxt;
};
static const flex_int16_t yy_accept[210] =
static const flex_int16_t yy_accept[216] =
{ 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 29, 0,
33, 33, 33, 33, 0, 0, 40, 46, 46, 46,
46, 46, 49, 46, 51, 49, 50, 51, 49, 46,
9, 8, 9, 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, 0, 46,
0, 0, 0, 12, 0, 0, 0, 0, 0, 0,
0, 49, 0, 11, 46, 0, 0, 0, 5, 0,
0, 0, 0, 0, 29, 0, 33, 33, 33, 33,
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,
0, 30, 31, 0, 0, 0, 0, 0, 46, 46,
46, 46, 0, 24, 25, 0, 0, 0, 0, 0,
0, 0, 0, 0, 20, 32, 27, 0, 0, 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,
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, 0, 30, 31, 0,
0, 0, 0, 0, 46, 46, 46, 46, 0, 24,
25, 0, 0, 0, 0, 0, 0, 0, 0, 0,
20, 32, 27, 0, 0, 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,
14, 16, 42, 44, 0, 0, 0, 13, 0
38, 7, 15, 0, 46, 46, 14, 16, 42, 44,
0, 0, 0, 13, 0
} ;
static const YY_CHAR yy_ec[256] =
@@ -618,189 +619,197 @@ static const YY_CHAR yy_ec[256] =
static const YY_CHAR yy_meta[50] =
{ 0,
1, 2, 2, 3, 4, 3, 3, 1, 1, 3,
3, 3, 3, 1, 3, 5, 3, 3, 1, 3,
1, 2, 2, 2, 3, 4, 4, 1, 1, 4,
4, 4, 4, 1, 4, 5, 4, 4, 1, 4,
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 const flex_int16_t yy_base[219] =
static const flex_int16_t yy_base[225] =
{ 0,
0, 48, 0, 49, 464, 56, 52, 57, 62, 68,
466, 0, 468, 468, 462, 468, 74, 81, 468, 468,
468, 468, 447, 468, 442, 440, 0, 19, 41, 427,
47, 41, 90, 119, 97, 158, 455, 207, 247, 468,
454, 101, 468, 468, 0, 455, 468, 105, 430, 423,
62, 67, 119, 151, 468, 468, 468, 121, 0, 90,
93, 110, 431, 112, 142, 468, 0, 160, 295, 0,
162, 411, 123, 102, 408, 405, 446, 344, 447, 468,
0, 444, 170, 174, 420, 421, 132, 404, 95, 404,
180, 186, 192, 228, 297, 397, 0, 168, 144, 52,
0, 48, 0, 49, 55, 58, 64, 66, 75, 83,
491, 0, 492, 492, 487, 492, 86, 92, 492, 492,
492, 492, 472, 492, 467, 465, 0, 56, 59, 452,
66, 16, 105, 131, 109, 170, 480, 481, 219, 259,
492, 478, 479, 116, 492, 492, 0, 478, 492, 111,
453, 446, 34, 78, 155, 174, 492, 492, 492, 121,
0, 29, 105, 101, 454, 101, 131, 492, 474, 0,
180, 307, 0, 146, 433, 117, 94, 430, 427, 468,
467, 356, 468, 492, 0, 465, 464, 187, 191, 465,
439, 440, 149, 423, 126, 423, 200, 240, 311, 322,
411, 0, 204, 217, 397, 179, 390, 170, 389, 378,
364, 390, 389, 230, 468, 363, 355, 337, 337, 334,
335, 335, 330, 334, 187, 339, 267, 339, 327, 327,
327, 324, 325, 325, 318, 319, 318, 354, 352, 323,
327, 468, 468, 310, 307, 305, 297, 297, 275, 275,
277, 279, 287, 468, 468, 286, 283, 273, 196, 307,
200, 238, 234, 210, 468, 468, 468, 174, 171, 162,
279, 182, 0, 269, 150, 468, 468, 137, 109, 323,
468, 239, 0, 468, 468, 72, 71, 0, 283, 283,
468, 468, 51, 468, 468, 468, 468, 37, 283, 288,
206, 416, 0, 152, 180, 176, 430, 0, 216, 224,
417, 186, 418, 127, 418, 411, 415, 451, 450, 247,
492, 423, 416, 398, 393, 373, 364, 364, 359, 353,
198, 358, 178, 358, 346, 346, 346, 343, 344, 344,
338, 340, 339, 376, 374, 343, 346, 492, 492, 329,
325, 324, 313, 315, 211, 211, 291, 293, 313, 492,
492, 314, 304, 304, 261, 328, 212, 249, 243, 203,
492, 492, 492, 173, 158, 150, 293, 172, 0, 273,
144, 492, 492, 137, 125, 335, 492, 339, 0, 492,
492, 112, 63, 0, 304, 300, 492, 492, 58, 492,
330, 468, 0, 0, 331, 0, 52, 468, 468, 384,
391, 397, 400, 407, 414, 421, 428, 435
492, 492, 492, 30, 311, 312, 361, 492, 0, 0,
366, 0, 44, 492, 492, 396, 403, 409, 412, 419,
426, 433, 440, 447
} ;
static const flex_int16_t yy_def[219] =
static const flex_int16_t yy_def[225] =
{ 0,
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, 211, 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,
215, 1, 1, 1, 1, 1, 216, 216, 216, 216,
215, 217, 215, 215, 218, 215, 217, 215, 215, 215,
215, 215, 215, 215, 215, 217, 219, 219, 219, 219,
219, 219, 217, 219, 215, 217, 215, 215, 220, 215,
215, 215, 215, 215, 215, 215, 217, 218, 215, 215,
215, 215, 215, 215, 215, 221, 215, 215, 215, 217,
219, 219, 219, 219, 219, 219, 215, 215, 215, 34,
215, 215, 72, 217, 215, 215, 215, 215, 215, 215,
215, 220, 220, 215, 40, 215, 215, 215, 215, 215,
215, 215, 215, 215, 215, 215, 221, 221, 221, 221,
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,
215, 215, 219, 219, 219, 219, 219, 219, 215, 215,
215, 215, 215, 215, 215, 215, 215, 215, 215, 215,
215, 215, 215, 215, 215, 215, 215, 215, 215, 215,
219, 219, 219, 219, 215, 215, 215, 215, 215, 215,
215, 215, 215, 215, 215, 215, 215, 215, 215, 215,
215, 215, 215, 215, 219, 219, 219, 219, 215, 215,
215, 215, 215, 215, 215, 215, 215, 215, 215, 215,
215, 215, 215, 215, 215, 215, 219, 219, 219, 219,
215, 215, 215, 215, 215, 215, 215, 222, 223, 215,
215, 215, 215, 219, 219, 219, 215, 215, 215, 215,
209, 209, 213, 213, 209, 218, 218, 209, 0, 209,
209, 209, 209, 209, 209, 209, 209, 209
215, 215, 215, 215, 219, 219, 215, 215, 219, 219,
215, 224, 224, 215, 0, 215, 215, 215, 215, 215,
215, 215, 215, 215
} ;
static const flex_int16_t yy_nxt[518] =
static const flex_int16_t yy_nxt[542] =
{ 0,
12, 13, 14, 13, 13, 15, 16, 12, 17, 18,
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, 208, 61, 44, 48, 64, 42, 48, 202,
39, 39, 53, 53, 63, 53, 54, 61, 64, 127,
55, 65, 66, 201, 65, 63, 39, 39, 68, 49,
35, 66, 35, 35, 103, 36, 36, 37, 38, 35,
37, 38, 35, 66, 214, 36, 42, 43, 42, 43,
103, 39, 208, 44, 45, 44, 45, 42, 43, 93,
94, 46, 40, 40, 44, 42, 43, 50, 62, 46,
50, 63, 44, 55, 55, 55, 55, 56, 40, 40,
127, 68, 83, 84, 69, 83, 48, 87, 88, 48,
89, 50, 198, 90, 197, 97, 51, 98, 52, 45,
53, 53, 95, 53, 54, 95, 45, 45, 55, 99,
49, 97, 45, 98, 67, 100, 121, 45, 102, 45,
45, 122, 50, 65, 66, 108, 65, 51, 109, 52,
193, 100, 92, 53, 102, 92, 93, 45, 67, 70,
94, 68, 70, 104, 68, 96, 104, 69, 106, 107,
126, 83, 84, 71, 83, 114, 118, 71, 114, 119,
192, 92, 53, 115, 92, 93, 126, 92, 53, 94,
92, 93, 191, 92, 53, 94, 92, 93, 125, 72,
207, 57, 62, 65, 204, 63, 67, 68, 69, 67,
71, 51, 50, 71, 65, 50, 72, 88, 89, 90,
88, 95, 101, 52, 96, 101, 106, 108, 53, 104,
54, 47, 67, 68, 69, 67, 51, 114, 47, 47,
115, 105, 106, 108, 47, 104, 70, 110, 52, 47,
110, 47, 47, 53, 203, 54, 55, 55, 55, 55,
56, 74, 112, 113, 57, 102, 199, 127, 139, 47,
70, 73, 128, 140, 73, 98, 55, 98, 98, 99,
198, 71, 131, 100, 71, 74, 197, 72, 88, 89,
90, 88, 120, 124, 195, 120, 125, 131, 193, 192,
73, 94, 74, 75, 189, 104, 76, 78, 104, 80,
187, 133, 186, 125, 78, 78, 134, 185, 104, 103,
78, 104, 78, 130, 149, 78, 131, 78, 78, 92,
53, 114, 92, 93, 114, 149, 184, 94, 183, 115,
195, 195, 182, 181, 179, 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, 70, 151, 95, 70,
121, 98, 55, 98, 98, 99, 132, 101, 157, 100,
101, 75, 76, 133, 77, 78, 191, 110, 79, 82,
110, 84, 132, 157, 133, 110, 82, 82, 110, 190,
136, 109, 82, 137, 82, 155, 177, 82, 178, 82,
82, 98, 55, 98, 98, 99, 155, 189, 120, 100,
102, 120, 177, 188, 178, 187, 121, 82, 82, 83,
83, 84, 83, 83, 83, 83, 83, 83, 83, 83,
83, 83, 83, 83, 85, 83, 83, 83, 83, 83,
83, 85, 85, 85, 85, 85, 85, 85, 85, 85,
85, 85, 85, 85, 85, 85, 85, 83, 85, 85,
171, 95, 172, 173, 174, 188, 190, 199, 180, 203,
103, 180, 151, 200, 204, 178, 171, 190, 172, 173,
174, 188, 103, 199, 180, 203, 177, 180, 200, 176,
204, 205, 205, 175, 205, 205, 72, 73, 103, 74,
75, 96, 170, 76, 78, 169, 80, 168, 206, 206,
167, 78, 78, 166, 165, 164, 163, 78, 162, 78,
161, 160, 78, 159, 78, 78, 158, 157, 156, 155,
154, 153, 152, 150, 148, 147, 146, 145, 144, 143,
142, 141, 78, 78, 40, 40, 40, 40, 40, 40,
40, 45, 140, 139, 138, 45, 45, 46, 46, 46,
85, 85, 85, 85, 85, 85, 85, 85, 73, 185,
196, 73, 98, 55, 98, 98, 99, 179, 180, 194,
100, 196, 109, 98, 55, 98, 98, 99, 205, 186,
206, 100, 186, 179, 180, 194, 186, 209, 210, 186,
201, 201, 201, 109, 205, 206, 184, 183, 75, 76,
109, 77, 78, 209, 210, 79, 82, 182, 84, 181,
176, 175, 211, 82, 82, 211, 174, 211, 173, 82,
211, 82, 172, 171, 82, 170, 82, 82, 169, 212,
168, 167, 166, 165, 212, 164, 163, 162, 161, 160,
159, 158, 156, 154, 82, 82, 41, 41, 41, 41,
46, 46, 46, 46, 59, 137, 59, 79, 79, 79,
79, 79, 79, 79, 91, 91, 91, 91, 91, 91,
91, 194, 194, 194, 136, 194, 194, 194, 196, 135,
196, 132, 196, 196, 196, 207, 207, 207, 207, 207,
129, 207, 128, 124, 123, 120, 117, 116, 113, 80,
112, 111, 110, 105, 101, 86, 85, 47, 82, 77,
62, 58, 57, 56, 47, 209, 37, 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,
41, 41, 41, 47, 153, 152, 151, 47, 47, 48,
48, 48, 48, 48, 48, 48, 61, 150, 61, 83,
83, 83, 83, 83, 83, 83, 97, 97, 97, 97,
97, 97, 97, 200, 200, 149, 200, 200, 200, 200,
202, 148, 147, 202, 202, 202, 202, 213, 213, 213,
213, 213, 146, 213, 145, 144, 143, 142, 141, 138,
135, 134, 130, 129, 126, 123, 122, 89, 86, 119,
84, 80, 118, 117, 116, 111, 68, 107, 92, 91,
49, 87, 86, 81, 80, 64, 60, 59, 58, 49,
215, 11, 215, 215, 215, 215, 215, 215, 215, 215,
209, 209, 209, 209, 209, 209, 209, 209, 209, 209,
209, 209, 209, 209, 209, 209, 209
215, 215, 215, 215, 215, 215, 215, 215, 215, 215,
215, 215, 215, 215, 215, 215, 215, 215, 215, 215,
215, 215, 215, 215, 215, 215, 215, 215, 215, 215,
215, 215, 215, 215, 215, 215, 215, 215, 215, 215,
215
} ;
static const flex_int16_t yy_chk[518] =
static const flex_int16_t yy_chk[542] =
{ 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, 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, 207, 29, 10, 17, 32, 10, 17, 198,
6, 6, 18, 18, 31, 18, 18, 29, 32, 100,
18, 33, 33, 193, 33, 31, 6, 6, 35, 17,
4, 32, 2, 4, 62, 2, 4, 5, 5, 6,
6, 6, 6, 32, 213, 6, 7, 7, 8, 8,
62, 6, 204, 7, 7, 8, 8, 9, 9, 53,
53, 9, 6, 6, 9, 10, 10, 17, 28, 10,
17, 29, 10, 18, 18, 18, 18, 18, 6, 6,
100, 35, 42, 42, 35, 42, 48, 51, 51, 48,
52, 17, 187, 52, 186, 60, 17, 61, 17, 34,
53, 53, 58, 53, 53, 58, 34, 34, 53, 61,
48, 60, 34, 61, 34, 62, 89, 34, 64, 34,
34, 89, 48, 65, 65, 74, 65, 48, 74, 48,
179, 62, 54, 54, 64, 54, 54, 34, 34, 36,
54, 68, 36, 71, 68, 58, 71, 68, 73, 73,
99, 83, 83, 36, 83, 84, 87, 71, 84, 87,
178, 91, 91, 84, 91, 91, 99, 92, 92, 91,
92, 92, 175, 93, 93, 92, 93, 93, 98, 36,
199, 18, 28, 31, 193, 29, 33, 33, 33, 33,
35, 17, 50, 35, 31, 50, 35, 44, 44, 44,
44, 54, 60, 17, 54, 60, 64, 66, 17, 63,
17, 34, 67, 67, 67, 67, 50, 77, 34, 34,
77, 63, 64, 66, 34, 63, 34, 74, 50, 34,
74, 34, 34, 50, 192, 50, 55, 55, 55, 55,
55, 74, 76, 76, 55, 60, 185, 95, 114, 34,
34, 36, 95, 114, 36, 56, 56, 56, 56, 56,
184, 71, 104, 56, 71, 36, 181, 71, 88, 88,
88, 88, 89, 93, 178, 89, 93, 104, 176, 175,
36, 93, 36, 36, 172, 103, 36, 38, 103, 38,
170, 108, 169, 98, 38, 38, 108, 168, 104, 103,
38, 104, 38, 106, 125, 38, 106, 38, 38, 94,
94, 114, 94, 94, 114, 125, 164, 94, 163, 114,
182, 182, 162, 161, 159, 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, 69, 127, 95, 69,
89, 97, 97, 97, 97, 97, 105, 101, 133, 97,
101, 36, 36, 106, 36, 36, 174, 109, 36, 39,
109, 39, 105, 133, 106, 110, 39, 39, 110, 170,
112, 109, 39, 112, 39, 131, 155, 39, 156, 39,
39, 98, 98, 98, 98, 98, 131, 169, 120, 98,
101, 120, 155, 168, 156, 167, 120, 39, 39, 40,
40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
149, 95, 150, 151, 152, 171, 174, 189, 160, 199,
69, 160, 127, 190, 200, 158, 149, 174, 150, 151,
152, 171, 160, 189, 180, 199, 157, 180, 190, 156,
200, 201, 205, 153, 201, 205, 69, 69, 180, 69,
69, 95, 148, 69, 78, 147, 78, 146, 201, 205,
145, 78, 78, 144, 141, 140, 139, 78, 138, 78,
137, 136, 78, 135, 78, 78, 134, 133, 132, 131,
130, 129, 128, 126, 124, 123, 122, 121, 120, 119,
118, 117, 78, 78, 210, 210, 210, 210, 210, 210,
210, 211, 116, 113, 112, 211, 211, 212, 212, 212,
40, 40, 40, 40, 40, 40, 40, 40, 72, 165,
180, 72, 99, 99, 99, 99, 99, 157, 158, 177,
99, 180, 72, 100, 100, 100, 100, 100, 195, 166,
196, 100, 166, 157, 158, 177, 186, 205, 206, 186,
188, 188, 188, 166, 195, 196, 164, 163, 72, 72,
186, 72, 72, 205, 206, 72, 82, 162, 82, 159,
154, 153, 207, 82, 82, 207, 152, 211, 151, 82,
211, 82, 150, 147, 82, 146, 82, 82, 145, 207,
144, 143, 142, 141, 211, 140, 139, 138, 137, 136,
135, 134, 132, 130, 82, 82, 216, 216, 216, 216,
212, 212, 212, 212, 213, 111, 213, 214, 214, 214,
214, 214, 214, 214, 215, 215, 215, 215, 215, 215,
215, 216, 216, 216, 110, 216, 216, 216, 217, 109,
217, 107, 217, 217, 217, 218, 218, 218, 218, 218,
105, 218, 101, 96, 90, 88, 86, 85, 82, 79,
77, 76, 75, 72, 63, 50, 49, 46, 41, 37,
30, 26, 25, 23, 15, 11, 5, 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,
216, 216, 216, 217, 129, 128, 127, 217, 217, 218,
218, 218, 218, 218, 218, 218, 219, 126, 219, 220,
220, 220, 220, 220, 220, 220, 221, 221, 221, 221,
221, 221, 221, 222, 222, 125, 222, 222, 222, 222,
223, 124, 123, 223, 223, 223, 223, 224, 224, 224,
224, 224, 122, 224, 119, 118, 117, 116, 115, 113,
111, 107, 102, 96, 94, 92, 91, 90, 87, 86,
83, 81, 80, 79, 78, 75, 69, 65, 52, 51,
48, 43, 42, 38, 37, 30, 26, 25, 23, 15,
11, 215, 215, 215, 215, 215, 215, 215, 215, 215,
209, 209, 209, 209, 209, 209, 209, 209, 209, 209,
209, 209, 209, 209, 209, 209, 209
215, 215, 215, 215, 215, 215, 215, 215, 215, 215,
215, 215, 215, 215, 215, 215, 215, 215, 215, 215,
215, 215, 215, 215, 215, 215, 215, 215, 215, 215,
215, 215, 215, 215, 215, 215, 215, 215, 215, 215,
215
} ;
/* The intent behind this definition is that it'll catch
@@ -1139,13 +1148,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 >= 210 )
if ( yy_current_state >= 216 )
yy_c = yy_meta[yy_c];
}
yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
++yy_cp;
}
while ( yy_base[yy_current_state] != 468 );
while ( yy_base[yy_current_state] != 492 );
yy_find_action:
yy_act = yy_accept[yy_current_state];
@@ -1733,7 +1742,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 >= 210 )
if ( yy_current_state >= 216 )
yy_c = yy_meta[yy_c];
}
yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
@@ -1762,11 +1771,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 >= 210 )
if ( yy_current_state >= 216 )
yy_c = yy_meta[yy_c];
}
yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
yy_is_jam = (yy_current_state == 209);
yy_is_jam = (yy_current_state == 215);
(void)yyg;
return yy_is_jam ? 0 : yy_current_state;

View File

@@ -75,10 +75,10 @@ Modify cmFortranLexer.cxx:
return STRING;
}
<str_dq,str_sq>&[ \t]*\n |
<str_dq,str_sq>&[ \t]*\n[ \t]*& /* Ignore (continued strings, free fmt) */
<str_dq,str_sq>&[ \t]*\r?\n |
<str_dq,str_sq>&[ \t]*\r?\n[ \t]*& /* Ignore (continued strings, free fmt) */
<fixed_fmt,str_dq,str_sq>\n[ ]{5}[^ \t\n] {
<fixed_fmt,str_dq,str_sq>\r?\n[ ]{5}[^ \t\r\n] {
if (cmFortranParser_GetOldStartcond(yyextra) == fixed_fmt)
; /* Ignore (cont. strings, fixed fmt) */
else
@@ -132,15 +132,15 @@ $[ \t]*else { return F90PPR_ELSE; }
$[ \t]*endif { return F90PPR_ENDIF; }
/* Line continuations, possible involving comments. */
&([ \t\n]*|!.*)*
&([ \t\n]*|!.*)*&
&([ \t\r\n]*|!.*)*
&([ \t\r\n]*|!.*)*&
, { return COMMA; }
:: { return DCOLON; }
: { return COLON; }
<fixed_fmt>\n[ ]{5}[^ ] { return GARBAGE; }
<fixed_fmt>\r?\n[ ]{5}[^ ] { return GARBAGE; }
=|=> { return ASSIGNMENT_OP; }
@@ -159,13 +159,13 @@ $[ \t]*endif { return F90PPR_ENDIF; }
\( { return LPAREN; }
\) { return RPAREN; }
[^ \t\n\r:;,!'"a-zA-Z=&()]+ { return GARBAGE; }
[^ \t\r\n:;,!'"a-zA-Z=&()]+ { return GARBAGE; }
;|\n { return EOSTMT; }
[ \t\r,] /* Ignore */
\\[ \t]*\n /* Ignore line-endings preceded by \ */
\\[ \t]*\r?\n /* Ignore line-endings preceded by \ */
. { return *yytext; }

View File

@@ -548,7 +548,7 @@ union yyalloc
/* YYFINAL -- State number of the termination state. */
#define YYFINAL 2
/* YYLAST -- Last index in YYTABLE. */
#define YYLAST 594
#define YYLAST 432
/* YYNTOKENS -- Number of terminals. */
#define YYNTOKENS 41
@@ -557,7 +557,7 @@ union yyalloc
/* YYNRULES -- Number of rules. */
#define YYNRULES 64
/* YYNSTATES -- Number of states. */
#define YYNSTATES 127
#define YYNSTATES 121
/* YYMAXUTOK -- Last valid token kind. */
#define YYMAXUTOK 295
@@ -608,15 +608,15 @@ static const yytype_int8 yytranslate[] =
#if YYDEBUG
/* YYRLINE[YYN] -- Source line where rule number YYN was defined. */
static const yytype_int16 yyrline[] =
static const yytype_uint8 yyrline[] =
{
0, 106, 106, 106, 109, 113, 118, 127, 133, 140,
145, 149, 154, 166, 171, 176, 181, 186, 191, 196,
201, 206, 210, 214, 218, 222, 223, 228, 228, 228,
229, 229, 230, 230, 231, 231, 232, 232, 233, 233,
234, 234, 235, 235, 236, 236, 237, 237, 240, 241,
242, 243, 244, 245, 246, 247, 248, 249, 250, 251,
252, 253, 254, 255, 256
0, 106, 106, 106, 109, 113, 118, 123, 129, 136,
141, 145, 150, 162, 167, 172, 177, 182, 187, 192,
197, 202, 206, 210, 214, 218, 219, 224, 224, 224,
225, 225, 226, 226, 227, 227, 228, 228, 229, 229,
230, 230, 231, 231, 232, 232, 233, 233, 236, 237,
238, 239, 240, 241, 242, 243, 244, 245, 246, 247,
248, 249, 250, 251, 252
};
#endif
@@ -666,19 +666,19 @@ yysymbol_name (yysymbol_kind_t yysymbol)
STATE-NUM. */
static const yytype_int16 yypact[] =
{
-39, 21, -39, 1, -39, -20, -39, -39, -39, -39,
-39, 21, -39, 5, -39, -23, -39, -39, -39, -39,
-39, -39, -39, -39, -39, -39, -39, -39, -39, -39,
-39, -39, -39, -39, -39, -39, -24, -18, 20, -8,
-3, 40, -39, 15, 16, 17, 19, 34, -39, -39,
-39, -39, -39, -39, 59, -39, -39, -39, -39, -39,
36, 37, 38, -39, -39, -39, -39, -39, -39, 77,
115, 130, 168, 183, -39, -39, -39, -39, -39, -39,
-39, -39, -39, -39, -39, -39, -25, -19, 20, -8,
-15, -22, -39, -6, 14, 15, 16, 17, -39, -39,
-39, -39, -39, -39, 59, 49, 51, -39, 63, 64,
35, 36, 37, -39, -39, -39, -39, -39, -39, 74,
112, 127, 165, 180, -39, -39, -39, -39, -39, -39,
-39, -39, -39, -39, -39, -39, -39, -39, -39, -39,
-39, -39, -39, 221, 236, 274, 289, -21, 26, -39,
327, 342, 380, 395, 433, 448, -39, -39, -39, -39,
-39, -39, -39, -39, -39, 39, 41, 42, 486, -39,
-39, -39, -39, -39, -39, 18, -39, -39, -39, 43,
501, 539, -39, -39, -39, 554, -39
-39, -39, -39, -39, -39, -39, -39, -20, 43, -39,
218, 233, 271, 286, 324, 339, -39, -39, -39, -39,
-39, 39, 40, 41, 377, -39, -39, -39, -39, -39,
-39, 46, 78, -39, -39, 50, -39, 392, 79, -39,
-39
};
/* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM.
@@ -690,15 +690,15 @@ static const yytype_int8 yydefact[] =
30, 33, 32, 34, 36, 38, 42, 40, 44, 35,
37, 39, 43, 41, 45, 46, 0, 0, 0, 0,
0, 0, 3, 0, 0, 0, 0, 0, 46, 46,
46, 46, 26, 46, 0, 46, 46, 4, 46, 46,
46, 46, 26, 46, 0, 0, 0, 4, 0, 0,
0, 0, 0, 46, 46, 46, 46, 46, 46, 0,
0, 0, 0, 0, 15, 57, 56, 64, 62, 58,
59, 60, 61, 63, 55, 48, 49, 50, 51, 52,
53, 54, 47, 0, 0, 0, 0, 0, 0, 46,
53, 54, 47, 10, 13, 9, 6, 0, 0, 46,
0, 0, 0, 0, 0, 0, 21, 22, 23, 24,
14, 10, 13, 9, 6, 0, 0, 0, 0, 5,
16, 17, 18, 19, 20, 0, 46, 46, 11, 0,
0, 0, 46, 7, 12, 0, 8
14, 0, 0, 0, 0, 5, 16, 17, 18, 19,
20, 0, 0, 46, 11, 0, 7, 0, 0, 12,
8
};
/* YYPGOTO[NTERM-NUM]. */
@@ -720,81 +720,70 @@ static const yytype_int8 yydefgoto[] =
number is the opposite. If YYTABLE_NINF, syntax error. */
static const yytype_int8 yytable[] =
{
59, 60, 61, 62, 42, 63, 105, 83, 84, 106,
85, 86, 43, 45, 46, 90, 91, 92, 93, 94,
95, 2, 3, 47, 4, 49, 50, 5, 6, 7,
59, 60, 61, 62, 51, 63, 52, 101, 42, 43,
102, 53, 45, 46, 50, 90, 91, 92, 93, 94,
95, 2, 3, 47, 4, 49, 54, 5, 6, 7,
8, 9, 10, 11, 12, 13, 14, 15, 16, 17,
18, 19, 20, 21, 22, 23, 24, 54, 119, 55,
56, 108, 57, 48, 107, 25, 26, 27, 28, 29,
30, 31, 64, 65, 66, 67, 51, 58, 52, 87,
88, 89, 115, 53, 116, 117, 122, 0, 120, 121,
96, 65, 66, 67, 125, 68, 69, 70, 71, 72,
18, 19, 20, 21, 22, 23, 24, 55, 56, 57,
58, 104, 83, 48, 84, 25, 26, 27, 28, 29,
30, 31, 64, 65, 66, 67, 85, 86, 87, 88,
89, 103, 111, 112, 113, 117, 115, 96, 65, 66,
67, 116, 120, 118, 0, 68, 69, 70, 71, 72,
73, 74, 75, 0, 76, 77, 78, 79, 80, 81,
0, 0, 0, 68, 69, 70, 71, 72, 73, 74,
75, 0, 76, 77, 78, 79, 80, 81, 97, 65,
68, 69, 70, 71, 72, 73, 74, 75, 0, 76,
77, 78, 79, 80, 81, 97, 65, 66, 67, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
98, 65, 66, 67, 0, 0, 0, 0, 68, 69,
70, 71, 72, 73, 74, 75, 0, 76, 77, 78,
79, 80, 81, 68, 69, 70, 71, 72, 73, 74,
75, 0, 76, 77, 78, 79, 80, 81, 99, 65,
66, 67, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 98, 65, 66, 67, 0, 0, 0,
0, 0, 0, 100, 65, 66, 67, 0, 0, 0,
0, 68, 69, 70, 71, 72, 73, 74, 75, 0,
76, 77, 78, 79, 80, 81, 68, 69, 70, 71,
72, 73, 74, 75, 0, 76, 77, 78, 79, 80,
81, 99, 65, 66, 67, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 100, 65, 66, 67,
81, 105, 65, 66, 67, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 106, 65, 66, 67,
0, 0, 0, 0, 68, 69, 70, 71, 72, 73,
74, 75, 0, 76, 77, 78, 79, 80, 81, 68,
69, 70, 71, 72, 73, 74, 75, 0, 76, 77,
78, 79, 80, 81, 101, 65, 66, 67, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 102,
78, 79, 80, 81, 107, 65, 66, 67, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 108,
65, 66, 67, 0, 0, 0, 0, 68, 69, 70,
71, 72, 73, 74, 75, 0, 76, 77, 78, 79,
80, 81, 68, 69, 70, 71, 72, 73, 74, 75,
0, 76, 77, 78, 79, 80, 81, 103, 65, 66,
0, 76, 77, 78, 79, 80, 81, 109, 65, 66,
67, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 104, 65, 66, 67, 0, 0, 0, 0,
0, 0, 110, 65, 66, 67, 0, 0, 0, 0,
68, 69, 70, 71, 72, 73, 74, 75, 0, 76,
77, 78, 79, 80, 81, 68, 69, 70, 71, 72,
73, 74, 75, 0, 76, 77, 78, 79, 80, 81,
109, 65, 66, 67, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 110, 65, 66, 67, 0,
114, 65, 66, 67, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 119, 65, 66, 67, 0,
0, 0, 0, 68, 69, 70, 71, 72, 73, 74,
75, 0, 76, 77, 78, 79, 80, 81, 68, 69,
70, 71, 72, 73, 74, 75, 0, 76, 77, 78,
79, 80, 81, 111, 65, 66, 67, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 112, 65,
66, 67, 0, 0, 0, 0, 68, 69, 70, 71,
72, 73, 74, 75, 0, 76, 77, 78, 79, 80,
81, 68, 69, 70, 71, 72, 73, 74, 75, 0,
76, 77, 78, 79, 80, 81, 113, 65, 66, 67,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 114, 65, 66, 67, 0, 0, 0, 0, 68,
69, 70, 71, 72, 73, 74, 75, 0, 76, 77,
78, 79, 80, 81, 68, 69, 70, 71, 72, 73,
74, 75, 0, 76, 77, 78, 79, 80, 81, 118,
65, 66, 67, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 123, 65, 66, 67, 0, 0,
0, 0, 68, 69, 70, 71, 72, 73, 74, 75,
0, 76, 77, 78, 79, 80, 81, 68, 69, 70,
71, 72, 73, 74, 75, 0, 76, 77, 78, 79,
80, 81, 124, 65, 66, 67, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 126, 65, 66,
67, 0, 0, 0, 0, 68, 69, 70, 71, 72,
73, 74, 75, 0, 76, 77, 78, 79, 80, 81,
68, 69, 70, 71, 72, 73, 74, 75, 0, 76,
77, 78, 79, 80, 81
79, 80, 81
};
static const yytype_int8 yycheck[] =
{
38, 39, 40, 41, 3, 43, 27, 45, 46, 30,
48, 49, 32, 37, 32, 53, 54, 55, 56, 57,
58, 0, 1, 3, 3, 33, 29, 6, 7, 8,
38, 39, 40, 41, 26, 43, 28, 27, 3, 32,
30, 33, 37, 32, 29, 53, 54, 55, 56, 57,
58, 0, 1, 3, 3, 33, 32, 6, 7, 8,
9, 10, 11, 12, 13, 14, 15, 16, 17, 18,
19, 20, 21, 22, 23, 24, 25, 32, 30, 33,
33, 89, 33, 33, 28, 34, 35, 36, 37, 38,
39, 40, 3, 4, 5, 6, 26, 33, 28, 33,
33, 33, 33, 33, 33, 33, 33, -1, 116, 117,
3, 4, 5, 6, 122, 26, 27, 28, 29, 30,
19, 20, 21, 22, 23, 24, 25, 33, 33, 33,
33, 89, 3, 33, 3, 34, 35, 36, 37, 38,
39, 40, 3, 4, 5, 6, 3, 3, 33, 33,
33, 28, 33, 33, 33, 113, 30, 3, 4, 5,
6, 3, 3, 33, -1, 26, 27, 28, 29, 30,
31, 32, 33, -1, 35, 36, 37, 38, 39, 40,
-1, -1, -1, 26, 27, 28, 29, 30, 31, 32,
26, 27, 28, 29, 30, 31, 32, 33, -1, 35,
36, 37, 38, 39, 40, 3, 4, 5, 6, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3, 4, 5, 6, -1, -1, -1, -1, 26, 27,
28, 29, 30, 31, 32, 33, -1, 35, 36, 37,
38, 39, 40, 26, 27, 28, 29, 30, 31, 32,
33, -1, 35, 36, 37, 38, 39, 40, 3, 4,
5, 6, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, 3, 4, 5, 6, -1, -1, -1,
@@ -822,28 +811,7 @@ static const yytype_int8 yycheck[] =
-1, -1, -1, 26, 27, 28, 29, 30, 31, 32,
33, -1, 35, 36, 37, 38, 39, 40, 26, 27,
28, 29, 30, 31, 32, 33, -1, 35, 36, 37,
38, 39, 40, 3, 4, 5, 6, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, 3, 4,
5, 6, -1, -1, -1, -1, 26, 27, 28, 29,
30, 31, 32, 33, -1, 35, 36, 37, 38, 39,
40, 26, 27, 28, 29, 30, 31, 32, 33, -1,
35, 36, 37, 38, 39, 40, 3, 4, 5, 6,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, 3, 4, 5, 6, -1, -1, -1, -1, 26,
27, 28, 29, 30, 31, 32, 33, -1, 35, 36,
37, 38, 39, 40, 26, 27, 28, 29, 30, 31,
32, 33, -1, 35, 36, 37, 38, 39, 40, 3,
4, 5, 6, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, 3, 4, 5, 6, -1, -1,
-1, -1, 26, 27, 28, 29, 30, 31, 32, 33,
-1, 35, 36, 37, 38, 39, 40, 26, 27, 28,
29, 30, 31, 32, 33, -1, 35, 36, 37, 38,
39, 40, 3, 4, 5, 6, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, 3, 4, 5,
6, -1, -1, -1, -1, 26, 27, 28, 29, 30,
31, 32, 33, -1, 35, 36, 37, 38, 39, 40,
26, 27, 28, 29, 30, 31, 32, 33, -1, 35,
36, 37, 38, 39, 40
38, 39, 40
};
/* YYSTOS[STATE-NUM] -- The symbol kind of the accessing symbol of
@@ -858,11 +826,11 @@ static const yytype_int8 yystos[] =
29, 26, 28, 33, 32, 33, 33, 33, 33, 53,
53, 53, 53, 53, 3, 4, 5, 6, 26, 27,
28, 29, 30, 31, 32, 33, 35, 36, 37, 38,
39, 40, 54, 53, 53, 53, 53, 33, 33, 33,
39, 40, 54, 3, 3, 3, 3, 33, 33, 33,
53, 53, 53, 53, 53, 53, 3, 3, 3, 3,
3, 3, 3, 3, 3, 27, 30, 28, 53, 3,
3, 3, 3, 3, 3, 33, 33, 33, 3, 30,
53, 53, 33, 3, 3, 53, 3
3, 27, 30, 28, 53, 3, 3, 3, 3, 3,
3, 33, 33, 33, 3, 30, 3, 53, 33, 3,
3
};
/* YYR1[RULE-NUM] -- Symbol kind of the left-hand side of rule RULE-NUM. */
@@ -880,8 +848,8 @@ static const yytype_int8 yyr1[] =
/* YYR2[RULE-NUM] -- Number of symbols on the right-hand side of rule RULE-NUM. */
static const yytype_int8 yyr2[] =
{
0, 2, 0, 2, 2, 4, 4, 7, 9, 4,
4, 5, 7, 4, 4, 3, 4, 4, 4, 4,
0, 2, 0, 2, 2, 4, 3, 6, 8, 3,
3, 5, 7, 3, 4, 3, 4, 4, 4, 4,
4, 3, 3, 3, 3, 1, 2, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 0, 2, 1, 1,
@@ -1361,19 +1329,19 @@ yydestruct (const char *yymsg,
case YYSYMBOL_STRING: /* STRING */
#line 100 "cmFortranParser.y"
{ free(((*yyvaluep).string)); }
#line 1365 "cmFortranParser.cxx"
#line 1333 "cmFortranParser.cxx"
break;
case YYSYMBOL_WORD: /* WORD */
#line 100 "cmFortranParser.y"
{ free(((*yyvaluep).string)); }
#line 1371 "cmFortranParser.cxx"
#line 1339 "cmFortranParser.cxx"
break;
case YYSYMBOL_CPP_INCLUDE_ANGLE: /* CPP_INCLUDE_ANGLE */
#line 100 "cmFortranParser.y"
{ free(((*yyvaluep).string)); }
#line 1377 "cmFortranParser.cxx"
#line 1345 "cmFortranParser.cxx"
break;
default:
@@ -1655,7 +1623,7 @@ yyreduce:
cmFortranParser* parser = cmFortran_yyget_extra(yyscanner);
cmFortranParser_SetInInterface(parser, true);
}
#line 1659 "cmFortranParser.cxx"
#line 1627 "cmFortranParser.cxx"
break;
case 5: /* stmt: USE WORD other EOSTMT */
@@ -1665,77 +1633,73 @@ yyreduce:
cmFortranParser_RuleUse(parser, (yyvsp[-2].string));
free((yyvsp[-2].string));
}
#line 1669 "cmFortranParser.cxx"
#line 1637 "cmFortranParser.cxx"
break;
case 6: /* stmt: MODULE WORD other EOSTMT */
case 6: /* stmt: MODULE WORD EOSTMT */
#line 118 "cmFortranParser.y"
{
{
cmFortranParser* parser = cmFortran_yyget_extra(yyscanner);
if (cmsysString_strcasecmp((yyvsp[-2].string), "function") != 0 &&
cmsysString_strcasecmp((yyvsp[-2].string), "procedure") != 0 &&
cmsysString_strcasecmp((yyvsp[-2].string), "subroutine") != 0) {
cmFortranParser_RuleModule(parser, (yyvsp[-2].string));
}
free((yyvsp[-2].string));
cmFortranParser_RuleModule(parser, (yyvsp[-1].string));
free((yyvsp[-1].string));
}
#line 1683 "cmFortranParser.cxx"
#line 1647 "cmFortranParser.cxx"
break;
case 7: /* stmt: SUBMODULE LPAREN WORD RPAREN WORD other EOSTMT */
#line 127 "cmFortranParser.y"
{
case 7: /* stmt: SUBMODULE LPAREN WORD RPAREN WORD EOSTMT */
#line 123 "cmFortranParser.y"
{
cmFortranParser* parser = cmFortran_yyget_extra(yyscanner);
cmFortranParser_RuleSubmodule(parser, (yyvsp[-4].string), (yyvsp[-2].string));
free((yyvsp[-4].string));
free((yyvsp[-2].string));
cmFortranParser_RuleSubmodule(parser, (yyvsp[-3].string), (yyvsp[-1].string));
free((yyvsp[-3].string));
free((yyvsp[-1].string));
}
#line 1694 "cmFortranParser.cxx"
#line 1658 "cmFortranParser.cxx"
break;
case 8: /* stmt: SUBMODULE LPAREN WORD COLON WORD RPAREN WORD other EOSTMT */
#line 133 "cmFortranParser.y"
{
case 8: /* stmt: SUBMODULE LPAREN WORD COLON WORD RPAREN WORD EOSTMT */
#line 129 "cmFortranParser.y"
{
cmFortranParser* parser = cmFortran_yyget_extra(yyscanner);
cmFortranParser_RuleSubmoduleNested(parser, (yyvsp[-6].string), (yyvsp[-4].string), (yyvsp[-2].string));
free((yyvsp[-6].string));
free((yyvsp[-4].string));
free((yyvsp[-2].string));
cmFortranParser_RuleSubmoduleNested(parser, (yyvsp[-5].string), (yyvsp[-3].string), (yyvsp[-1].string));
free((yyvsp[-5].string));
free((yyvsp[-3].string));
free((yyvsp[-1].string));
}
#line 1706 "cmFortranParser.cxx"
#line 1670 "cmFortranParser.cxx"
break;
case 9: /* stmt: INTERFACE WORD other EOSTMT */
#line 140 "cmFortranParser.y"
{
case 9: /* stmt: INTERFACE WORD EOSTMT */
#line 136 "cmFortranParser.y"
{
cmFortranParser* parser = cmFortran_yyget_extra(yyscanner);
cmFortranParser_SetInInterface(parser, true);
free((yyvsp[-2].string));
free((yyvsp[-1].string));
}
#line 1716 "cmFortranParser.cxx"
#line 1680 "cmFortranParser.cxx"
break;
case 10: /* stmt: END INTERFACE other EOSTMT */
#line 145 "cmFortranParser.y"
{
case 10: /* stmt: END INTERFACE EOSTMT */
#line 141 "cmFortranParser.y"
{
cmFortranParser* parser = cmFortran_yyget_extra(yyscanner);
cmFortranParser_SetInInterface(parser, false);
}
#line 1725 "cmFortranParser.cxx"
#line 1689 "cmFortranParser.cxx"
break;
case 11: /* stmt: USE DCOLON WORD other EOSTMT */
#line 149 "cmFortranParser.y"
#line 145 "cmFortranParser.y"
{
cmFortranParser* parser = cmFortran_yyget_extra(yyscanner);
cmFortranParser_RuleUse(parser, (yyvsp[-2].string));
free((yyvsp[-2].string));
}
#line 1735 "cmFortranParser.cxx"
#line 1699 "cmFortranParser.cxx"
break;
case 12: /* stmt: USE COMMA WORD DCOLON WORD other EOSTMT */
#line 154 "cmFortranParser.y"
#line 150 "cmFortranParser.y"
{
if (cmsysString_strcasecmp((yyvsp[-4].string), "non_intrinsic") == 0) {
cmFortranParser* parser = cmFortran_yyget_extra(yyscanner);
@@ -1748,139 +1712,139 @@ yyreduce:
free((yyvsp[-4].string));
free((yyvsp[-2].string));
}
#line 1752 "cmFortranParser.cxx"
#line 1716 "cmFortranParser.cxx"
break;
case 13: /* stmt: INCLUDE STRING other EOSTMT */
#line 166 "cmFortranParser.y"
{
case 13: /* stmt: INCLUDE STRING EOSTMT */
#line 162 "cmFortranParser.y"
{
cmFortranParser* parser = cmFortran_yyget_extra(yyscanner);
cmFortranParser_RuleInclude(parser, (yyvsp[-2].string));
free((yyvsp[-2].string));
cmFortranParser_RuleInclude(parser, (yyvsp[-1].string));
free((yyvsp[-1].string));
}
#line 1762 "cmFortranParser.cxx"
#line 1726 "cmFortranParser.cxx"
break;
case 14: /* stmt: CPP_LINE_DIRECTIVE STRING other EOSTMT */
#line 171 "cmFortranParser.y"
#line 167 "cmFortranParser.y"
{
cmFortranParser* parser = cmFortran_yyget_extra(yyscanner);
cmFortranParser_RuleLineDirective(parser, (yyvsp[-2].string));
free((yyvsp[-2].string));
}
#line 1772 "cmFortranParser.cxx"
#line 1736 "cmFortranParser.cxx"
break;
case 15: /* stmt: CPP_INCLUDE_ANGLE other EOSTMT */
#line 176 "cmFortranParser.y"
#line 172 "cmFortranParser.y"
{
cmFortranParser* parser = cmFortran_yyget_extra(yyscanner);
cmFortranParser_RuleInclude(parser, (yyvsp[-2].string));
free((yyvsp[-2].string));
}
#line 1782 "cmFortranParser.cxx"
#line 1746 "cmFortranParser.cxx"
break;
case 16: /* stmt: include STRING other EOSTMT */
#line 181 "cmFortranParser.y"
#line 177 "cmFortranParser.y"
{
cmFortranParser* parser = cmFortran_yyget_extra(yyscanner);
cmFortranParser_RuleInclude(parser, (yyvsp[-2].string));
free((yyvsp[-2].string));
}
#line 1792 "cmFortranParser.cxx"
#line 1756 "cmFortranParser.cxx"
break;
case 17: /* stmt: define WORD other EOSTMT */
#line 186 "cmFortranParser.y"
#line 182 "cmFortranParser.y"
{
cmFortranParser* parser = cmFortran_yyget_extra(yyscanner);
cmFortranParser_RuleDefine(parser, (yyvsp[-2].string));
free((yyvsp[-2].string));
}
#line 1802 "cmFortranParser.cxx"
#line 1766 "cmFortranParser.cxx"
break;
case 18: /* stmt: undef WORD other EOSTMT */
#line 191 "cmFortranParser.y"
#line 187 "cmFortranParser.y"
{
cmFortranParser* parser = cmFortran_yyget_extra(yyscanner);
cmFortranParser_RuleUndef(parser, (yyvsp[-2].string));
free((yyvsp[-2].string));
}
#line 1812 "cmFortranParser.cxx"
#line 1776 "cmFortranParser.cxx"
break;
case 19: /* stmt: ifdef WORD other EOSTMT */
#line 196 "cmFortranParser.y"
#line 192 "cmFortranParser.y"
{
cmFortranParser* parser = cmFortran_yyget_extra(yyscanner);
cmFortranParser_RuleIfdef(parser, (yyvsp[-2].string));
free((yyvsp[-2].string));
}
#line 1822 "cmFortranParser.cxx"
#line 1786 "cmFortranParser.cxx"
break;
case 20: /* stmt: ifndef WORD other EOSTMT */
#line 201 "cmFortranParser.y"
#line 197 "cmFortranParser.y"
{
cmFortranParser* parser = cmFortran_yyget_extra(yyscanner);
cmFortranParser_RuleIfndef(parser, (yyvsp[-2].string));
free((yyvsp[-2].string));
}
#line 1832 "cmFortranParser.cxx"
#line 1796 "cmFortranParser.cxx"
break;
case 21: /* stmt: if other EOSTMT */
#line 206 "cmFortranParser.y"
#line 202 "cmFortranParser.y"
{
cmFortranParser* parser = cmFortran_yyget_extra(yyscanner);
cmFortranParser_RuleIf(parser);
}
#line 1841 "cmFortranParser.cxx"
#line 1805 "cmFortranParser.cxx"
break;
case 22: /* stmt: elif other EOSTMT */
#line 210 "cmFortranParser.y"
#line 206 "cmFortranParser.y"
{
cmFortranParser* parser = cmFortran_yyget_extra(yyscanner);
cmFortranParser_RuleElif(parser);
}
#line 1850 "cmFortranParser.cxx"
#line 1814 "cmFortranParser.cxx"
break;
case 23: /* stmt: else other EOSTMT */
#line 214 "cmFortranParser.y"
#line 210 "cmFortranParser.y"
{
cmFortranParser* parser = cmFortran_yyget_extra(yyscanner);
cmFortranParser_RuleElse(parser);
}
#line 1859 "cmFortranParser.cxx"
#line 1823 "cmFortranParser.cxx"
break;
case 24: /* stmt: endif other EOSTMT */
#line 218 "cmFortranParser.y"
#line 214 "cmFortranParser.y"
{
cmFortranParser* parser = cmFortran_yyget_extra(yyscanner);
cmFortranParser_RuleEndif(parser);
}
#line 1868 "cmFortranParser.cxx"
#line 1832 "cmFortranParser.cxx"
break;
case 48: /* misc_code: WORD */
#line 240 "cmFortranParser.y"
#line 236 "cmFortranParser.y"
{ free ((yyvsp[0].string)); }
#line 1874 "cmFortranParser.cxx"
#line 1838 "cmFortranParser.cxx"
break;
case 55: /* misc_code: STRING */
#line 247 "cmFortranParser.y"
#line 243 "cmFortranParser.y"
{ free ((yyvsp[0].string)); }
#line 1880 "cmFortranParser.cxx"
#line 1844 "cmFortranParser.cxx"
break;
#line 1884 "cmFortranParser.cxx"
#line 1848 "cmFortranParser.cxx"
default: break;
}
@@ -2104,6 +2068,6 @@ yyreturnlab:
return yyresult;
}
#line 259 "cmFortranParser.y"
#line 255 "cmFortranParser.y"
/* End of grammar */

View File

@@ -115,34 +115,30 @@ stmt:
cmFortranParser_RuleUse(parser, $2);
free($2);
}
| MODULE WORD other EOSTMT {
| MODULE WORD EOSTMT {
cmFortranParser* parser = cmFortran_yyget_extra(yyscanner);
if (cmsysString_strcasecmp($2, "function") != 0 &&
cmsysString_strcasecmp($2, "procedure") != 0 &&
cmsysString_strcasecmp($2, "subroutine") != 0) {
cmFortranParser_RuleModule(parser, $2);
}
cmFortranParser_RuleModule(parser, $2);
free($2);
}
| SUBMODULE LPAREN WORD RPAREN WORD other EOSTMT {
| SUBMODULE LPAREN WORD RPAREN WORD EOSTMT {
cmFortranParser* parser = cmFortran_yyget_extra(yyscanner);
cmFortranParser_RuleSubmodule(parser, $3, $5);
free($3);
free($5);
}
| SUBMODULE LPAREN WORD COLON WORD RPAREN WORD other EOSTMT {
| SUBMODULE LPAREN WORD COLON WORD RPAREN WORD EOSTMT {
cmFortranParser* parser = cmFortran_yyget_extra(yyscanner);
cmFortranParser_RuleSubmoduleNested(parser, $3, $5, $7);
free($3);
free($5);
free($7);
}
| INTERFACE WORD other EOSTMT {
| INTERFACE WORD EOSTMT {
cmFortranParser* parser = cmFortran_yyget_extra(yyscanner);
cmFortranParser_SetInInterface(parser, true);
free($2);
}
| END INTERFACE other EOSTMT {
| END INTERFACE EOSTMT {
cmFortranParser* parser = cmFortran_yyget_extra(yyscanner);
cmFortranParser_SetInInterface(parser, false);
}
@@ -163,7 +159,7 @@ stmt:
free($3);
free($5);
}
| INCLUDE STRING other EOSTMT {
| INCLUDE STRING EOSTMT {
cmFortranParser* parser = cmFortran_yyget_extra(yyscanner);
cmFortranParser_RuleInclude(parser, $2);
free($2);

View File

@@ -16,6 +16,7 @@
add_executable(submod
main.f90
parent.f90
obfuscated_parent.f90
child.f90
grandchild.f90
greatgrandchild.f90

View File

@@ -1,7 +1,10 @@
program main
use parent, only : child_function,grandchild_subroutine
use parent, only : sibling_function,GreatGrandChild_subroutine
! Using a module without postfix
use obfuscated_parent
implicit none
if (child_function()) call grandchild_subroutine
if (sibling_function()) call GreatGrandChild_subroutine
if (child_function()) call grandchild_subroutine
if (sibling_function()) call GreatGrandChild_subroutine
if (child_function_obf()) call grandchild_subroutine_obf
end program

View File

@@ -0,0 +1,33 @@
! This module has two procedures from the "parent" module
! but it has different combinations 'module <word>' phrases
! in breaked lines for test of modules dependencies detection
! Module declaration on breaked line with reminder
module &
obfuscated_parent; implicit none
interface
! Boolean module function
module logical &
function child_function_obf() result(child_stuff)
end function
! Module subroutine
module subroutine &
grandchild_subroutine_obf()
end subroutine
end interface
contains
module logical function child_function_obf() result(child_stuff)
child_stuff=.true.
end function
module subroutine grandchild_subroutine_obf()
print *,"Test passed."
end subroutine
end module obfuscated_parent

View File

@@ -1,4 +1,4 @@
PROGRAM MAINF90
USE TEST_MODULE
USE TEST_MODULE, only : TEST_MODULE_FUNCTION
PRINT *,'Sum is',TEST_MODULE_FUNCTION(1., 2.)
END PROGRAM MAINF90