我正在编写一个基于FParsec的小应用程序。
今天,我正在寻找机会为Compact Framework制作一个版本。
显然,为.NET CF构建FParsec源并不是那么简单。 FParsecCS库具有不安全的代码和一些CF中不可用的类型的引用。即,System.Collections.Generic.HashSet
,System.Text.DecoderFallbackException
等。
我想知道是否有办法让它建成。显然,我正在尝试不改变代码,因为在更新版本的FParsec发布时很难更新。
我并不关心表现。如果有一个通用CharStream
可以用来代替你拥有的高性能,那就足够了。
感谢您的帮助。
答案 0 :(得分:3)
我对.NET CF没有任何经验,也从未试图让FParsec运行。但是,有一个Silverlight版本的FParsec,这可能是.NET CF端口的一个很好的起点。 Silverlight版本建立在FParsec的LOW_TRUST version之上,它不使用任何“不安全”的代码。希望LOW_TRUST版本的流大小限制不会成为您的应用程序的问题。
处理HashSet
依赖关系的最简单方法可能是实现你自己的简单HashSet
类型(基于Dictionary
),它实现了FParsec实际用于其的几个方法错误处理。如果不支持DecoderFallbackException
,则只需注释掉相应的异常处理程序。
如果使用HG跟踪更改,则在更新FParsec时合并应该不难。根据.NET CF的更改范围,我还可以将它们包含在另一个条件编译器符号的主源代码树中。