From 555ea990a42f4d391e1f27d6e90789abe0bd76bc Mon Sep 17 00:00:00 2001 From: Andrew Stitcher Date: Wed, 20 Mar 2013 02:03:19 +0000 Subject: QPID-4558: C++ broker selectors: Improved error reporting git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1458610 13f79535-47bb-0310-9956-ffa450edef68 --- cpp/src/qpid/broker/SelectorToken.cpp | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) (limited to 'cpp/src/qpid/broker/SelectorToken.cpp') diff --git a/cpp/src/qpid/broker/SelectorToken.cpp b/cpp/src/qpid/broker/SelectorToken.cpp index 1e84834e18..e745bc3889 100644 --- a/cpp/src/qpid/broker/SelectorToken.cpp +++ b/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, ""); 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); +} + }} -- cgit v1.2.1