crystal-lang - Crystal中的python ast模块有什么替代品吗?
问题描述
Crystal 是否像 python 使用它的ast模块一样将其内部解析器公开为标准库?如何解析水晶源代码并获取它的AST?
解决方案
是的!事实上,它在 stdlib 中提供了整个编译器。所以我们可以访问解析器来获取 AST:
require "compiler/crystal/syntax/*"
root = Crystal::Parser.new(%(
class Foo
def hello
:world
end
end)).parse
官方文档不包括Crystal::ASTNode
及其子类,您找到的文档是暴露宏语言的文档,因此略有不同。因此,您必须深入研究源代码以了解如何使用 AST。
推荐阅读
- c - 确定存储指向其他不同维度数组的指针的数组的类型
- delphi - 删除部署文件 - Delphi Rio mobile
- python - GnuRadio:在子目录中组织 OOT 模块 python 代码
- html - HTML
没有溢出到换行符
- redis - 每个实例的数据库数
- python - Is there way to invert only specific pixels with Pillow?
- apache-spark - Nested json and dataframe - retrieving data from array
- git - Git fetch 和 git pull 没有从远程仓库复制文件
- javascript - Passing props back everytime a from is submitted in React
- python - 分离重复列值