/* Blinker
Copyright 2011 Stefan Schuermans <stefan@blinkenarea.org>
Copyleft GNU public license - http://www.gnu.org/copyleft/gpl.html
a blinkenarea.org project */
#include <string>
#include "StringParser.h"
namespace Blinker {
/**
* @brief constructor
* @param[in] str string to parse
*/
StringParser::StringParser(const std::string &str):
m_str(str),
m_it(str.begin())
{
}
/**
* @brief parse fixed character
* @param[in] chr character to expect
* @return if expected character was found and processed
*/
bool StringParser::fixChr(char chr)
{
if (m_it == m_str.end() || *m_it != chr)
return false;
++m_it;
return true;
}
/**
* @brief parse unsigned number and check minimum
* @param[in] min minimum value to expect
* @param[out] uint number parsed from string
* @return if parsing was successful
*/
bool StringParser::uintMin(unsigned int min, unsigned int &uint)
{
uint = 0;
while (m_it != m_str.end() && *m_it >= '0' && *m_it <= '9') {
uint *= 10;
uint += *m_it - '0';
++m_it;
}
return uint >= min;
}