On Mon, Apr 6, 2020 at 4:03 AM Fabio Zadrozny <fabiofz@gmail.com> wrote:
I think using a PEG parser is interesting, but I do have some questions related to what's to expect in the future for other people which have to follow the Python grammar, so, can you shed some light on this?
Does that mean that the grammar format currently available (which is currently specified in https://docs.python.org/3.8/reference/grammar.html) will no longer be updated/used?
The grammar format used for the PEG parser is nearly the same as the old grammar, when you remove actions and some embellishments needed for actions. The biggest difference is that the `|` operator is no longer symmetrical (since if you have alternatives `A | B`, and both match at some point in the input, PEG reports A, while the old generator would reject the grammar as being ambiguous.
Is it expected that other language implementations/parsers also have to move to a PEG parser in the future? -- which would probably be the case if the language deviates strongly off LL(1)
We don't specify how other implementations must parse the language -- in fact I have no idea how the parsers of any of the other implementations work. I'm sure there will be other ways to parse the same language. But yeah, if there are implementations that currently closely follow Python's LL(1) parser structure they may have to be changed once we start introducing new syntax that makes use of the freedom PEG gives us. (For example, I've been toying with the idea of introducing a "match" statement similar to Scala's match expression by making "match" a keyword only when followed by an expression and a colon.) -- --Guido van Rossum (python.org/~guido) *Pronouns: he/him **(why is my pronoun here?)* <http://feministing.com/2015/02/03/how-using-they-as-a-singular-pronoun-can-c...>