我正在写一个基于FParsec的小应用程序。
今天,我正在寻找一个为Compact Framework制作一个版本的机会。显然,为.NET CF构建FParsec源代码并不那么简单。FParsecCS库包含不安全的代码和一些对CF中不可用的类型的引用。即System.Collections.Generic.HashSet、System.Text.DecoderFallbackException等。
我想知道有没有办法把它建起来。显然,我尽量不更改代码,因为当FParsec的后续版本发布时,将很难进行更新。
我真的不关心性能。如果有一个通用的CharStream可以用来代替你拥有的高性能的,那就足够了。
谢谢你的帮助。
发布于 2011-10-02 04:44:40
我没有任何使用.NET CF的经验,也从来没有尝试过让FParsec在上面运行。但是,有一个Silverlight版本的FParsec,对于移植到.NET CF来说,这可能是一个很好的起点。Silverlight版本建立在FParsec的LOW_TRUST version之上,它没有使用任何“不安全”的代码。希望LOW_TRUST版本的流大小限制不会成为您的应用程序的问题。
处理HashSet依赖关系的最简单方法可能是实现您自己的简单HashSet类型(基于Dictionary),该类型实现FParsec实际用于其错误处理的几个方法。如果DecoderFallbackException不受支持,您可以注释掉相应的异常处理程序。
如果您使用HG跟踪您的更改,那么合并到FParsec的更新应该不难。根据.NET CF更改的范围,我还可以将它们包含在另一个条件编译器符号的主源代码树中。
https://stackoverflow.com/questions/7622544
复制相似问题