0

发送 AT 命令时,它通常由 \r\n 终止,但实际上,它们实际上是两个“寄存器变量”S3 和 S4。

默认情况下 S3=='\r' 和 S4=='\n',但用户可以在运行时使用命令 ATSx= 更改它们

如何在我的 Antlr 词法分析器/解析器中处理这个问题?

每个命令的格式为 AT[parameters]S3S4,如果用户更改 S3 或 S4 的值,我该如何处理?

在此先感谢您的帮助...

4

1 回答 1

1

不,没有这样的选项可以动态更改词法分析器或解析器规则 AFAIK。当然,可能有一些变通方法,例如在更改寄存器变量时重新创建词法分析器/解析器,但它不会很漂亮,我猜......


编辑

麻格写道

重新创建 lexr 和 poarser(好吧,我猜只有 lexer)——你能对此进行分析吗?

重写原始语法文件(只有词法分析器规则,正如您正确提到的那样)并即时重新编译它。请参阅:http: //java.sun.com/javase/6/docs/api/javax/tools/JavaCompiler.html

于 2009-12-08T20:31:17.973 回答