Changeset 657 for CMT/HEAD


Ignore:
Timestamp:
Dec 5, 2013, 3:21:17 PM (10 years ago)
Author:
rybkin
Message:

See C.L. 516

Location:
CMT/HEAD
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • CMT/HEAD/ChangeLog

    r656 r657  
     12013-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       
    1112013-12-03    <rybkin@lal.in2p3.fr> 515
    212
  • CMT/HEAD/source/cmt_deps_builder.cxx

    r606 r657  
    226226        }
    227227    }
    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))
    229231    {
    230232      // fortran include statement
    231233
    232       ptr += 13;
     234      ptr += 7;
     235      //ptr += 13;
    233236
    234237      while ((*ptr == ' ') || (*ptr == '\t')) ptr++;
     
    239242          ptr++;
    240243        }
     244      else if (*ptr == '(')
     245        {
     246          term = ')';
     247          ptr++;
     248        }
    241249      else
    242250        {
     
    245253        }
    246254    }
     255  /*
    247256  else if (!strncmp (ptr, "\tinclude", 8))
    248257    {
     
    264273        }
    265274    }
     275  */
    266276  else
    267277    {
     
    308318static char* in_line_action (char* ptr, state_def& state)
    309319{
    310   char* pattern = ptr + strlen (ptr);
    311   int length = 0;
     320  //  char* pattern = ptr + strlen (ptr);\
     321  //  int length = 0;
    312322
    313323  /*
     
    318328  */
    319329
     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  /*
    320374  char* pos = strchr (ptr, '"');
    321375  if ((pos != 0) && (pos < pattern) && (pos > ptr) && (*(pos-1) != '\\'))
     
    334388    }
    335389
    336   pos = strstr (ptr, "/*");   //*/
     390  pos = strstr (ptr, "/*");
    337391  if ((pos != 0) && (pos < pattern))
    338392    {
     
    351405
    352406  ptr = pattern + length;
    353 
    354407  return (ptr);
     408*/
     409  return  ptr + strlen (ptr);
    355410}
    356411
     
    650705        } // while (strlen (ptr) > 0)
    651706     
    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        }
    653715      line_number++;
    654716
  • CMT/HEAD/source/cmt_parser.cxx

    r656 r657  
    23012301    {
    23022302      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 ()
    23042304           << ")" << endl;
    23052305      cout << "#--------------------------------------------------------------" << endl;
Note: See TracChangeset for help on using the changeset viewer.