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