使用 java 在 c 文件中查找宏变量

Finding macro variables in c files using java

我正在尝试解析一个 c 文件并找到所有以 "Apple_" 开头的变量。我将整个 c 文件读取为一个字符串,然后使用正则表达式获取所有变量。但是我有一个宏定义为:

#define IAMMACRO(var,ext) var##ext

所以如果我有

IAMAMACRO(Apple_,Variable)

我需要在解析后获取值 Apple_Variable 而不是 Apple_。

PS:我更喜欢简单的解决方案。

据了解,您想要:

  • 读取,然后解析 C(C++?)文件;
  • 将其嵌入到软件中;
  • 有一个简单的解决方案:)

所以,使用gcc galaxy的解决方案比较复杂,而且很重(实际上,你不关心编译)。

建议:不要试图解析自己。这是一项艰巨的任务!

解决方法:只是解析。使用图书馆来做到这一点。

使用 ANTLR4(不太容易),already-made 语法用于 C/C++:

ANTLR4:http://www.antlr.org/

C++ 语法:https://github.com/antlr/antlr4-cpp

另见: Antlr4 C++ target

希望对您有所帮助!