Changeset 265 for trunk/lib/Parser.cc


Ignore:
Timestamp:
May 1, 2007, 2:27:59 PM (14 years ago)
Author:
Peter Johansson
Message:

fixes #170

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/lib/Parser.cc

    r262 r265  
    4040  {
    4141    std::ifstream is(path.c_str());
     42    assert(is.good());
    4243    std::vector<std::pair<std::string, std::string> > codon;
    4344    if (match_end(path.rbegin(), path.rend(), ".ac") ||
     
    116117          }
    117118        }
    118         if (!mode && match_begin(iter,str.end(), codon[mode-1].second)){
     119        assert(mode==0 || mode-1<codon.size());
     120        if (mode && match_begin(iter,str.end(), codon[mode-1].second)){
    119121          mode=0;
    120122          continue;
    121123        }
    122 
    123124        // A line of code or comment must contain at least one
    124125        // alphanumerical character.
    125126        if (isalnum(*iter)) {
    126           if (!mode)
     127          if (!mode) {
    127128            lt=code;
    128           else if (mode!=code)
     129          }
     130          else if (lt!=code) {
    129131            lt=comment;
     132          }
    130133        }
    131134      }
    132       if (!mode && codon[mode-1].second==std::string("\n"))
     135      if (mode && codon[mode-1].second==std::string("\n"))
    133136        mode=0;
    134 
    135137      type_.push_back(lt);
    136138    }
Note: See TracChangeset for help on using the changeset viewer.