13 #ifndef KERNEL_TOKENIZER_H
14 #define KERNEL_TOKENIZER_H
17 #include "GaudiKernel/Kernel.h"
37 Token(
const Token& copy) : m_length(copy.m_length), m_tag(copy.m_tag), m_value(copy.m_value) {
40 Token() : m_length(0) {
43 void make(
const std::string&
s,
long st,
const char* delim,
const char* tagBegin,
const char* tagEnd,
const char* eq,
const char* valBegin,
const char* valEnd);
48 Token& operator=(
const Token& copy);
51 return m_tag == copy.m_tag && m_value == copy.m_value && m_length == copy.m_length;
58 const std::string& tag()
const {
62 const std::string&
value()
const {
69 typedef std::vector<Token> Items;
79 Tokenizer(
bool resolve) : m_resolve(resolve) {}
82 m_tokens.erase(m_tokens.begin(), m_tokens.end());
85 void analyse(
const std::string&
s,
const char* delim,
const char* tagBegin,
const char* tagEnd,
const char* eq,
const char* valBegin,
const char* valEnd);
87 void analyse(
const std::string&
s,
const char* delim,
const char* tag,
const char* eq,
const char* val) {
88 analyse(s, delim, tag, tag, eq, val, val);
91 void analyse(
const std::string&
s,
const char* delim,
const char* eq,
const char* val) {
92 analyse(s, delim,
"",
"", eq, val, val);
95 void analyse(
const std::string&
s,
const char* delim=
" ",
const char* eq=
"=") {
96 analyse(s, delim,
"",
"", eq,
"",
"");
103 const Items& items()
const {
107 #endif // KERNEL_TOKENIZER_H