我已经使用Parboiled library创建了一个聚乙二醇。
我是基于this example设计的。
它工作得很好,但现在我需要实际创建AST。
我的问题是,我如何使用库来做到这一点?
在Google上浏览了一下,并查看了Github上的示例后,我发现您打算使用push、pop、swap等来创建AST,但我很难弄清楚如何使用我的解析器来做这件事。我的解析器与Java解析器非常相似,如果您能帮助我理解它在Java解析器中是如何工作的,我就可以使它适应我的解析器。
发布于 2014-09-09 23:36:08
基本上,PEG解析器保留了一个包含值的堆栈,您可以在匹配输入时推送和弹出值。您将把值(AST节点)推送到堆栈上,当解析完成时,您将从解析器获得AST的根节点。
查看https://github.com/sirthias/parboiled/blob/master/examples-java/src/main/java/org/parboiled/examples/calculators/CalculatorParser4.java作为如何使用推送和弹出的示例。
也检查一下(相当不错!)半沸腾项目的文档。下面是特定于AST创建https://github.com/sirthias/parboiled/wiki/Working-with-the-Value-Stack的部分
https://stackoverflow.com/questions/23452875
复制相似问题