Changeset 506 for trunk


Ignore:
Timestamp:
Dec 8, 2007, 3:51:03 AM (14 years ago)
Author:
Peter Johansson
Message:

fixing parsing see ticket:270

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/lib/Parser.cc

    r505 r506  
    119119        for (size_t i=mode; i<codon.size(); ++i) {
    120120          if (match_begin(iter, str.end(), codon[i].first)) {
     121            iter += codon[i].first.size();
    121122            mode = i+1;
    122123            break;
    123124          }
    124125        }
     126        if (iter==str.end())
     127          break;
    125128        assert(mode==0 || mode-1<codon.size());
    126129        if (mode && match_begin(iter,str.end(), codon[mode-1].second)){
     130          iter += codon[mode-1].second.size();
    127131          mode=0;
    128           continue;
     132          if (iter==str.end())
     133            break;
    129134        }
    130         // A line of code or comment must contain at least one
    131         // alphanumerical character.
    132         if (!mode && isgraph(*iter))
     135        else if (!mode && isgraph(*iter))
    133136          lt=code;
    134137        else if (mode && lt!=code && isalnum(*iter))
Note: See TracChangeset for help on using the changeset viewer.