On Wed, Nov 24, 2010 at 6:01 AM, .alyn.post.
On Tue, Nov 23, 2010 at 10:52:11AM -0800, Robin Lee Powell wrote:
> On Tue, Nov 23, 2010 at 11:43:52AM -0700, .alyn.post. wrote:
> > What does the following production in the lojban grammar mean?:
> >
> > rp-_expression_-tail <- rp-_expression_ operator rp-_expression_-tail /
> > ()
> >
> > Do I understand that to mean 'the sequence of rp-_expression_,
> > operator, and rp-_expression_-tail OR nothing?' Could the above
> > also be expressed:
> >
> > rp-_expression_-tail <- (rp-_expression_ operator rp-_expression_-tail)?
> >
> > And if so, why the odd way of specifying it? I'm weak on pitfalls
> > of recursive behavior in grammars, am I looking at a workaround
> > related to that?
>
> Yes, and it mostly doesn't work. Lojban's RPN (which, if I have my
> druthers, the next version of the language will not have, by the
> way) is left-recursive, which is problematic. See the peg mailing
> list for various solutions, but IMO since a number of PEG parser
> generators handle this on their own, I think we should just have it
> be left-recursive and say that people have to use such a generator.
>
> If you can figure out how to fix it in in the rules so the right
> behaviour pops out, though, *please* do so. There are links to
> papers on the peg mailing list; it came up just last week; "*[1]*
> *Packrat Parsers Can Support Left Recursion*, Alessandro Warth,
> James R. Douglass, and Todd Millstein (2008)" is the citation I'm
> seeing at a brief glance.
>
Great. I saw that thread and ignored it as not being relevant in
the moment, but I'm happy to read it and play with it when I get to
that point.
I've downloaded the paper and cached it with this problem, as I'm a
bit ahead of myself with it.
-Alan
--
.i ko djuno fi le do sevzi
--