2

私はFParsecに基づいた小さなアプリケーションを書いています。

今日、私はCompactFrameworkのバージョンを作成する機会を探しています。どうやら、.NETCF用のFParsecソースを構築するのはそれほど簡単ではありません。FParsecCSライブラリには、安全でないコードと、CFで使用できないタイプへの参照がいくつかあります。つまり、、、System.Collections.Generic.HashSetなどSystem.Text.DecoderFallbackException

それを構築する方法があるかどうか疑問に思います。明らかに、FParsecのさらなるバージョンがリリースされたときに更新するのは難しいので、私はコードを変更しないようにしています。

パフォーマンスはあまり気にしません。あなたが持っている高性能のものの代わりに使用できるジェネリックがあればCharStream、それで十分でしょう。

ご協力ありがとうございました。

4

1 に答える 1

3

私は.NETCFの経験がなく、FParsecを実行しようとしたことはありません。ただし、FParsecのSilverlightバージョンがあります。これは、.NETCFへの移植の開始点として適している可能性があります。Silverlightバージョンは、「安全でない」コードを使用しないFParsecのLOW_TRUSTバージョンに基づいて構築されています。うまくいけば、LOW_TRUSTバージョンのストリームサイズの制限がアプリケーションにとって問題にならないでしょう。

依存関係を処理する最も簡単な方法は、おそらく、FParsecがエラー処理に実際に使用するいくつかのメソッドをHashSet実装する独自の単純なHashSet型(に基づく)を実装することです。Dictionaryがサポートされていない場合はDecoderFallbackException、それぞれの例外ハンドラをコメントアウトできます。

HGを使用して変更を追跡する場合、FParsecの更新をマージすることは難しくありません。.NET CFの変更の範囲によっては、別の条件付きコンパイラシンボルのメインソースツリーにそれらを含めることもできます。

于 2011-10-01T20:44:40.447 に答える