在c#中解析c / c ++ / c#文件

时间:2015-12-23 14:20:52

标签: c# c++ c

我有一个c文件,里面有很多功能。

我想分离出每个函数并将它们全部放在List中(比如说,list_code),并且还可以在不同的List中获取每个函数的名称(比方说,fun_code)。 E.g

可以说,c文件包含以下代码:

void main()
{
//some code here
}

int count (int abc)
{
///some code here
}

int adder(int def)
{
///some code here
}

我想要以下两个列表 list_code fun_code !! list_code 的元素将是一个包含三个元素的列表,其中包含

  1. void main() { //这里有一些代码 }
  2. int count(int abc) { ///这里有一些代码 }
  3. int adder(int def) { ///这里有一些代码 }
  4. fun_code 的元素将是一个包含三个元素的列表,其中包含

    1. void main()
    2. int count(int abc)
    3. int adder(int def)
    4. 我已经编写了一个代码,用于记录大括号(" {"和"}")并分离出完整的功能。但如果评论包含大括号,它就会失败。 此外,我无法通过这种方式获得功能名称。

      请告诉我如何实现这一目标。任何库或内置函数都会有很大帮助,因为它会处理所有细微的细节,如注释,换行和类似场景。

1 个答案:

答案 0 :(得分:9)

libclang可能是解析C ++最容易使用且最成熟的选项。

有几个可用的C#包装器 - 以下是一些快速Google搜索的结果: