1/* ANTLR Translator Generator
2 * Project led by Terence Parr at http://www.jGuru.com
3 * Software rights: http://www.antlr.org/license.html
4 *
5 * $Id: //depot/code/org.antlr/release/antlr-2.7.7/lib/cpp/src/TokenStreamBasicFilter.cpp#2 $
6 */
7#include "antlr/TokenStreamBasicFilter.hpp"
8
9#ifdef ANTLR_CXX_SUPPORTS_NAMESPACE
10namespace antlr {
11#endif
12
13/** This object is a TokenStream that passes through all
14 *  tokens except for those that you tell it to discard.
15 *  There is no buffering of the tokens.
16 */
17TokenStreamBasicFilter::TokenStreamBasicFilter(TokenStream& input_)
18: input(&input_)
19{
20}
21
22void TokenStreamBasicFilter::discard(int ttype)
23{
24	discardMask.add(ttype);
25}
26
27void TokenStreamBasicFilter::discard(const BitSet& mask)
28{
29	discardMask = mask;
30}
31
32RefToken TokenStreamBasicFilter::nextToken()
33{
34	RefToken tok = input->nextToken();
35	while ( tok && discardMask.member(tok->getType()) ) {
36		tok = input->nextToken();
37	}
38	return tok;
39}
40
41#ifdef ANTLR_CXX_SUPPORTS_NAMESPACE
42}
43#endif
44
45