diff --git a/runtime/C/src/antlr3tokenstream.c b/runtime/C/src/antlr3tokenstream.c index ec06f1575..d74f77ee2 100644 --- a/runtime/C/src/antlr3tokenstream.c +++ b/runtime/C/src/antlr3tokenstream.c @@ -728,9 +728,9 @@ getTokensSet (pANTLR3_COMMON_TOKEN_STREAM tokenStream, ANTLR3_UINT32 start, ANTL { fillBuffer(tokenStream); } - if (stop > tokenStream->tstream->istream->size(tokenStream->tstream->istream)) + if (stop >= tokenStream->tstream->istream->size(tokenStream->tstream->istream)) { - stop = tokenStream->tstream->istream->size(tokenStream->tstream->istream); + stop = tokenStream->tstream->istream->size(tokenStream->tstream->istream) - 1; } if (start > stop) { @@ -748,7 +748,7 @@ getTokensSet (pANTLR3_COMMON_TOKEN_STREAM tokenStream, ANTLR3_UINT32 start, ANTL tok = tokenStream->tstream->get(tokenStream->tstream, i); if ( types == NULL - || types->isMember(types, tok->getType(tok) == ANTLR3_TRUE) + || types->isMember(types, tok->getType(tok)) == ANTLR3_TRUE ) { filteredList->put(filteredList, n++, (void *)tok, NULL);