我正在使用pyPEG为简单语法创建一个解析树。使用列表和元组表示树。这是一个例子:
[('command',
[('directives',
[('directive',
[('name', 'retrieve')]),
('directive',
[('name', 'commit')])]),
('filename',
[('name', 'f30502')])])]
我的问题是此时我该怎么做?我知道很多东西取决于我想要做什么,但我没有找到很多关于消费/使用解析树,只创建它们。有没有人对我可能使用的参考文献有任何指示?
感谢您的帮助。
答案 0 :(得分:2)
CST(具体语法树)很难用于some reasons。因此,它们通常被转换为AST(抽象语法树)以进行进一步处理(同一篇文章中的详细信息)。例如,the Python compiler(将Python源代码转换为Python VM字节码的组件)将CST转换为AST,作为其工作的一部分。
现在,它确实很大程度上取决于你的最终目标。你在解析什么?你想用它做什么?如果您正在重新创建经典编译流程,转换为AST可能是一种很好的方法。否则,您可能会发现CST足够 - 这完全取决于您的需求。
答案 1 :(得分:0)
我们有一个社区委员会来支持围绕pyPEG的此类问题。您可以在此处找到它:https://community.fdik.org/board/show/2/pypeg/
此致, VB。