Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/328.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/152.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 解析和分析C++;C代码#_C#_C++_Parsing - Fatal编程技术网

C# 解析和分析C++;C代码#

C# 解析和分析C++;C代码#,c#,c++,parsing,C#,C++,Parsing,我需要在C#中解析C/C++并获得一个简洁的AST以进行分析和可视化。我的方法是:在C++中找到一个C++解析器(手写体或由分析器生成器生成),将这些数据保存到JSON或类似的,切换到C语言,使用JSON库将数据读入C对象,便于分析。 有没有一个项目允许我做这样的事情?基本上我想要一个完整的AST,而不仅仅是代码文件中的。我可以从C++编写的C++解析器开始,或者如果有一个解析器生成器可以生成C++代码,而某人已经为C++做了它,这将是最有用的。 ANTLR有一个.NET版本,其版本3由NHib

我需要在C#中解析C/C++并获得一个简洁的AST以进行分析和可视化。我的方法是:在C++中找到一个C++解析器(手写体或由分析器生成器生成),将这些数据保存到JSON或类似的,切换到C语言,使用JSON库将数据读入C对象,便于分析。
有没有一个项目允许我做这样的事情?基本上我想要一个完整的AST,而不仅仅是代码文件中的。我可以从C++编写的C++解析器开始,或者如果有一个解析器生成器可以生成C++代码,而某人已经为C++做了它,这将是最有用的。 ANTLR有一个.NET版本,其版本3由NHibernate和ASP.NET MVC使用。您可能已经在项目中引用了它的运行时库,尽管我建议您使用,4

下载可能不包含你想要的C或C++的特定版本的语法文件,所以你应该寻找合适的语法文件。ANTLR已经存在很长时间了,所以有很多语法文件可用


您可以在Github上找到由ANTLR的创建者管理的多种语言的一个示例。该列表包括C11的语法。

您知道和?关于图书馆推荐的问题在这里是离题的。你应该找别的地方发布这个。@David-那主题是什么呢?很快询问错误消息也将脱离主题,我想,其中包括一半的编程问题。@DavidHeffernan观点不同,这个问题是边缘问题。太多的有效问题被关闭already@DavidHeffernan这里不是讨论这个问题的地方。但并不是每一个通过外部图书馆推荐而得到最好答案的问题都会自动偏离主题。甚至不是所有指出这一点的问题都是正确的。有关这个问题的详细讨论,请参阅。答案不错,但这是从头开始的。查看如何使用现成的库和语法文件“从头开始构建”?