TokenStreamBasicFilter.cpp
上传用户:afrynkmhm
上传日期:2007-01-06
资源大小:1262k
文件大小:1k
源码类别:

编译器/解释器

开发平台:

Others

  1. #include "antlr/TokenStreamBasicFilter.hpp"
  2. ANTLR_BEGIN_NAMESPACE(antlr)
  3. /** This object is a TokenStream that passes through all
  4.  *  tokens except for those that you tell it to discard.
  5.  *  There is no buffering of the tokens.
  6.  */
  7. TokenStreamBasicFilter::TokenStreamBasicFilter(TokenStream& input_)
  8. : input(&input_)
  9. {
  10. }
  11. void TokenStreamBasicFilter::discard(int ttype)
  12. {
  13. discardMask.add(ttype);
  14. }
  15. void TokenStreamBasicFilter::discard(const BitSet& mask)
  16. {
  17. discardMask = mask;
  18. }
  19. RefToken TokenStreamBasicFilter::nextToken()
  20. {
  21. RefToken tok = input->nextToken();
  22. while ( tok && discardMask.member(tok->getType()) ) {
  23. tok = input->nextToken();
  24. }
  25. return tok;
  26. }
  27. ANTLR_END_NAMESPACE