代码之家  ›  专栏  ›  技术社区  ›  Mawg says reinstate Monica

动态调用在运行时更新规则

  •  0
  • Mawg says reinstate Monica  · 技术社区  · 15 年前

    发送AT命令时,通常会被\r\n终止,但实际上,这实际上是两个“寄存器变量”s3和s4。

    默认情况下,s3='\r'和s4='\n',但用户可以在运行时使用atsx命令更改这些内容=

    如何在Antlr-Lexer/Parser中处理这个问题?

    每个命令的格式都是[parameters]s3 s4,如果用户更改了s3或s4的值,我该如何处理?

    事先谢谢你的帮助…

    1 回复  |  直到 15 年前
        1
  •  1
  •   Bart Kiers    15 年前

    不,没有这样的选项来动态更改lexer或parser规则afaik。当然,也有一些解决办法,比如在更改寄存器变量时重新创建lexer/parser,但我想这不太好……


    编辑

    马格写道

    正在重新创建lexr&poarser(我猜,只有lexer)-你能在这方面有所了解吗?

    重写原始语法文件(正如您正确提到的,只有lexer规则)并动态重新编译它。见: http://java.sun.com/javase/6/docs/api/javax/tools/JavaCompiler.html