127得票8回答
解析树和抽象语法树(AST)有什么区别?

它们是编译过程的不同阶段生成的吗?还是只是指称同一件事情的不同名称?

28得票3回答
如何在ParserVisitor中获取行号?

我正在尝试在我的ParserVisitor(访问antlr生成的语法树)中获取行号以获得更具体的错误信息。然而,在这个类中我只有上下文ctx,我可以使用ctx.getText()这样的方式,但无法使用getLine()。有没有方法可以做到这一点? ctx.getPayload() 能在这里使...

18得票1回答
在斯坦福的解析树表示中,标签SBAR是什么意思?

当将原始句子 "After she ate the cake, Emma visited Tony in his room." 输入到Online Stanford Parser 工具中时,它会输出以下语法树表示形式:(ROOT (S (SBAR (IN After) ...

15得票2回答
在C++中表示多次经过的抽象语法树(AST)?

我目前在探索设计一个编译器,该编译器将其AST转换为多个阶段。这个想法是从解析树开始,每个阶段都会转换树,直到生成的AST被优化并且包含树中每个节点所需的所有信息,以便生成中间代码(在本例中为LLVM IR)。对树进行一次遍历可能会显着改变其结构,例如通过operator precedence...

10得票5回答
为简单的数学运算生成语法树

我正在尝试生成一个语法树,用于给定包含简单数学运算符(+,-,*,/和括号)的字符串。给定字符串为“1 + 2 * 3”: 它应该返回类似于这样的数组: ["+", [1, ["*", [2,3] ] ] ] 我写了一个函数,可以将"1 + 2 * 3"转换为[...

10得票1回答
在Scala 2.10的抽象语法树中进行搜索

如何在Scala 2.10 AST中递归搜索元素? 这些树可能是power.trees(code)或mirror.mkToolBox().parseExpr(code)的结果。 编辑。在2.10.0-RC1中,parseExpr已重命名为parse。 我具体想要做的是通过方法名从给定类/对...

8得票2回答
ANTLR v4,JavaLexer和JavaParser返回null作为解析树

我正在使用antlr v4提取Java程序的解析树以进行其他用途。我已经从这个示例开始:ANTLR v4访问者示例 我已经测试了给定链接上的步骤以检查其是否有效,并且一切都顺利进行。 java Run a = 1+2 b = a^2 c = a+b*(a-1) a+b+c ^Z Resul...

8得票4回答
Javascript语法测试案例

我正在创建一个文本编辑器,刚刚编写了高亮算法,使每个语法出现在不同的颜色中,并使用正确的解析树在正确的位置呈现。 我想知道是否有人可以提供测试用例或一系列测试用例的位置,以确保没有问题。测试案例应涵盖Web上使用的所有JavaScript语法,包括边缘情况(即包括语法,如throw,尽管很少...

8得票1回答
使用递归下降分析器既能验证语法又能同时构建解析树,这种做法可行吗?

在使用递归下降解析器检查数据是否符合语法的同时,生成解析树是否可能? 如果可以,我应该使用什么方法来构建解析树呢? 谢谢,Boda Cydo。 注意:我是新手。 (已在SO上提出了几个问题,并且我正在变得更加熟练。)

8得票2回答
从语法中提取标记

我今年一直在使用Perl6解决Advent of Code问题,试图使用语法来解析第3天的输入。 给出这种形式的输入:#1 @ 1,3: 4x4和我创建的这个语法: grammar Claim { token TOP { '#' <id> \s* '@' \s* &...