问题标签 [parse-tree]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
767 浏览

antlr - 如何修改 ANTLR4 ParseTree?

我想SytaxTree用一些前缀变量的方式修改Java prefix(使用ANTLR4)

示例myVar++->prefix.myVar++

假设我的函数获取SyntaxTree并返回 modified SyntaxTree,我不能使用 simple TokenStreamRewriter,因为它只产生String,不是吗?还给出了Java8 语法,不得修改。

我需要修改树本身(如果可能的话)。

我的骨架就像:(在 Scala 中,但与 Java 几乎相同)

我在实施// TODO. 我尝试使用但没有成功addChildgetParent抛出空指针。

我想我根本不了解构造/修改,ParseTree因为我没有找到合适的来源。

你能给我一个提示或一些来源吗?

根据github 问题类似问题,它似乎不受支持 - 您会推荐哪些其他解决方案?我考虑TokenStreamRewriter然后getText再次解析(进入 new ParseTree),但这可能非常无效(我将不止一次添加前缀)。

0 投票
1 回答
769 浏览

interpreter - 如何在 ANTLRWorks 2 中获取解析树?

我目前正在使用 ANTLRWorks 2。我不知道如何解释其中的示例。在 ANTLRWorks-1.5.2 中有一个解释器选项卡,您可以粘贴您的示例。ANTLRWorks 2 中有类似的东西吗?如何获取输入解析树?输入是否必须在特定文件中?顺便说一句,我无法通过在 TestRig 中使用 Run->Run 并上传任何输入文件来获得任何结果。

0 投票
4 回答
4570 浏览

python - 来自 ANTLR 解析树的 Python AST?

我找到了一个ANTLRv4 Python3 grammer,但它生成了一个解析树,它通常有很多无用的节点。

我正在寻找一个已知的包来从该解析树中获取 Python AST。

这样的事情存在吗?

编辑:关于使用 Pythonast包的说明:我的项目是用 Java 编写的,我需要解析 Python 文件。

编辑 2: 'AST' 我的意思是http://docs.python.org/2/library/ast.html#abstract-grammar,而'解析树' 我的意思是http://docs.python.org/2 /reference/grammar.html

0 投票
1 回答
87 浏览

factory - 以编程方式将 eObject 添加到解析树

这是我的语法快照:

我的要求是有一个预定义的排序,我们称之为Loc。用户不需要定义这种排序,因此当使用Loc类型定义变量时,Xtext 应该自动将其引用到我预定义的排序。如何启动程序以便在开始时生成一个 Sort 实例?我已经在我的验证器类中使用了工厂方法“CreateSort”,但没有用。

0 投票
1 回答
12774 浏览

python - NLTK 树数据结构,找到一个节点,它是父节点还是子节点

我正在使用 nltk 的 Tree 数据结构来处理 parsetree 字符串。

然而,数据结构似乎是有限的。是否可以通过它的字符串值获取节点,然后导航到顶部或底部?

例如,假设您想获取字符串值为“nice”的节点,然后查看它的父节点、子节点等。是否可以通过 nltk 的树实现?

0 投票
2 回答
162 浏览

ambiguity - 如何“沿着” Marpa 解析森林而不是“通过”它的解析树进行迭代?

假设我有一个很好的模棱两可的 Marpa 语法和一个很好的模棱两可的输入字符串。

我可以用 Marpa 解析字符串并最终得到一个解析森林。我什至可以遍历森林中的每个解析树。

但是我怎样才能“沿着”解析森林进行迭代呢?

描述我的意思:

解析森林是一种图,它可以具有备选方案分离的节点,以及备选方案重新组合成“主流”的节点。

假设这些是一个解析森林的替代解析树:

  • A B1 C
  • A B2 C
  • A B3 B4 C

有一个主流A......C但是一个模棱两可的B部分。

当然,在现实世界的解析中,分支可能有许多级别的分支,并且可能存在不重新加入单个主流的流。但总的来说,两种或多种解释会有很多共同的部分。

可以使用哪些方法沿着明确和不明确的节点链进行迭代?

事实上我可以输出整个图表吗?

0 投票
2 回答
1153 浏览

antlr4 - 在 ANTLR v4 中构建自定义解析树

问题:在 ANTLR v4 中是否有一种(更直接的)在解析时构建自定义解析树的方法?

我想人们可以遍历并重写自动构建的树,但我想知道我们是否仍然可以在解析时进行手动树构建(或调整)(类似于 ANTLR v3 和 ealier)。这个想法是,根据一个人如何编写他/她的语法,我们在 ANTLR 构建的树中得到了很多无用的节点,虽然我知道你可以只覆盖你感兴趣的侦听器方法,但仍然需要检查并跳过无用的令牌类型等。

0 投票
1 回答
1188 浏览

parsing - SLR(1) 和 LALR(1),关于 Parse Table 和 Reduced State

几天前我问了一个问题 SLR(1) 和 LALR(1) 和 Reduce,我做了很多搜索并联系了一些教授,但我无法总结第二个问题的解决方案是对还是错。我们有 2 个不同年份的入学考试题。

两题是选择题。在 2010 年的问题中,我们有:

1) 我们有一个 SLR(1) 语法 G,如下所示。我们使用 SLR(1) 解析器生成器并为 G 生成解析表 S。我们使用 LALR(1) 解析器生成器并为 G 生成解析表 L。

问题设计者选择解决方案为:

两年后,问题设计师提出:

2) 假设 T1、T2 是用 SLR(1) 和 LALR(1) 为任意文法 G 创建的。如果 G 是 SLR(1) 文法,以下哪项是正确的?

a) T1 和 T2 没有任何区别。

b) T1 中非错误条目的总数低于 T2

c) T1 中的错误条目总数低于 T2

解决方案:

我的问题是:

有人在上一篇文章中回答说两个解决方案是正确的,但没有很好地描述它。

无论如何,我在等待一位专家让我摆脱困惑!

0 投票
1 回答
3050 浏览

python - 从解析树中提取乔姆斯基范式语法

我正在尝试从其解析树中提取乔姆斯基范式(CNF) - 句子的语法产生:

我将整棵树放入一个名为 S 的字符串中,然后:

输出是

但有些作品(7 号和 8 号)似乎不是 CNF!问题是什么?

0 投票
2 回答
962 浏览

syntax - 语法导向定义(计算括号对的数量)

给定以下语法,我必须找到适当的语义动作来计算语言的每个字符串,字符串中括号对的数量。

S -> (L)

S -> 一个

L -> L, S

大号->小号

通常,为了执行这种类型的练习,我会构建一个示例字符串的派生树,然后添加属性。之后更容易找到语义规则。

所以我为字符串“ ((a, (a), a)) ”构建了这个派生树,但是我无法继续进行练习的解析。如何计算括号对?我不能那样做...

在此处输入图像描述

我不想要解决方案,但我希望有人帮助我在这些情况下进行推理。

(对不起那棵坏树……)