10

スマート電気メーターと通信するためにさまざまなネットワークを介して送信するオクテットストリームを読み書きする必要があります。バイナリデータ形式を説明するANSI規格ANSIC12.19があります。データ形式はそれほど複雑ではありませんが、標準は非常に大きく(500ページ以上)、多くの異なるタイプを記述しています。この標準は、EBNF文法によって完全に記述されています。ANTLRを利用してEBNF文法またはその修正バージョンを読み取り、オクテットストリームを読み書きできるC#クラスを作成することを検討しています。

これはANTLRの良い使い方ですか?

もしそうなら、ANTLR 3.1を利用できるようにするために何をする必要がありますか?ニュースグループのアーカイブを検索すると、文字の代わりにバイトを読み取ることができる新しいストリームを実装する必要があるようです。それですべてですか、それともレクサー派生物も実装する必要がありますか?

ANTLRがストリームの読み取り/解析に役立つ場合、ストリームの書き込みにも役立ちますか?

ありがとう。

ダンフィヌケーン

4

3 に答える 3

10

このテーマは、ANTLR メーリング リストで時々取り上げられます。通常、答えはノーです。バイナリ ファイル形式は非常に規則的であり、オーバーヘッドに値しないからです。

于 2009-02-05T18:03:22.853 に答える
4

文法があるとすごい足が上がるように思えます。

ANTLR 3.1には、構文解析/字句解析とは別のStringTemplateおよびコード生成機能があるため、問題をそのように分解できます。

私にとっては勝者のようで、試す価値があります。

于 2009-02-05T17:54:17.380 に答える