diff options
author | François Bobot <francois@bobot.eu> | 2012-06-22 15:11:16 +0000 |
---|---|---|
committer | François Bobot <francois@bobot.eu> | 2012-06-22 15:11:16 +0000 |
commit | 1cbf657d955776860580b662aefd53705b603680 (patch) | |
tree | 7f75c3a6d233ff304a2e82ae0ef7517358c22fe5 | |
parent | dbd59549e5e48118fdac71048de0a37059c1d5a1 (diff) |
fix : function AntlrInput::tokenTextSubstr
-rw-r--r-- | src/parser/antlr_input.h | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/src/parser/antlr_input.h b/src/parser/antlr_input.h index 84b5099fb..10a4b907d 100644 --- a/src/parser/antlr_input.h +++ b/src/parser/antlr_input.h @@ -244,7 +244,9 @@ inline std::string AntlrInput::tokenText(pANTLR3_COMMON_TOKEN token) { inline std::string AntlrInput::tokenTextSubstr(pANTLR3_COMMON_TOKEN token, size_t index, size_t n) { + ANTLR3_MARKER start = token->getStartIndex(token); + // Its the last character of the token (not the one just after) ANTLR3_MARKER end = token->getStopIndex(token); Assert( start < end ); if( index > (size_t) end - start ) { @@ -253,7 +255,7 @@ inline std::string AntlrInput::tokenTextSubstr(pANTLR3_COMMON_TOKEN token, throw std::invalid_argument(ss.str()); } start += index; - if( n==0 || n >= (size_t) end - start ) { + if( n==0 || n > (size_t) end - start ) { return std::string( (const char *)start, end-start+1 ); } else { return std::string( (const char *)start, n ); |