有人能指出我正确的方向,我有一个lex中的解析器我想在C#中使用,有没有人在做过这样的事情,或者用C#混合c / c ++?
编辑:更具体地说,我想解析数学表达式和XML。
答案 0 :(得分:2)
那里有许多C#Lex处理器。例如:
答案 1 :(得分:1)
您可以制作一个c代码,并在c#中使用PlatformInvoke机制。
即使您可以创建包含两个项目的解决方案,其中一个是包含c / c ++源的库项目,另一个是c#。
答案 2 :(得分:1)
如果您仅在桌面/服务器应用程序中使用此模块(例如,不在Silverlight或Compact Framework上),您可以使用clr支持构建C / C ++代码并从C#中使用它。
答案 3 :(得分:1)
我使用了一个C ++版本的flex非常成功。
您可以从
获取Windows预构建的二进制文件http://www.kohsuke.org/flex++bison++/
具体来说,我使用它来解析一个包含十几个规则的EBNF语法(对于boost :: spirit来说太多了),它将输入用户脚本作为
之类的语句 IF a > 10 AND b < -22 THEN OUTPUT X
所以我认为你提到的数学表达式会很好。
解析XML是一个不同的故事。有很多用于解析XML的专用库,你为什么要自己编写?有TinyXML(http://www.grinninglizard.com/tinyxml/)和CMarkup(http://www.firstobject.com/dn_markup.htm),我已经在几个项目中成功使用过。