使用Parboiled生成AST(Java)

使用Parboiled生成AST(Java),java,parsing,compiler-construction,abstract-syntax-tree,parboiled,Java,Parsing,Compiler Construction,Abstract Syntax Tree,Parboiled,我已经使用for Java创建了一个PEG。 我是根据这本书写的 它工作得很好,但现在我需要实际创建AST 我的问题是如何使用库来实现这一点 在Google上浏览了一会儿,并查看了Github上的示例之后,我发现您打算使用push、pop、swap等创建AST,但我很难弄清楚如何使用我的解析器来实现这一点。我的语法分析器与Java语法分析器非常相似,如果您能帮助我理解它在Java语法分析器中的工作方式,我可以将它改编为我的语法分析器 基本上PEG解析器保持一个包含值的堆栈,您可以在匹配输入时推送

我已经使用for Java创建了一个PEG。
我是根据这本书写的

它工作得很好,但现在我需要实际创建AST

我的问题是如何使用库来实现这一点


在Google上浏览了一会儿,并查看了Github上的示例之后,我发现您打算使用push、pop、swap等创建AST,但我很难弄清楚如何使用我的解析器来实现这一点。我的语法分析器与Java语法分析器非常相似,如果您能帮助我理解它在Java语法分析器中的工作方式,我可以将它改编为我的语法分析器

基本上PEG解析器保持一个包含值的堆栈,您可以在匹配输入时推送和弹出值。您将在堆栈上推送值(AST节点),解析完成后,您将从解析器获得AST的根节点

检查如何使用推送和弹出作为示例

还可以查看Parbouch项目的文档(非常好)。下面是AST创建的特定部分