Looked like you were trying to discern the true extent of a comment, which is just a delimited block. That is what a pair matcher does. My specific application is different, but the technique is the same.
At 10:06 PM 4/15/2009, Sam Harwell wrote: >It looks like we are working towards two very different goals. I'm >not trying to do any parsing, block structure analysis, pair >matching, etc. I'm just trying to color comments, identifiers, >keywords, etc with individual colors. > >Sam > >From: [email protected] >[mailto:[email protected]] On Behalf Of Gerald Rosenberg >Sent: Wednesday, April 15, 2009 11:29 PM >To: [email protected] >Subject: Re: [antlr-interest] Building syntax highlighters with ANTLR > >A better approach is to use a predicate. That way you don't have to >intercept every lexer token and makes it considerably easier to >handle multiple pair sets. > >@lexer ::members { > public boolean pairMatch(int limit) { > return PairMatcherHelper.pairMatch(input, limit); > } > public boolean pairMatch(int limit, char beg, char end) { > return PairMatcherHelper.pairMatch(input, limit, beg, end); > } >} > >BRACE_BLOCK :'{' { pairMatch(200) }? ; >BRACKET_BLOCK :'[' { pairMatch(50, '[', ']') }? ; > >PairMatcherHelper#pairMatch then does full nested pair matching, >subject to certain limitations. Does respect Antlr's backtracking semantics. > >Note, the attached version is set up for just for single char delimiters. > > > > >At 10:56 AM 4/15/2009, Sam Harwell wrote: > > >The new method uses a very different override of NextToken(). The >outer loop is largely a duplication of the functionality of >Lexer.NextToken(). I've highlighted the key section that reliably >manages the lexer state information (yay HTML email). > >public override IToken NextToken() >{ > for ( ; ; ) --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "il-antlr-interest" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/il-antlr-interest?hl=en -~----------~----~----~----~------~----~------~--~---
List: http://www.antlr.org/mailman/listinfo/antlr-interest Unsubscribe: http://www.antlr.org/mailman/options/antlr-interest/your-email-address
