On 10/12/11 9:15 PM, "Jim Idle" <j...@temporal-wave.com> wrote:
Hi Jim, > Avoid backtracking like the plague if you need performance. But if you are > careful in the order of your alts and use it on just a few > decisions/rules, then it might not be so bad (but remember that your error > messages will be weak). Then next question comes to mind: does ANTLR allow us somehow easy to see that during parsing was made 2-3 or 4 backtracking. Like profiler ... So we can see that and start learn where and why .. ? > If k=1 on a decision then ANTLR will work that out so you don't need to > specify but if you want to avoid ANTLR following every possible alt then > you can use k=1 on a particular rule or sub rule to avoid ambiguity > errors. Aha, so playing with k=1 option, We can even kill ambiguity errors/warnings. Interesting. This is what I ask for -- it will be great to have list of such tricks/rules from ANTLR experts .. > Basically if you know that a decision will be correct at k=1 even > though ANTLR can see ambiguities, then tell it so. > Before 3.4 this would still give a warning unless you added a 1 token > predicate, but I believe that Ter changed this for 3.4 so that I could remove > a lot of those predicates from my own T-SQL grammar. So we do not need that one-token predicates now ... Good. But I do not understand how it looks? Can you show example of such predicate just for interest ? > Jim > > > >> -----Original Message----- >> From: antlr-interest-boun...@antlr.org [mailto:antlr-interest- >> boun...@antlr.org] On Behalf Of Ruslan Zasukhin >> Sent: Wednesday, October 12, 2011 11:05 AM >> To: antlr-interest@antlr.org >> Subject: [antlr-interest] Advice on best practice? >> >> Hi All, Terrence, Jim, >> >> I have review FAQs, other docs and list ... >> But sop far cannot find isolated advices/tips of kind >> >> >> * Tend develop grammar as k=1 >> AVOID to use k=*, because this is slower ... >> >> OR reverse >> >> * No problems to use k=* >> Always prefer to use k=* and do not worry ... Speed will be fine.. >> >> OR >> >> * always tend to (not)? Use backtrack option. >> and if you use it then use memoize also ... >> >> >> In the ANTLR3/Examples/C I see options as >> >> >> ==================== >> grammar C; >> >> options >> { >> backtrack = true; >> memoize = true; >> k = 2; >> language = C; >> } >> ==================== >> >> >> But what is official point of view at current state ? -- Best regards, Ruslan Zasukhin VP Engineering and New Technology Paradigma Software, Inc Valentina - Joining Worlds of Information http://www.paradigmasoft.com [I feel the need: the need for speed] 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-inter...@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.