我想对 C 文件进行简单分析(例如,如果您foo
使用作为参数调用宏INT_TYPE
,然后将响应转换为int*
),我不想预处理文件,我只想解析它(例如,我'会有正确的行号)。
即,我想从
#include <a.h>
#define FOO(f)
int f() {FOO(1);}
令牌列表,例如
<include_directive value="a.h"/>
<macro name="FOO"><param name="f"/><result/></macro>
<function name="f">
<return>int</return>
<body>
<macro_call name="FOO"><param>1</param></macro_call>
</body>
</function>
无需设置包含路径等。
是否有任何预先存在的解析器可以做到这一点?我知道的所有解析器都假设 C 已经过预处理。我想访问宏和实际包含指令。