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, <[email protected]> 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 [email protected].
> 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 [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to