HOPS
HOPS class reference
MHO_Tokenizer.hh
Go to the documentation of this file.
1 #ifndef MHO_Tokenizer_HH__
2 #define MHO_Tokenizer_HH__
3 
4 #include <string>
5 #include <vector>
6 
7 #include "MHO_Message.hh"
8 
9 namespace hops
10 {
11 
24 {
25  public:
26  MHO_Tokenizer();
28 
29  /*!* Include empty tokens set fIncludeEmptyTokens to true for situations where two delimiters surround a substring which would result in an empty string
30  * @param None
31  * @returns None
32  */
34 
35  /*!* Do not include empty tokens and set fincludeEmptyTokens to false
36  * @param None
37  * @returns None
38  */
40 
43 
44  void SetPreserveQuotesTrue();
46 
55 
56  /*!* Set the string to be parsed
57  * @param aString string
58  * @returns None
59  */
60  void SetString(const std::string* aString);
61 
62  /*!* Set the delimiter to be used to parse the string in SetString
63  * @param aDelim string a string to be used as a delimiter
64  * @returns None
65  */
66  void SetDelimiter(const std::string& aDelim);
67 
68  /*!* Parse the string using the tokens
69  * @param tokens pointer to a vector of strings
70  * @returns None
71  */
72  void GetTokens(std::vector< std::string >* tokens);
73 
74  static std::string TrimLeadingAndTrailingWhitespace(const std::string& value);
75 
76  protected:
77  void MultiCharTokenize(std::vector< std::string >* tokens);
78  void SingleCharTokenize(std::vector< std::string >* tokens);
79 
87  std::size_t IndexQuoteInstances(const std::string* aString,
88  std::vector< std::pair< std::size_t, std::size_t > >* quotes);
89 
94  std::string fDelim;
95  const std::string* fString;
96  const std::string* fCurrentString;
97  std::vector< std::pair< std::size_t, std::size_t > > fQuotePairIndexes;
98 };
99 
100 //fuction which splits a single string into a vector of tokens
101 //if the default (no delimiter) is used, then each character is split into a new token
102 //otherwise the string is split on the specified delimiter
110 std::vector< std::string > SplitString(const std::string& input, std::string delim = "");
111 
112 } // namespace hops
113 
114 #endif
Class MHO_Tokenizer.
Definition: MHO_Tokenizer.hh:24
void MultiCharTokenize(std::vector< std::string > *tokens)
Definition: MHO_Tokenizer.cc:151
void SetUseMulticharacterDelimiterFalse()
Definition: MHO_Tokenizer.cc:40
const std::string * fString
Definition: MHO_Tokenizer.hh:95
bool fPreserveQuotes
Definition: MHO_Tokenizer.hh:92
MHO_Tokenizer()
Definition: MHO_Tokenizer.cc:9
void SetIncludeEmptyTokensFalse()
Definition: MHO_Tokenizer.cc:30
void SetIncludeEmptyTokensTrue()
Definition: MHO_Tokenizer.cc:25
void SetPreserveQuotesFalse()
Definition: MHO_Tokenizer.cc:50
void SetString(const std::string *aString)
Definition: MHO_Tokenizer.cc:65
void GetTokens(std::vector< std::string > *tokens)
Definition: MHO_Tokenizer.cc:75
std::size_t IndexQuoteInstances(const std::string *aString, std::vector< std::pair< std::size_t, std::size_t > > *quotes)
Finds and indexes quote instances in a given string.
Definition: MHO_Tokenizer.cc:245
bool fIncludeEmptyTokens
Definition: MHO_Tokenizer.hh:90
static std::string TrimLeadingAndTrailingWhitespace(const std::string &value)
Definition: MHO_Tokenizer.cc:278
const std::string * fCurrentString
Definition: MHO_Tokenizer.hh:96
bool fRemoveLeadingTrailingWhitespace
Definition: MHO_Tokenizer.hh:93
void SetRemoveLeadingTrailingWhitespaceTrue()
Setter for remove leading trailing whitespace true.
Definition: MHO_Tokenizer.cc:55
void SetRemoveLeadingTrailingWhitespaceFalse()
Setter for remove leading trailing whitespace false.
Definition: MHO_Tokenizer.cc:60
void SetUseMulticharacterDelimiterTrue()
Definition: MHO_Tokenizer.cc:35
bool fMultiCharDelimiter
Definition: MHO_Tokenizer.hh:91
~MHO_Tokenizer()
Definition: MHO_Tokenizer.cc:20
void SetDelimiter(const std::string &aDelim)
Definition: MHO_Tokenizer.cc:70
void SingleCharTokenize(std::vector< std::string > *tokens)
Definition: MHO_Tokenizer.cc:197
void SetPreserveQuotesTrue()
Definition: MHO_Tokenizer.cc:45
std::vector< std::pair< std::size_t, std::size_t > > fQuotePairIndexes
Definition: MHO_Tokenizer.hh:97
std::string fDelim
Definition: MHO_Tokenizer.hh:94
Definition: MHO_ChannelLabeler.hh:17
std::vector< std::string > SplitString(const std::string &input, std::string delim="")
Function SplitString.
Definition: MHO_Tokenizer.cc:293
struct token_struct * tokens
Definition: parse_control_file.c:26
Definition: vex.h:175