0

所以,我正在解析 Hayes 调制解调器 AT 命令。不是从文件中读取,而是作为 char * 传递(我使用的是 C)。

1)如果我得到一些我完全不认识的东西会怎样?我该如何处理?2)如果我有类似的东西怎么办

my_token: "cmd 参数="("value_1" | "value_2");

并收到“参数”的无效值?

我看到一些建议让后端程序(在 C 中)处理它,但这对我来说违背了规律。尽早发现问题,是我的座右铭。

有没有办法在词法分析器/解析器规则中捕捉“其他”条件?

提前致谢 ...

4

2 回答 2

1

事情就是这样:你的解析器和词法分析器的全部意义在于如果你输入错误的内容就会崩溃,然后你会抓住这个问题并向用户呈现一个漂亮的错误消息。

于 2009-12-10T10:21:14.263 回答
0

我认为您正在寻找自定义语法错误恢复以嵌入到您的语法中。

编辑

我没有使用 ANTLR 和 C(或单独使用 C)的经验,因此请谨慎遵循此建议!:)

查看页面:http://www.antlr.org/api/C/using.html,也许底部的部分,实现自定义方法是你所追求的。

高温高压

于 2009-12-10T11:20:25.797 回答