Sérgio,

I am quite interested in these semantics. I developed a PEG parser in
C earlier this year as a part of a personal project and I attempted to
come up with my own left recursive handling loosely based off of Warth
et al. but I always had problems with cases such as:

A <- A 'a'
  <- B

B <- B 'b'
  <- A
  <- C

C <- C 'c'
  <- B
  <- 'd'.

That is a fairly contrived example, however, the main problems I had
that I eventually could not overcome was with the
intertwining/braiding of A and B. If your semantics are able to
properly handle such awful grammars then I think that would be
excellent and I would be really interested in reading more in-depth
into them.

Best Regards,

Peter Goodman,
http://ioreader.com
70 Winston Circle,
Montreal, Quebec
H9S 4X6



2009/11/17 Sérgio Medeiros <tamp...@yahoo.com>:
>> Is there any more recent work that I should be aware of that corrects this?
>
>
> I am studying left-recursion on PEGs and I am working on a new operational
> semantics for PEGs that gives meaning for left-recursive rules in a grammar,
> so it is another approach.
>
> It has some in common with the approach of Warth et al., but I think it is
> simpler.
>
> The basic idea is based on the expansion of a nonterminal. Given the
> definition:
> A <- A 'a' / 'b'
>
> The expansion of A is as follows:
> A^0 = fail
> A^1 = A^0 'a' / 'b'
> A^2 = A^1 'a' / 'b'
> A^3 = A^2 'a' / 'b'
> ...
>
> A nonterminal (left-recursive or not) should keep expanding while the
> result of the matching increases, where expansion A^n uses the
> previous result of the matching of expansion A^(n-1)
>
> Given the input "bac"
> match A^0 = fail
> match A^1 = "b"
> match A^2 = "ba"
> match A^3 = "b" (stops here)
>
> The result of the matching of A against input "bac" is "ba".
>
> I have a draft of this semantics and I also can give a lengthier
> explanation if somebody is interested on it.
>
> Sérgio
>
>
>      
> ____________________________________________________________________________________
> Veja quais são os assuntos do momento no Yahoo! +Buscados
> http://br.maisbuscados.yahoo.com
>
> _______________________________________________
> PEG mailing list
> PEG@lists.csail.mit.edu
> https://lists.csail.mit.edu/mailman/listinfo/peg
>

_______________________________________________
PEG mailing list
PEG@lists.csail.mit.edu
https://lists.csail.mit.edu/mailman/listinfo/peg

Reply via email to