Crystal中是否有python ast模块的替代品?

问题描述 投票:0回答:1

[Crystal是否像python的ast模块那样将其内部解析器作为标准库公开?如何解析水晶源代码并获得其AST?

crystal-lang
1个回答
0
投票

是的!实际上,它将整个编译器都放在stdlib中。这样我们就可以访问解析器以获得AST:

require "compiler/crystal/syntax/*"

root = Crystal::Parser.new(%(
class Foo
  def hello
    :world
  end
end)).parse

官方文档不包含Crystal::ASTNode及其子类,您找到的文档是公开了宏语言的文档,因此略有不同。因此,您必须深入源代码以了解如何利用AST。

© www.soinside.com 2019 - 2024. All rights reserved.