问题标签 [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.
antlr - 如何修改 ANTLR4 ParseTree?
我想SytaxTree
用一些前缀变量的方式修改Java prefix
(使用ANTLR4)
示例myVar++
->prefix.myVar++
假设我的函数获取SyntaxTree
并返回 modified SyntaxTree
,我不能使用 simple TokenStreamRewriter
,因为它只产生String
,不是吗?还给出了Java8 语法,不得修改。
我需要修改树本身(如果可能的话)。
我的骨架就像:(在 Scala 中,但与 Java 几乎相同)
我在实施// TODO
. 我尝试使用但没有成功addChild
并getParent
抛出空指针。
我想我根本不了解构造/修改,ParseTree
因为我没有找到合适的来源。
你能给我一个提示或一些来源吗?
根据github 问题和类似问题,它似乎不受支持 - 您会推荐哪些其他解决方案?我考虑TokenStreamRewriter
然后getText
再次解析(进入 new ParseTree
),但这可能非常无效(我将不止一次添加前缀)。
interpreter - 如何在 ANTLRWorks 2 中获取解析树?
我目前正在使用 ANTLRWorks 2。我不知道如何解释其中的示例。在 ANTLRWorks-1.5.2 中有一个解释器选项卡,您可以粘贴您的示例。ANTLRWorks 2 中有类似的东西吗?如何获取输入解析树?输入是否必须在特定文件中?顺便说一句,我无法通过在 TestRig 中使用 Run->Run 并上传任何输入文件来获得任何结果。
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。
factory - 以编程方式将 eObject 添加到解析树
这是我的语法快照:
我的要求是有一个预定义的排序,我们称之为Loc。用户不需要定义这种排序,因此当使用Loc类型定义变量时,Xtext 应该自动将其引用到我预定义的排序。如何启动程序以便在开始时生成一个 Sort 实例?我已经在我的验证器类中使用了工厂方法“CreateSort”,但没有用。
python - NLTK 树数据结构,找到一个节点,它是父节点还是子节点
我正在使用 nltk 的 Tree 数据结构来处理 parsetree 字符串。
然而,数据结构似乎是有限的。是否可以通过它的字符串值获取节点,然后导航到顶部或底部?
例如,假设您想获取字符串值为“nice”的节点,然后查看它的父节点、子节点等。是否可以通过 nltk 的树实现?
ambiguity - 如何“沿着” Marpa 解析森林而不是“通过”它的解析树进行迭代?
假设我有一个很好的模棱两可的 Marpa 语法和一个很好的模棱两可的输入字符串。
我可以用 Marpa 解析字符串并最终得到一个解析森林。我什至可以遍历森林中的每个解析树。
但是我怎样才能“沿着”解析森林进行迭代呢?
描述我的意思:
解析森林是一种图,它可以具有备选方案分离的节点,以及备选方案重新组合成“主流”的节点。
假设这些是一个解析森林的替代解析树:
A B1 C
A B2 C
A B3 B4 C
有一个主流A
......C
但是一个模棱两可的B
部分。
当然,在现实世界的解析中,分支可能有许多级别的分支,并且可能存在不重新加入单个主流的流。但总的来说,两种或多种解释会有很多共同的部分。
可以使用哪些方法沿着明确和不明确的节点链进行迭代?
事实上我可以输出整个图表吗?
antlr4 - 在 ANTLR v4 中构建自定义解析树
问题:在 ANTLR v4 中是否有一种(更直接的)在解析时构建自定义解析树的方法?
我想人们可以遍历并重写自动构建的树,但我想知道我们是否仍然可以在解析时进行手动树构建(或调整)(类似于 ANTLR v3 和 ealier)。这个想法是,根据一个人如何编写他/她的语法,我们在 ANTLR 构建的树中得到了很多无用的节点,虽然我知道你可以只覆盖你感兴趣的侦听器方法,但仍然需要检查并跳过无用的令牌类型等。
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
解决方案:
我的问题是:
有人在上一篇文章中回答说两个解决方案是正确的,但没有很好地描述它。
无论如何,我在等待一位专家让我摆脱困惑!
python - 从解析树中提取乔姆斯基范式语法
我正在尝试从其解析树中提取乔姆斯基范式(CNF) - 句子的语法产生:
我将整棵树放入一个名为 S 的字符串中,然后:
输出是
但有些作品(7 号和 8 号)似乎不是 CNF!问题是什么?
syntax - 语法导向定义(计算括号对的数量)
给定以下语法,我必须找到适当的语义动作来计算语言的每个字符串,字符串中括号对的数量。
S -> (L)
S -> 一个
L -> L, S
大号->小号
通常,为了执行这种类型的练习,我会构建一个示例字符串的派生树,然后添加属性。之后更容易找到语义规则。
所以我为字符串“ ((a, (a), a)) ”构建了这个派生树,但是我无法继续进行练习的解析。如何计算括号对?我不能那样做...
我不想要解决方案,但我希望有人帮助我在这些情况下进行推理。
(对不起那棵坏树……)