Crystal中有没有python ast模块的替代方案



Crystal是否将其内部解析器公开为标准库,就像python对其ast模块所做的那样?如何解析crystal源代码并获得其AST?

是!事实上,它在stdlib中提供了整个编译器。因此,我们可以访问解析器来获得AST:

require "compiler/crystal/syntax/*"
root = Crystal::Parser.new(%(
class Foo
def hello
:world
end
end)).parse

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

相关内容

最新更新