b3b218fcbcf578e382d56a0ba679aa27a4003c29
Stefan Schuermans classes for format, size an...

Stefan Schuermans authored 12 years ago

1) /* Blinker
2)    Copyright 2011 Stefan Schuermans <stefan@blinkenarea.org>
3)    Copyleft GNU public license - http://www.gnu.org/copyleft/gpl.html
4)    a blinkenarea.org project */
5) 
Stefan Schuermans namespace for preprocessor...

Stefan Schuermans authored 12 years ago

6) #ifndef BLINKER_STRINGPARSER_H
7) #define BLINKER_STRINGPARSER_H
Stefan Schuermans classes for format, size an...

Stefan Schuermans authored 12 years ago

8) 
9) #include <string>
10) 
11) namespace Blinker {
12) 
13) /// a simple string parser
14) class StringParser
15) {
16) public:
17)   /**
18)    * @brief constructor
19)    * @param[in] str string to parse
20)    */
21)   StringParser(const std::string &str);
22) 
23) public:
24)   /**
25)    * @brief parse fixed character
26)    * @param[in] chr character to expect
27)    * @return if expected character was found and processed
28)    */
29)   bool fixChr(char chr);
30) 
Stefan Schuermans fixed end of string check i...

Stefan Schuermans authored 12 years ago

31)   /**
Stefan Schuermans extend string parser to all...

Stefan Schuermans authored 12 years ago

32)    * @brief parse one character out of a set
Stefan Schuermans fixed end of string check i...

Stefan Schuermans authored 12 years ago

33)    * @param[in] set set of characters allowed
34)    * @param[out] chr character parsed
35)    * @return if a character from the set was found and processed
36)    */
37)   bool oneChrOf(const std::string &set, char &chr);
38) 
Stefan Schuermans allow negative coordinates...

Stefan Schuermans authored 12 years ago

39)   /**
40)    * @brief parse unsigned number
41)    * @param[out] uint number parsed from string
42)    * @return if parsing was successful
43)    */
44)   bool uintNo(unsigned int &uint);
45) 
Stefan Schuermans classes for format, size an...

Stefan Schuermans authored 12 years ago

46)   /**
47)    * @brief parse unsigned number and check minimum
48)    * @param[in] min minimum value to expect
49)    * @param[out] uint number parsed from string
50)    * @return if parsing was successful
51)    */
52)   bool uintMin(unsigned int min, unsigned int &uint);
53) 
Stefan Schuermans allow negative coordinates...

Stefan Schuermans authored 12 years ago

54)   /**
55)    * @brief parse signed number
56)    * @param[out] sint number parsed from string
57)    * @return if parsing was successful
58)    */
59)   bool sintNo(int &sint);
60) 
Stefan Schuermans extend string parser to all...

Stefan Schuermans authored 12 years ago

61)   /**
62)    * @brief parse until a delimiter is found
63)    * @param[in] delim set of delimiter characters
64)    * @param[in] empty if empty substring is okay
65)    * @param[out] str substring parsed
66)    * @return if a substring was found and processed
67)    */
68)   bool untilDelim(const std::string &delim, bool empty, std::string &str);
69) 
Stefan Schuermans classes for format, size an...

Stefan Schuermans authored 12 years ago

70)   /**
71)    * @brief check if parsing is done
72)    * @return if parsing is done (i.e. has arrived at the end of the string)
73)    */
74)   bool isDone();
75) 
76) protected:
77)   std::string                 m_str; ///< string begin parsed
78)   std::string::const_iterator m_it;  ///< current position of parsing
79) }; // class StringParser
80) 
81) } // namespace Blinker
82) 
Stefan Schuermans namespace for preprocessor...

Stefan Schuermans authored 12 years ago

83) #endif // #ifndef BLINKER_STRINGPARSER_H