微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在ANTLR4中实现CommonTree类

如何解决如何在ANTLR4中实现CommonTree类

我要实现的是:使用ANTLR4在JavaScript中处理注释

现在我正在用antlr4js编码解释C脚本,我想评论内容。 例如:

/* this is my function */
int add(int a,int b);

然后,我要获取字符串"this is my function",并附加到add()

我在Google上搜索后发现可以使用hidden channel。 这是我引用的页面

This is Stuff: Tackling Comments in ANTLR Compiler

我可以编写词法后收集注释的代码(在上一页中描述了收集隐藏的令牌),但是我无法按照下一节与AST合并令牌的方法进行操作,因为我找不到CommonTree类是什么基类。

问题点

要编码的图像。(在上一页中)

public class HiddenTokenAwareTree extends CommonTree {

  private List<Token> preceding = new LinkedList<Token>();
  private List<Token> orphans = new LinkedList<Token>();
  private List<Token> following = new LinkedList<Token>();

  // ... constructors,getters and setters follow

}

这是Java代码,因此在以javascript实现时,代码将如下所示:

var CommonTree = require("antlr4/PATH/TO/COMMONTREE").CommonTree;

class HiddenTokenAwareTree{

}

我找不到这个PATH/TO/COMMONTREE

我的项目设置

节点:6.14.6 $ npm list --depth = 0 ├──antlr4@4.8.0 ├──webpack@4.44.1 └──webpack-cli@3.3.12 我通过$ npm i antlr4安装了antlr4。

感谢您的任何建议!

解决方法

您要链接的教程是针对ANTLR v3的,ANTLR v4无法定义自定义树适配器。

您可以做的是创建一个visitorlistener并在解析树的某些节点上检索隐藏的令牌。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。