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

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

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

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.

Reply via email to