10

私は数年前、学部生時代に Flex や Bison に取り組みました。とはいえ、今はあまり覚えていません。最近、ANTLRのことをよく耳にするようになりました。

  • Flex/Bison をブラッシュアップするために、ANTLR またはそれ以上を学習することをお勧めしますか?
  • ANTLR の機能は Flex/Bison より多い/少ないですか?
4

3 に答える 3

10

ANTLRv3 は LL(k) であり、LL(*) に設定できます。特に後者は、基本的に EBNF をそのまま使用できるため、パーサーを書き込むのが非常に簡単です。

また、ANTLR は、ゼロから作成する再帰降下パーサーに非常によく似たコードを生成します。非常に読みやすく、デバッグが容易で、解析が機能しない、または正しく機能しない理由を確認できます。

Flex/Bison (またはその他の LALR パーサー) の利点は、高速であることです。

于 2009-11-26T22:41:31.997 に答える
2

ANTLR には、プロジェクトに含める必要があるランタイム ライブラリ JAR があります。

ANTLR の再帰降下パーサーは、Flex/Bison によって生成された「ボトムアップ」パーサーよりもデバッグが容易ですが、文法規則はわずかに異なります。

Java 用の Flex/Bison スタイル (LALR) パーサー ジェネレーターが必要な場合は、JavaCCを参照してください。

于 2010-04-08T21:08:21.700 に答える
0

レガシー ファイルと自然言語の解析など、情報処理要件の一部に ANTLR を使用することにしました。学習曲線は急ですが、私たちはそれを乗り越えようとしています。それは、私たちが行う必要があることに対する、より現代的で用途の広いアプローチだと感じています. あなたが尋ねるように、不利な点は主に避けられないように思われる学習曲線です。

于 2009-11-27T15:41:14.173 に答える