summaryrefslogtreecommitdiff
path: root/src/parser/antlr_input.h
diff options
context:
space:
mode:
authorFrançois Bobot <francois@bobot.eu>2012-06-22 15:11:16 +0000
committerFrançois Bobot <francois@bobot.eu>2012-06-22 15:11:16 +0000
commit1cbf657d955776860580b662aefd53705b603680 (patch)
tree7f75c3a6d233ff304a2e82ae0ef7517358c22fe5 /src/parser/antlr_input.h
parentdbd59549e5e48118fdac71048de0a37059c1d5a1 (diff)
fix : function AntlrInput::tokenTextSubstr
Diffstat (limited to 'src/parser/antlr_input.h')
-rw-r--r--src/parser/antlr_input.h4
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 );
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback