Slightly different showcase: we wrote a parser (+ reverse operation, generator) for Prisma Schema Language PSL in Haskell! We use it in out Wasp language compiler (
https://wasp-lang.dev) where we use Prisma as a solution for managing the database. Wasp is declarative and Prisma has declarative PSL and that is why we chose it -> it was relatively easy to write the parser for it, and this is important for us because it gives Wasp better understanding of data models used in the app -> so for example we will be able to automatically generate CRUD for those models, and reason about it in other ways during Wasp compile time.
NOTE: For now parser parses only
model
(although that is the most complicated part of PSL) + it was written for Prisma 2.17, we have to yet enrich it with new syntax that was added in 2.19.
Source code :
https://github.com/wasp-lang/wasp/tree/b10885e29c065a21cfa408fc6c9db8a2ce675cc0/waspc/src/Psl .