gpt4 book ai didi

javascript - Antlr4-JS actions in grammar : how to access tokens and define funcs ?(直接在java中,不在JS中)

转载 作者:行者123 更新时间:2023-12-04 18:03:25 25 4
gpt4 key购买 nike

我正在尝试适应 JS 目标 Expr.g4 of the book .
在这个例子中, Action 直接在语法中。它们包括在规则中调用的@parser::members 中定义的实用函数。

该示例在 Java 中运行良好,但在其 JS 翻译中我有 2 个问题:

  • 通过 Action 规则使 Action 函数可见
  • 获取函数中识别的标记。

我终于设法得到了这个有效的公式:

@parser::members {

myeval = function(left, op, right) {
switch ( op ) {
case Expr_jsParser.MUL : return left * right;
case Expr_jsParser.DIV : return left / right;
case Expr_jsParser.ADD : return left + right;
case Expr_jsParser.SUB : return left - right;
}
return 0;
};
}

(myeval是 Action 函数,MUL、DIV等是文法标记,Expr_jsParser是Antlr生成的类)
我很确定有一种更简洁的方法可以做到这一点,不是吗?

最佳答案

Eric Vergnaud(Antlr 的 JS 专家)告诉我这是常规行为。简单地说,Java 接受跳过 Expr_jsParser 前缀,而 JS 不接受。

关于javascript - Antlr4-JS actions in grammar : how to access tokens and define funcs ?(直接在java中,不在JS中),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31296258/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com