/* 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(m_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 one character out of a set
* @param[in] set set of characters allowed
* @param[out] chr character parsed
* @return if a character from the set was found and processed
*/
bool StringParser::oneChrOf(const std::string &set, char &chr)
{
if (m_it == m_str.end() || set.find(*m_it) == std::string::npos)
return false;
chr = *m_it;
++m_it;
return true;
}
/**
* @brief parse boolean value