At 10:42 19/08/2009, David-Sarah Hopwood wrote:
 >ENDOFLINE can indeed be simplified to NEWLINE | EOF.
 >
 >However, that won't help because it is not the predicate that
 >causes the problem here; it's the fact that the match 
immediately
 >following .* uses the '|' operator. Note that it doesn't matter
 >whether this match is "inlined" or in a separate fragment rule
 >(and it also doesn't matter whether (option { greedy=false; } :
 >.)* is used instead of .*).

Right, but the version I was talking about didn't have the .* in 
it at all, so it would have worked (that far). :)

 >Therefore, .* can't be used in cases where the match following 
it
 >necessarily involves an alternation that can't be expressed 
using
 >'?'.

In my experience, .* in lexer rules only ever works properly when 
it is followed by a single inline sequence of 
characters.  (Nothing optional, no loops, no calling of other 
rules.)


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 il-antlr-interest@googlegroups.com
To unsubscribe from this group, send email to 
il-antlr-interest+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/il-antlr-interest?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to