Antlr4:从表达式生成 Lisp s 表达式样式输出
Antlr4: Generating a Lisp s-expression style output from an expression
参考这个link。它展示了如何创建一个 lisp 风格的 s-expression
来自 Antlr3 上的任何中缀表达式。
我正在使用 Antlr4,但它似乎无法正常工作。
有人可以建议我实现它的方法吗?
2x+3x^5
至 (+ (* 2 x) (* 3 (^ x 5)))
重写规则在 ANTLR4 中不再可用,因此您将不得不采取其他方式。
一种可能的方法如下:
- 定义一个 class 层次结构来模拟您的(新)树的实体:这将是您的替代抽象语法树的对象模型;
- 实现一个遍历由 ANTLR4 解析器创建的解析树并生成您的 AST 实例的访问者(或侦听器);
Here有一个这个过程的例子
参考这个link。它展示了如何创建一个 lisp 风格的 s-expression 来自 Antlr3 上的任何中缀表达式。
我正在使用 Antlr4,但它似乎无法正常工作。
有人可以建议我实现它的方法吗?
2x+3x^5
至 (+ (* 2 x) (* 3 (^ x 5)))
重写规则在 ANTLR4 中不再可用,因此您将不得不采取其他方式。 一种可能的方法如下:
- 定义一个 class 层次结构来模拟您的(新)树的实体:这将是您的替代抽象语法树的对象模型;
- 实现一个遍历由 ANTLR4 解析器创建的解析树并生成您的 AST 实例的访问者(或侦听器);
Here有一个这个过程的例子