[antlr-interest] unget a character

Terence Parr parrt at cs.usfca.edu
Thu Dec 23 10:41:19 PST 2004


On Dec 22, 2004, at 11:52 AM, Paul J. Lucas wrote:
> 	It's not clear where/when to set call mark() in my case.  In my
> 	case, the token in the 'B' lexer is:
>
> 		RBRACE
> 			: '}'
> 			;
>
> 	If 'B' ever sees '}', it's wrong.  I need to pop 'B' switching
> 	back to 'A' then have 'A' see the '}'.
>
> 	So where do I call mark() and rewind() ?

Hmm...it seems you'll need mark/rewind to change the shared input 
stream state and retry exception or your own retry mechanism to make 
this work.  My only experience is javadoc like stuff where the sentinel 
tokens are used to merely switch lexers not rewind switch.

Sorry I can't be of more help.  I, myself, would have to look at the 
rewind stuff to figure out how to tweak it.

Ter
--
CS Professor & Grad Director, University of San Francisco
Creator, ANTLR Parser Generator, http://www.antlr.org
Cofounder, http://www.jguru.com
Cofounder, http://www.knowspam.net enjoy email again!





More information about the antlr-interest mailing list