A lot of people use ambiguity to mean "ambiguous if you use a parser with the power of recursive descent or LALR", which is kind of a figurative extension of the term. By ambiguous I mean ambiguous even if a general context-free parser is used. That's the standard academic meaning of the term.
On Fri, Sep 2, 2016 at 1:37 PM, Anton Dyudin <[email protected]> wrote: > Isn't the whole point of a precedence rule to provide a disambiguition? > > > On Friday, 2 September 2016, Jeffrey Kegler <jeffreykegler@jeffreykegler. > com> wrote: > >> If you use the rewrite option, it remains possible to write a precedenced >> statement that is inherently ambiguous. Rewriting is to prevent the >> *implementation* of precedenced rules from *introducing* new ambiguities >> not actually in the precedenced rule itself. >> >> >> On Fri, Sep 2, 2016 at 1:30 PM, <[email protected]> wrote: >> >>> The rewrite approach seems to work great for recursive rules, but it >>> doesn't do anything for non-recursive rules. Running the following gives >>> me an ambiguous parse. Since opt1a is a higher priority, I expect to see >>> two productions of opt1a with no ambiguity. Am I expecting too much here? >>> Thanks for your help! >>> >>> >>> use strict; >>> use Marpa::R2; >>> use Data::Dumper; >>> >>> my $grammar = " >>> options ::= option* >>> option ::= opt1a || opt2a >>> opt1a ::= 'a' >>> opt2a ::= 'a' 'a' >>> >>> :discard ~ whitespace >>> whitespace ~ [\\s]+ >>> "; >>> >>> my $grammar = Marpa::R2::Scanless::G->new( { source => \$grammar } ); >>> my $input = 'a a'; >>> my $value_ref = $grammar->parse( \$input ); >>> >>> my $value = ${$value_ref}; >>> print "Output:\n".Dumper($value); >>> >>> >>> On Wednesday, August 31, 2016 at 8:55:21 PM UTC-6, Jeffrey Kegler wrote: >>>> >>>> I've remembered a major reason for preferring the rewrite approach. If >>>> you parse then rank, you're using ambiguous parsing -- Marpa is cool with >>>> that, but it is not necessarily as fast as an unambiguous parse. If the >>>> expression is of size X the parse could be as bad as O(X^3) and that can >>>> make a difference if you have a lot of long expressions. >>>> >>>> <snip> >>>> >>>> -- >>> 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. >> > -- > 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.
