当前位置: 首页 > 知识库问答 >
问题:

使用ANTLR4生成的访问者生成AST

慕迪
2023-03-14
  1. 访问者需要一个用作所有visit*函数的返回类型的类型。如果我需要生成一个AST,我应该使用什么返回类型?ANTLR3使用了commontree 对象。
  2. 当输入访问*节点时,我可以创建树的一个节点,但应该如何跟踪它的父节点?
  3. 关于如何将树重写规则转换为生成AST节点的方法,是否有任何示例?如果不是,是否可以为下面的规则提供一个示例?

下面是(3)的规则:

ctor_initializer: '::'? identifier '(' expr? ')' -> ^(CTOR_INITIALIZER^(INITIALIZER_ID '::'? identifier) ^(CTOR_EXPR expr?) );

共有1个答案

东门阳飇
2023-03-14

从习惯上讲,Antlr4创建并支持解析树的使用。不直接支持创建和修改转换。

这里总结了一些促使人们更喜欢解析树而不是转换的因素。

Antlr4不排除构造强制转换--结构可以以所需的任何方式定义。一些例子在这里和这里。

 类似资料:
  • 我一直在尝试使用简单的REST客户端以及Mozilla的REST插件。我收到“HTTP/1.1 401未授权”响应,正文中带有“{”error:“unauthorized_client”、“error_description”:“客户端未授权”}。 我已经成功获取了auth码,下面是访问令牌的POST请求,(范围r_fullprofile) https://www.linkedin.com/uas

  • 问题内容: 我目前正在尝试在Antlr4访问者的帮助下开发JavaScript编译器。我已经用Java实现了这一点,但无法弄清楚如何用JavaScript做到这一点。也许有人可以回答我几个问题? 1:在Java中,有一个Visitor.visit函数。如果我说得对,那么使用Javascript是不可能的。有没有解决的办法? 2:我的Javascript访问者获得了所有生成的访问函数,但是当我使用c

  • 问题内容: 我使用CSS 和属性生成标题和图的编号: 这个(假定合适的浏览器)在任何图像之后都带有漂亮的标签“图1.1”,“图1.2”,依此类推。 问题: 如何从Javascript访问此内容?现在的问题是双重在于我想访问 任一 特定计数器的当前值(在某一DOM节点) 或 所述CSS生成的内容的值(在某一DOM节点) 或 ,很明显,这两个信息。 背景: 我想在链接后面附加指向数字的适当数字,如下所

  • 我正在使用Codename One,试图在我的应用程序中提供一种方式,通过本机接口访问设备mfg名称和型号。我看了教程,它似乎很容易,但是当我右键单击界面并选择“Generate Native Access”时,我得到了一个。我尝试了clean/compile,但仍然得到了错误。有人能提供任何关于这可能是什么的信息吗?以下是完整的堆栈跟踪: IllegalName:com/tsi/gpflow/n

  • 当我尝试使用以下命令生成访问令牌时: 它抛出的错误为: {“error_description”:“缺少必需的参数,包括无效的参数值,参数多次。:无法检索访问令牌:appId或重定向uri与授权码不匹配或授权码过期”,“error”:“invalid_request”}。 你能在这个问题上指导我吗?

  • 我必须将一个遗留的身份验证系统移到Keycloak,并且我不能更改客户端上的实际工作流。因此,我需要用我的api(在node.js中)提供一个用户创建和登录系统,该系统反过来代表用户从Keycloak创建和获取访问令牌。 我能够创建一个用户,但我无法找到为该用户生成访问令牌的方法。我找到的唯一解决办法是创建一个用户并设置一个随机密码,然后要求授予提供用户名和密码的用户,但这意味着我必须在自己的一侧