首页 > 解决方案 > 如何构建 Hy lang 片段的 AST

问题描述

我有几个在我的 python 项目中使用的 Hy Lang 代码片段。我想知道是否有一种相对简单的方法可以让我使用一些 python 库或什至 Hy 编译器本身来获取 Hy 代码的抽象语法树(我已经查看了编译器代码,但我很难理解它)。

我知道 Hy 在生成该字节码之前将所有 Hy lang 代码转换为 python AST 并查看编译器 我没有看到一个函数可以帮助我将 Hy 代码转换为我可以提供给 HyASTCompiler 的 Hy 对象。

我希望我可以利用已经构建的东西,而不必使用像 ANTLER 这样的东西并编写自己的语法。

谢谢!

使用 Hy 版本 0.12 和 python3

标签: pythonparsingcompiler-constructionabstract-syntax-treehy

解决方案


我不清楚您是否想要 Pythonast对象或只是 Hy 代码作为数据。后者由read和提供read-str。对于前者,目前没有提供公共接口,但请查看内部函数的文档字符串hy.compiler.hy_compile

不过,Hy 0.12 很古老,因此您可能需要升级。


推荐阅读