What rns did (as I read it) was list all the results of $slr->value().
The parse is unambiguous if and only if there is exactly one, which
seems to be the case here. (You've been away from Perl, so Data::Dumper
may now be hard to read, but you can confirm this for yourself by adding
a line before the dump of each value, as a "hi there", or giving a count.)
Is your rule that you don't want to allow an abbreviation to follow a vowel?
-- jeffrey
On 09/03/2014 08:24 PM, Andrew Dunbar wrote:
Do we know if that's ambiguous? Don't we have to run it
through Marpa::R2::ASF to know?
On Wednesday, 3 September 2014 20:10:42 UTC+10, rns wrote:
Can you please look at this gist
<https://gist.github.com/rns/fb6abf62a5fa779957ba>? The result is
in the comment below it. This might be a solution provided that
I've got the right idea.
On Wed, Sep 3, 2014 at 11:44 AM, Andrew Dunbar <[email protected]
<javascript:>> wrote:
I've come back to Perl after a long absence just to play with
Marpa because it looks like the most full featured Earley
parser in any of the programming languages I know.
I'm interested in Earley specifically because it can handle
ambiguity and can produce a parse forest.
I'm using it to investigate the syllable structure of the
writing system of the Lao language of Southeast Asia.
Specifically to see whether it's inherently ambiguous, and how.
So far it works great and I'm glad I've come here from the
Bison and PEG grammars I was playing with earlier.
But it seems that there might be two kinds of ambiguities, the
kind I'm looking for, and a kind that might be an artefact of
Earley parsing or of the way I've written the grammar.
Without having to teach you Lao I'll attempt to analogize:
|
All::=Syllable+
Syllable::=C V C
|C V
|C
C ~[bcdfghjklmnpqrstvwxyz]
V ~[aeiou]
|
The "Syllable ::= C" rule is to allow lone initial consonants,
as are used occasionally for abbreviations.
If my input string is "mat" I only want:
|
(Syllable(C m)(V a)(C t))
|
But due to the abbreviation rule I also get a second unwanted
parse:
|
(Syllable(C m)(V a))
(Syllable(C t))
|
I've been able to refactor my grammar to deal with other
issues that have appeared, by I can't seem to think of
anything which accounts for occasional abbreviations but
doesn't generate a number of unwanted alternative parses.
Can I refactor my grammar or is there some other way to deal
with this but still generate all the other kinds of ambiguity
that I am interested in?
--
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]
<javascript:>.
For more options, visit https://groups.google.com/d/optout
<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]
<mailto:[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.