With token caching and optimal pattern matching, it should be possible to almost eliminate any performance differential. Ter's current implementation does not do that--he generates DFAs that match tokens in order of appearance in the input stream--but the big wins from left factoring are to remove non-LL(*) decisions. That said, refactoring to reduce the k values of decisions is good practice, so temporarily setting k for this purpose can be helpful--just don't expect much in the way of performance improvement.
--Loring > >From: Gokulakannan Somasundaram <[email protected]> >To: Loring Craymer <[email protected]> >Cc: Gavin Lambert <[email protected]>; [email protected] >Sent: Sun, February 14, 2010 7:55:08 PM >Subject: Re: [antlr-interest] setting k Value Versus Predicates > > > > >>>>With ANTLR 3, the default is k='*' and it is best not to set k. Syntactic >>>>predicates are still needed to disambiguate decisions with potentially >>>>infinite lookahead (usually due to recursion or looping). >> >> > >I can't understand the statement "It is best not to set k". Say there are >left factoring opportunities, which we won't come to know, unless it is thrown >as an error(after setting k)... > >I think, you are assuming that the grammar cannot be left factored further. Or >are you saying there is no difference in performance between LL(*) and LL(1)? >Please clarify. > >Thanks, >Gokul. > > 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.
