evhub / coconut

Simple, elegant, Pythonic functional programming.

Home Page:http://coconut-lang.org

Repository from Github https://github.comevhub/coconutRepository from Github https://github.comevhub/coconut

PEG Parser?

adsharma opened this issue · comments

I noticed that coconut uses a recursive descent parser. Circa 2020, python switched to using a PEG grammar as explained in PEP-617. Does coconut have any plans to switch?

Context: I'm looking to add a rust-compatible pattern matching syntax to a minimally modified python PEG grammar. Would like to keep it compatible with what coconut does. Details here.

Would love to understand more about:

  • Are there places where coconut pattern matching implementation differs from Rust? (Or proposed C++ pattern matching)
  • Any suggestions on how to work around the ambiguity in expression syntax when pattern matching is added. I can solve it by adding a delimiter, but I'd like to avoid doing that.

One other way to solve the ambiguity/complexity is limiting the accepted python grammar to a much smaller subset, while staying as compatible with CPython as possible.

The end goal of this is to make py2many transpiler a faster, AI assisted alternative to Rust programmers.