From: <bl...@us...> - 2003-05-01 21:07:35
|
Update of /cvsroot/cpptool/rfta/src/rftaparser In directory sc8-pr-cvs1:/tmp/cvs-serv21227/src/rftaparser Modified Files: Parser.cpp Log Message: * added tryReadUntilNextOf(). readUntilNextOf() now throw if no token found. Previous behavior caused silent failures. Index: Parser.cpp =================================================================== RCS file: /cvsroot/cpptool/rfta/src/rftaparser/Parser.cpp,v retrieving revision 1.9 retrieving revision 1.10 diff -C2 -d -r1.9 -r1.10 *** Parser.cpp 28 Apr 2003 20:39:14 -0000 1.9 --- Parser.cpp 1 May 2003 21:07:29 -0000 1.10 *************** *** 162,167 **** } void ! Parser::readUntilNextOf( std::string charset ) { Tracker tracker( "Parser::readUntilNextOf", *this ); --- 162,168 ---- } + void ! Parser::readUntilNextOf( const std::string &charset ) { Tracker tracker( "Parser::readUntilNextOf", *this ); *************** *** 173,177 **** current_++; } ! return; } --- 174,197 ---- current_++; } ! ! throwFailure( "Expected one character of '" + charset + "', but found none" ); ! } ! ! ! bool ! Parser::tryReadUntilNextOf( const std::string &charset ) ! { ! const char *start = current_; ! Tracker tracker( "Parser::tryReadUntilNextOf", *this ); ! ! while ( hasNext() ) ! { ! if ( charset.find(*current_) != std::string::npos ) ! return true; ! current_++; ! } ! ! current_ = start; ! return false; } *************** *** 220,241 **** } bool ! Parser::tryReadNext( std::string s) { ! int idx = 0; ! if (s.empty()) return true; const char * rollback = current_; ! while ( hasNext() && idx<s.length() && *current_ == s[idx] ) { ! ++idx; ++current_; } ! if (idx!=s.length()) ! { ! current_=rollback; ! return false; ! } else ! return true; } bool --- 240,266 ---- } + bool ! Parser::tryReadNext( const std::string &s ) { ! if ( s.empty() ) ! return true; ! const char * rollback = current_; ! int index = 0; ! while ( hasNext() && index < s.length() && *current_ == s[index] ) { ! ++index; ! ++current_; } ! ! if ( index == s.length() ) ! return true; ! ! current_ = rollback; ! return false; } + bool |