> My question is then what is
> the appropriate way to construct the lexer such that it will recover
> gracefully from that invalid input and NOT go into the infinite loop state
> caused by the thrown exception?

Personally, I try to keep "modes" in the lexer and
out of the parser. I probably would have had the
lexer looking past any initial '<' to distinguish the
various types of things it presages (especially
since the XML spec seems to make that relatively
easy). So, for example, this:

> <Program><</Program>

would have returned a token stream like:

TK_START_TAG
TK_IDENT
TK_GT
TK_ILLEGAL
TK_END_TAG
TK_IDENT
TK_GT

I would keep modes like CDATA in the lexer.
YMMV, many ways to skin a cat, etc.

List: http://www.antlr.org/mailman/listinfo/antlr-interest
Unsubscribe: 
http://www.antlr.org/mailman/options/antlr-interest/your-email-address

-- 
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.

Reply via email to