Antlr4:从表达式生成Lisp s表达式样式的输出



参考此链接。它展示了如何创建一个lisp风格的s表达式从Antlr3上的任意中缀表达式。

我正在使用Antlr4,它似乎不起作用。

谁能给我建议一些实现它的方法?

2x+3x^5(+ (* 2 x) (* 3 (^ x 5)))

重写规则在ANTLR4中不再可用,因此您将不得不采取其他方式。一种可能的方法如下:

  1. 定义一个类层次结构来建模你的(新)树的实体:这将是你的替代抽象语法树的对象模型;
  2. 实现一个访问者(或监听器),它遍历由ANTLR4解析器创建的解析树,并生成AST的一个实例;

这里有一个这个过程的例子

最新更新