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
|