Is it possible to propagate higher level constructs (+, *) to the generated parse tree in an LR-style parser?

This page summarizes the projects mentioned and recommended in the original post on /r/ProgrammingLanguages

Our great sponsors
  • WorkOS - The modern identity platform for B2B SaaS
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • SaaSHub - Software Alternatives and Reviews
  • Lark

    Lark is a parsing toolkit for Python, built with a focus on ergonomics, performance and modularity.

  • lark, a parsing library where I am somewhat involved has a really nice solution to this: Rules starting with _ are inlined in a post processing step.

  • booze-tools

    Booze Tools will become the complete programming-language development workbench, all written in Python 3.9 (for now).

  • It's not my idea. It's present at least as far back as YACC, "Yet Another Compiler-Compiler", which inspired the name of BISON (another parser-generator named for ungulates). Here's mine, written in Python: https://github.com/kjosib/booze-tools It also has a few extra bits. Feel free to exploit its MIT license to the fullest. I should mention that the design of symbolic reduce-actions was intended to allow one to use the same grammar across multiple host languages. You could even write a driver that does simply build a parse-tree and then hand that off to a separate phase, but in my world I almost always want a bottom-up tree-transduction as first-pass de-sugaring.

  • WorkOS

    The modern identity platform for B2B SaaS. The APIs are flexible and easy-to-use, supporting authentication, user identity, and complex enterprise features like SSO and SCIM provisioning.

    WorkOS logo
NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts