- Timestamp:
- Dec 5, 2013, 3:21:17 PM (10 years ago)
- Location:
- CMT/HEAD
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
CMT/HEAD/ChangeLog
r656 r657 1 2013-12-05 <rybkin@lal.in2p3.fr> 516 2 3 * source/cmt_deps_builder.cxx: In helper function at_start_action, fix 4 parsing Fortran INCLUDE statement, optimise in_line_action helper function, 5 in helper function build_deps_text, fix parsing C++ style comments in case 6 without other characters 7 * source/cmt_parser.cxx: In class Cmt function do_broadcast, add package, 8 version, offset info to printout of "cmt broadcast" command, similar to 9 printout in CMTBCAST mode 10 1 11 2013-12-03 <rybkin@lal.in2p3.fr> 515 2 12 -
CMT/HEAD/source/cmt_deps_builder.cxx
r606 r657 226 226 } 227 227 } 228 else if (!strncmp (ptr, " include", 13)) 228 else if (!strncmp (ptr, "include", 7) || 229 !strncmp (ptr, "INCLUDE", 7)) 230 // else if (!strncmp (ptr, " include", 13)) 229 231 { 230 232 // fortran include statement 231 233 232 ptr += 13; 234 ptr += 7; 235 //ptr += 13; 233 236 234 237 while ((*ptr == ' ') || (*ptr == '\t')) ptr++; … … 239 242 ptr++; 240 243 } 244 else if (*ptr == '(') 245 { 246 term = ')'; 247 ptr++; 248 } 241 249 else 242 250 { … … 245 253 } 246 254 } 255 /* 247 256 else if (!strncmp (ptr, "\tinclude", 8)) 248 257 { … … 264 273 } 265 274 } 275 */ 266 276 else 267 277 { … … 308 318 static char* in_line_action (char* ptr, state_def& state) 309 319 { 310 char* pattern = ptr + strlen (ptr);311 int length = 0;320 // char* pattern = ptr + strlen (ptr);\ 321 // int length = 0; 312 322 313 323 /* … … 318 328 */ 319 329 330 char* beg = ptr; 331 while (char* p = strpbrk (beg, "\"\'/")) 332 if (*p == '"') 333 { 334 if (p == ptr || (p > ptr && *(p - 1) != '\\')) 335 { 336 state = in_string; 337 return p + 1; 338 } 339 else 340 { // '"' is escaped 341 beg += 1; 342 } 343 } 344 else if (*p == '\'') 345 { 346 if (p == ptr || (p > ptr && *(p - 1) != '\\')) 347 { 348 state = in_char; 349 return p + 1; 350 } 351 else 352 { // '\'' is escaped 353 beg += 1; 354 } 355 } 356 else 357 { // we have '/' 358 if (*(p + 1) == '*') 359 { 360 state = in_comment; 361 return p + 2; 362 } 363 else if (*(p + 1) == '/') 364 { 365 state = in_line_comment; 366 return p + 2; 367 } 368 else 369 { 370 beg += 1; 371 } 372 } 373 /* 320 374 char* pos = strchr (ptr, '"'); 321 375 if ((pos != 0) && (pos < pattern) && (pos > ptr) && (*(pos-1) != '\\')) … … 334 388 } 335 389 336 pos = strstr (ptr, "/*"); //*/390 pos = strstr (ptr, "/*"); 337 391 if ((pos != 0) && (pos < pattern)) 338 392 { … … 351 405 352 406 ptr = pattern + length; 353 354 407 return (ptr); 408 */ 409 return ptr + strlen (ptr); 355 410 } 356 411 … … 650 705 } // while (strlen (ptr) > 0) 651 706 652 if (state == in_line) state = at_start; 707 //if (state == in_line) state = at_start; 708 switch (state) 709 { 710 case in_line: 711 case in_line_comment: 712 state = at_start; 713 break; 714 } 653 715 line_number++; 654 716 -
CMT/HEAD/source/cmt_parser.cxx
r656 r657 2301 2301 { 2302 2302 cout << "#--------------------------------------------------------------" << endl; 2303 cout << "# Now trying [" << cmd << "] in " << s << " (" << i+1 << "/" << uses.size ()2303 cout << "# " << p << " " << v << " " << offset << ": Now trying [" << cmd << "] in " << s << " (" << i+1 << "/" << uses.size () 2304 2304 << ")" << endl; 2305 2305 cout << "#--------------------------------------------------------------" << endl;
Note: See TracChangeset
for help on using the changeset viewer.