b534777b201899faaacc567380d92a79569fb647
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 implemented setting file fo...

Stefan Schuermans authored 12 years ago

39)   /**
40)    * @brief parse boolean value
41)    * @param[out] boolVal boolean value parsed from string
42)    * @return if parsing was successful
43)    */
44)   bool boolVal(bool &boolVal);
45) 
Stefan Schuermans allow negative coordinates...

Stefan Schuermans authored 12 years ago

46)   /**
47)    * @brief parse unsigned number
48)    * @param[out] uint number parsed from string
49)    * @return if parsing was successful
50)    */
51)   bool uintNo(unsigned int &uint);
52) 
Stefan Schuermans classes for format, size an...

Stefan Schuermans authored 12 years ago

53)   /**
54)    * @brief parse unsigned number and check minimum
55)    * @param[in] min minimum value to expect
56)    * @param[out] uint number parsed from string
57)    * @return if parsing was successful
58)    */
59)   bool uintMin(unsigned int min, unsigned int &uint);
60) 
Stefan Schuermans allow negative coordinates...

Stefan Schuermans authored 12 years ago

61)   /**
62)    * @brief parse signed number
63)    * @param[out] sint number parsed from string
64)    * @return if parsing was successful
65)    */
66)   bool sintNo(int &sint);
67) 
Stefan Schuermans extend string parser to all...

Stefan Schuermans authored 12 years ago

68)   /**
69)    * @brief parse until a delimiter is found
70)    * @param[in] delim set of delimiter characters
71)    * @param[in] empty if empty substring is okay
72)    * @param[out] str substring parsed
73)    * @return if a substring was found and processed
74)    */
75)   bool untilDelim(const std::string &delim, bool empty, std::string &str);
76) 
Stefan Schuermans classes for format, size an...

Stefan Schuermans authored 12 years ago

77)   /**
78)    * @brief check if parsing is done
79)    * @return if parsing is done (i.e. has arrived at the end of the string)
80)    */
81)   bool isDone();
82) 
83) protected:
84)   std::string                 m_str; ///< string begin parsed
85)   std::string::const_iterator m_it;  ///< current position of parsing
86) }; // class StringParser
87) 
88) } // namespace Blinker
89) 
Stefan Schuermans namespace for preprocessor...

Stefan Schuermans authored 12 years ago

90) #endif // #ifndef BLINKER_STRINGPARSER_H