Project: Replace libdparse with DMD as a library in dfmt
Mentor: Razvan Nitu
Proposal: Prajwal S N - Proposal (SAOC 2023)
Resume: Prajwal S N - Resume
dfmt is a D code formatter. It internally uses libdparse, a third-party D lexer and parser, to obtain a sequence of tokens and an AST, which is then used to generate D code that respects the given guidelines. Since libdparse has a different implementation from the reference D frontend, every time a parser change occurs, libdparse and its dependencies need to be updated. This project aims to replace libdparse in dfmt with the library packages offered by DMD for the lexer and parser, taking the community one step closer to having a single source of truth for the AST across the D compilers and tools ecosystem.
All of the work done is available on the saoc-2023
branch on my fork of dfmt.
I would like to thank my mentor Razvan for his encouragement, insight, and constant support - I'll miss all the cool discussions and jokes in the weekly meetings :'). I extend my gratitude to the D Language Foundation and Symmetry Investments for making it possible to work with this amazing community.