问题描述
我在Python项目中使用了几个Hy Lang代码段。 我想知道是否有一种相对简单的方法来获取带有某些python库甚至Hy编译器本身的Hy代码的抽象语法树(我研究了编译器代码,但是我很难了解它。)
我知道Hy会先将所有Hy lang代码转换为python AST,然后再生成该字节码,looking at the compiler没有看到一个函数可以帮助我将Hy代码转换为可以馈入的Hy对象例如,HyASTCompiler。
我希望我可以利用已经构建的东西,而不必使用像ANTLER这样的东西并编写自己的语法。
谢谢!
使用Hy版本0.12和python3
解决方法
我不清楚您是要使用Python ast
对象还是仅使用Hy代码作为数据。后者由read
和read-str
提供。对于前者,目前未提供任何公共接口,但请查看内部函数hy.compiler.hy_compile
的文档字符串。
不过,Hy 0.12很古老,因此您可能需要升级。