我想生成 C 代码。我不会一次一行地读取输入文件(例如,编译器可能会这样做)。相反,我将在用户输入到达时对其进行解析,一次一行。
我更喜欢检测和处理词法分析器/解析器中的错误输入,例如
/* lexer tokens */
foo : "FOO";
bar : "BAR";
baz : "BAZ";
/* grammar*/
grammar : foo "=" BAZ
| foo "=" BAR
| <some non-existent Antrl-else> : {printf(stderr, "bad input\n");}
;
好的,如果我不能在词法分析器/解析器中捕获它,我似乎需要使用
displayRecognitionError()
但是怎么样??任何人都可以指出一个非常简单的示例,该示例生成 C 代码并显示对无效输入的一些错误处理?
谢谢!
好的,赏金,yippee!
但仅适用于真实、有效的答案,以及真实、有效的代码。没有 wxample 就没有“使用方法 X()”。
最佳答案
您最有可能寻找的是 displayRecognitionError()
功能。该函数在您感兴趣的情况下被调用,并且是 C 运行时的一部分。
如果您想查看如何使用此功能的示例,请查看 this mailing list post .尽管此代码混合了 C 和 C++,但您应该能够从中计算出您需要的内容。
关于antlr - 在生成 C 代码时寻求非常简单的 ANTLR 错误处理示例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2003705/