我有一个包含大约1200行代码的C源文件。
我使用ANTLR测试平台用ANTLR C grammar解析它。
起初,它给了我一些无法识别的令牌的微不足道的错误。在C源代码中修复它很容易。但是在我修复了所有这些之后,ANTLR测试台刚刚完成而没有任何结果。没有错误。仅使用-tokens
开关:
Picked up _JAVA_OPTIONS: -Djava.net.preferIPv4Stack=true
[@0,40604:40603='<EOF>',<EOF>,1238:0]
然后我尝试了-gui
,它只给了我一张空白图片:
那么,可能出现什么问题?这是ANTLR试验台的问题吗?
答案 0 :(得分:0)
事实证明根本原因低于宏定义:
#define SET_BOOT_OPTION_SUPPORT_KEY_COUNT(a, c) { \
(a) = ((a) & ~EFI_BOOT_OPTION_SUPPORT_COUNT) | (((c) << LowBitSet32 (EFI_BOOT_OPTION_SUPPORT_COUNT)) & EFI_BOOT_OPTION_SUPPORT_COUNT); \
}
删除后,测试台可以输出结果。
在ANTLR无法识别#include
之前,我遇到了类似的问题。在这种情况下,ANTLR报告错误。但在这种情况下,没有报告错误。
我想我必须在完成预处理之后应用C语法 。