Quick answers for 2 & 3

2.) See
https://metacpan.org/pod/distribution/Marpa-R2/pod/Scanless/R.pod#too_many_earley_items
for how to raise this limit or eliminate it entirely.  Although, the fact
you are hitting this limit is almost always a sign your grammar is too
ambiguous.

3.) Look at the grammar in the synopsis of
https://metacpan.org/pod/distribution/Marpa-R2/pod/Scanless/DSL.pod.  You
are breaking your arithmetic expression into separate statements and "assoc
=> right" is only effective within a single precedenced statement.  This
means the way you wrote it, it has no effect.

Doing a precedenced statement for 3) may fix 1) and 2)  as well.  These
answers are off the top of my head and untested.


On Fri, Jun 17, 2016 at 8:22 PM, <perlan...@gmail.com> wrote:

> Hi guys,
>
> I've been using Perl 5.010 regex to do some parsing, e.g. in Data::Csel
> [1] to parse CSS-selector-like expression, due to its relatively low
> startup overhead compared to Marpa or Regexp::Grammars. A couple of days
> ago, after reading about a topic in perl6 subreddit [2], I did a comparison
> benchmark [5] for a simple arithmetic parser using perl [3] vs Marpa [4].
> My questions:
>
> 1) how do I improve the Marpa version's performance?
> 2) how to remove the "Earley item count (N) exceeds warning threshold"?
> This happens for 1+1+..+1 (100x) expression but not for the 20x or below.
> 3) how do I make right associativity work? The Marpa version still
> evaluates ** operator left to right.
>
> regards,
> perlancar
>
> [1] https://metacpan.org/pod/Data::CSel
> [2] https://www.reddit.com/r/perl6
> [3]
> https://metacpan.org/pod/release/PERLANCAR/PERLANCAR-Parse-Arithmetic-0.001/lib/PERLANCAR/Parse/Arithmetic.pm
> [4]
> https://metacpan.org/pod/release/PERLANCAR/PERLANCAR-Parse-Arithmetic-0.001/lib/PERLANCAR/Parse/Arithmetic/Marpa.pm
> [5]
> https://metacpan.org/pod/release/PERLANCAR/Bencher-Scenarios-PERLANCARParseArithmetic-0.002/lib/Bencher/Scenario/PERLANCARParseArithmetic/parse_arithmetic.pm
>
> --
> You received this message because you are subscribed to the Google Groups
> "marpa parser" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to marpa-parser+unsubscr...@googlegroups.com.
> For more options, visit https://groups.google.com/d/optout.
>

-- 
You received this message because you are subscribed to the Google Groups 
"marpa parser" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to marpa-parser+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to