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 <antechno...@gmail.com> 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, <iobas...@gmail.com> 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 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.
>>
> --
> 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