使用 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
希望对您有所帮助!
我正在尝试解析一个 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
希望对您有所帮助!