3

特定のテキスト形式でデータを保存しています。

FIDS_A1=CF_LAST:1|line_NETCHNG:2|QoS:3; FIDS_A2=[High and Low]:[{High} – {Low}]:1|CF_LAST:2; FIDS_A3=YR_RANGE:3|VOL:3; FIDS_A4=GR_AskBid; FIDS_C3=line_BID:3|line_ASK:3;

それを解析して、そこから C# 型のデータ構造を取得する必要があります。

C# でパーサーを記述するのは簡単ではありません (非常に多くの正規表現とハード コード)。

Microsoft から Oslo\MGramar について聞いたことがあります。このツールは、特定のデータの C# パーサー コードを生成しますか?

出力 他のライブラリを参照せずにパーサーの C# コードのみが必要です。

4

3 に答える 3

1

GOLDパーサービルダーbsnGoldParserエンジン(GOLDで構築された文法を使用してデータを解析するときに型付きデータ構造を作成できます)を見ることができます。

このエンジンの使用方法を示すCodeProjectの記事もあります。

于 2011-04-19T11:37:28.110 に答える
0

パーサー ジェネレーターは、正規表現を回避するのに役立ちません。実際、少なくとも私が使用したジェネレーターでは、パーサー ジェネレーターは解析の第 2段階です。トークンのストリームを受け取り、抽象構文ツリーを出力します。

テキストをトークンに変換するには、レクサーを作成します。これには、1 つまたは 3 つの正規表現を含めることができます。

言語が十分に単純であれば、パーサー ジェネレーターの使用方法を学ぶよりも、パーサーをゼロから作成する方が簡単であることに気付くかもしれません。

于 2011-04-19T13:21:23.980 に答える
0

のステータスに関するこの更新を読んMでいると、すぐには市場に出回らないと思います。

ANTLRを使用することをお勧めします。

  • とりわけ、C# で非常に強力なパーサーを生成できます。
  • 非常に成熟した製品です - デバッガー付きの独自の IDE があります
  • 標準の EBNF 文法を使用するため、すぐになくなるものに時間を費やす必要はありません
于 2011-04-19T13:39:44.950 に答える