当发送AT命令时,它通常由\ r \ n终止,但事实上,这些实际上是两个'寄存器变量'S3和S4。
默认情况下,S3 =='\ r'和S4 =='\ n',但用户可以使用命令ATSx =
在运行时更改这些内容如何在我的Antlr词法分析器/解析器中处理它?</ p>
每个命令的格式为AT [参数] S3S4,如果用户更改S3或S4的值,我该如何处理?
提前感谢您的帮助......
答案 0 :(得分:1)
不,没有动态更改词法分析器或解析器规则AFAIK的选项。当然,有一些解决办法可能就像在更改寄存器变量时重新创建词法分析器/解析器一样,但是它不会很漂亮,我猜......
修改强>
mawg写道
重新创建lexr&amp; poarser(好吧,只有词法分析器,我猜) - 你能解决这个问题吗?
重写原始语法文件(正如您正确提到的那样只有词法分析器规则)并在运行时重新编译它。请参阅:http://java.sun.com/javase/6/docs/api/javax/tools/JavaCompiler.html