はじめに 私は現在、Salesforceで使われているSOQLというクエリ言語のオープンソースとしての再実装に取り組んでいます。 以前はTypeScriptで実装を行いましたが、直近ではGoによりパーサーを書き直し、実行エンジンの再作成をしています。 Goによるクエリパーサーが主要なクエリへの対応を完了したので、クエリをER図として可視化するツールを作ってみました。 ツールで使用したもの フロントエンドはVanilla JavaScriptで作っています。 ER図のレンダリングにはMermaidを使用しました。本当はPlantUMLの方が好きなのですが、クライアントだけで何とかしたいのでMermaidを選びました。 SOQLのパーサーははじめに記載した通り、自作のものを使用しています。 パーサーはパーサーコンビネーターとして構築されており、パーサーライブラリも自作のものを使用しています。