为什么ANTLR测试台没有输出,只是跳到最后?

时间:2018-02-28 06:26:27

标签: antlr antlr4

我有一个包含大约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,它只给了我一张空白图片:

enter image description here

那么,可能出现什么问题?这是ANTLR试验台的问题吗?

1 个答案:

答案 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语法