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

编译器/解释器

开发平台:

Others

  1. package antlr;
  2. /* ANTLR Translator Generator
  3.  * Project led by Terence Parr at http://www.jGuru.com
  4.  * Software rights: http://www.antlr.org/RIGHTS.html
  5.  *
  6.  * $Id: //depot/code/org.antlr/release/antlr-2.7.0/antlr/TokenStreamBasicFilter.java#1 $
  7.  */
  8. import antlr.collections.impl.BitSet;
  9. /** This object is a TokenStream that passes through all
  10.  *  tokens except for those that you tell it to discard.
  11.  *  There is no buffering of the tokens.
  12.  */
  13. public class TokenStreamBasicFilter implements TokenStream {
  14.     /** The set of token types to discard */
  15.     protected BitSet discardMask;
  16.     /** The input stream */
  17.     protected TokenStream input;
  18.     public TokenStreamBasicFilter(TokenStream input) {
  19. this.input = input;
  20. discardMask = new BitSet();
  21.     }
  22.     public void discard(int ttype) {
  23. discardMask.add(ttype);
  24.     }
  25.     public void discard(BitSet mask) {
  26. discardMask = mask;
  27.     }
  28.     public Token nextToken() throws TokenStreamException {
  29. Token tok = input.nextToken();
  30. while ( tok!=null && discardMask.member(tok.getType()) ) {
  31.     tok = input.nextToken();
  32. }
  33. return tok;
  34.     }
  35. }