summaryrefslogtreecommitdiff
path: root/qpid/cpp/src/qpid/broker/SelectorToken.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'qpid/cpp/src/qpid/broker/SelectorToken.cpp')
-rw-r--r--qpid/cpp/src/qpid/broker/SelectorToken.cpp11
1 files changed, 9 insertions, 2 deletions
diff --git a/qpid/cpp/src/qpid/broker/SelectorToken.cpp b/qpid/cpp/src/qpid/broker/SelectorToken.cpp
index 1e84834e18..e745bc3889 100644
--- a/qpid/cpp/src/qpid/broker/SelectorToken.cpp
+++ b/qpid/cpp/src/qpid/broker/SelectorToken.cpp
@@ -132,8 +132,8 @@ bool processString(std::string::const_iterator& s, std::string::const_iterator&
++q;
}
+ tok = Token(T_STRING, s, content);
s = q;
- tok = Token(T_STRING, content);
return true;
}
@@ -171,7 +171,7 @@ bool tokenise(std::string::const_iterator& s, std::string::const_iterator& e, To
while (true)
switch (state) {
case START:
- if (t==e) {tok = Token(T_EOS, ""); return true;}
+ if (t==e) {tok = Token(T_EOS, s, "<END>"); return true;}
else switch (*t) {
case '(': tokType = T_LPAREN; state = ACCEPT_INC; continue;
case ')': tokType = T_RPAREN; state = ACCEPT_INC; continue;
@@ -259,6 +259,7 @@ bool tokenise(std::string::const_iterator& s, std::string::const_iterator& e, To
Tokeniser::Tokeniser(const std::string::const_iterator& s, const std::string::const_iterator& e) :
tokp(0),
+ inStart(s),
inp(s),
inEnd(e)
{
@@ -294,5 +295,11 @@ void Tokeniser::returnTokens(unsigned int n)
tokp-=n;
}
+std::string Tokeniser::remaining()
+{
+ Token& currentTok = tokens[tokp];
+ return std::string(currentTok.tokenStart, inEnd);
+}
+
}}