[antlr-interest] ignoring lexer rules
    Sinan 
    sinan.karasu at boeing.com
       
    Wed Mar  6 09:51:50 PST 2002
    
    
  
Ed Sinjiashvili wrote:
> 
> Hi,
> 
> I've tried to ask Terence about this issue and he pointed me to this
> ML. So here I am. Suppose I have the following grammar(that describes
> literal strings with escaped octal numbers inside):
I would do something like:
import antlr.*;
public class MyTokenStreamSelector extends TokenStreamSelector {
	/** The set of token types to discard */
	public MyTokenStreamSelector() {
		super();
	}
	public Token nextToken() throws TokenStreamException {
		for(;;;){
			try {
				Token tok = super.nextToken();
				if(tok.getType()==MyParser.STRING){
					//code to replace the octal stuff maybe regular expressions.
				...........
				}
				//System.out.println("returning:"+tok.getType()+":"+tok);
				return tok;
			}
			catch (TokenStreamRetryException r) {
				// just retry "forever"
			}
		}
	}
}
------------------------
And then in your MyParser.g
	private MyTokenStreamSelector filter=null;
	
	public MyParser(MyTokenStreamSelector lexer) {
  		this((TokenStream)lexer);
		filter=lexer;
	}
------------------
and where you instantiate Parser/Lexer etc....
 public static MyTokenStreamSelector selector = new
MyTokenStreamSelector();
// notify selector about starting lexer; name for convenience
		selector.addInputStream(myMainLexer, "main");
		selector.select("main"); // start with main P lexer
		// Create a parser that reads from the scanner
		myParser = new MyParser(selector);
 
Your use of Yahoo! Groups is subject to http://docs.yahoo.com/info/terms/ 
    
    
More information about the antlr-interest
mailing list