【问题标题】:What do I do with a Concrete Syntax Tree?我如何处理具体语法树?
【发布时间】:2010-02-03 02:50:21
【问题描述】:

我正在使用pyPEG 为简单语法创建解析树。树使用列表和元组表示。这是一个例子:

[('command',
  [('directives',
    [('directive',
      [('name', 'retrieve')]),
     ('directive',
      [('name', 'commit')])]),
   ('filename',
    [('name', 'f30502')])])]

我的问题是我现在该怎么处理它?我知道很多取决于我想要做什么,但我找不到太多关于使用/使用解析树的信息,只能创建它们。有没有人指点我可能使用的参考资料?

感谢您的帮助。

【问题讨论】:

    标签: python parsing concrete-syntax-tree


    【解决方案1】:

    对于some reasons,CST(具体语法树)很难使用。因此,它们通常被转换为 AST(抽象语法树)以进行进一步处理(同一篇文章中的详细信息)。例如,the Python compiler(将 Python 源代码转换为 Python VM 字节码的组件)将 CST 转换为 AST,作为其工作的一部分。

    现在,它确实在很大程度上取决于您的最终目标。你在解析什么?你想用它做什么?如果您要重新创建经典编译流程,则转换为 AST 可能是一个不错的方法。否则,您可能会发现 CST 已经足够了 - 这完全取决于您的需要。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2010-12-25
      • 1970-01-01
      • 1970-01-01
      • 2015-12-24
      • 2020-10-17
      • 2011-10-26
      • 2019-10-26
      相关资源
      最近更新 更多