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

时间:2016-01-14 05:06:12

标签: java c regex macros

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

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

所以,如果我有

IAMAMACRO(Apple_,Variable)

我需要在解析后得到值Apple_Variable,而不是Apple_。

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

1 个答案:

答案 0 :(得分:0)

据了解,您想要:

  • 读取,然后解析C(C ++?)文件;
  • 将其嵌入软件中;
  • 拥有 easy 解决方案:)

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

建议:不要试图解析自己。这是一项很大的工作!

解决方案:只需解析。使用库来做到这一点。

使用ANTLR4(不那么容易),使用已经制作的C / C ++语法:

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

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

另见: Antlr4 C++ target

希望它有所帮助!