問題タブ [megaparsec]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
788 参照

parsing - Haskell Parsec、MegaParsec、または Happy の単純な C 文法

私は、C ステートメントのサブセットを gcc _asm ステートメントにトランスパイルするプリプロセッサーを開発しています。このプロジェクトでは、一般的な Haskell テクノロジで記述された既存の C ステートメント パーサーを喜んで再利用するか、既存の作業のやり直しを避けるために単純な C サブセット パーサーから始めます。

残念ながら、これまでのところ、C 以外のすべての文法しか見つかりませんでした。また、Java/Go 用の Parsec 文法から始めることもできますが、MegaParsec の方が望ましい選択肢のように思われます。

小さな C サブセットの文法をすばやく開発できますが、より大きな C サブセットのすぐに使用できる文法を使用すると、C ステートメント パーサーの開発を完全にスキップして、プロジェクトの要である asm コード生成に集中することができます。

最終的には、C++ コードの一部をトランスパイルする LLVM パスに変わる可能性がありますが、すぐに使えるパーサーを見つけることができる場合は特に、迅速なプロトタイプを作成するために Haskell を好みます。