ocamlyacc
現在、BNF 文法 (優先順位と結合性を持つファイル)から Scala コードを生成するレクサー/パーサーを探しています。それを行う方法についてほとんど何も見つけられなかったので、私はかなり混乱しています。
解析のために、私はscala-bison
(私が扱うのに多くの問題を抱えていることを)発見しました。他のすべてのツールは、Scala にインポートされた単なる Java パーサーです ( などANTLR
)。
字句解析については、何も見つかりませんでした。
Scala の有名なパーサー コンビネーターも見つけましたが (間違っていたら訂正してください)、それらが非常に魅力的であっても、主にバックトラッキングが原因で多くの時間とメモリを消費します。
だから私は2つの主な質問があります:
- 人々が _parser コンビネータだけに集中しているように見えるのはなぜですか?
- Scala で使用する最適なレクサー/パーサー ジェネレーターの提案は何ですか?