python - 如何构建 Hy lang 片段的 AST
问题描述
我有几个在我的 python 项目中使用的 Hy Lang 代码片段。我想知道是否有一种相对简单的方法可以让我使用一些 python 库或什至 Hy 编译器本身来获取 Hy 代码的抽象语法树(我已经查看了编译器代码,但我很难理解它)。
我知道 Hy 在生成该字节码之前将所有 Hy lang 代码转换为 python AST 并查看编译器 我没有看到一个函数可以帮助我将 Hy 代码转换为我可以提供给 HyASTCompiler 的 Hy 对象。
我希望我可以利用已经构建的东西,而不必使用像 ANTLER 这样的东西并编写自己的语法。
谢谢!
使用 Hy 版本 0.12 和 python3
解决方案
我不清楚您是否想要 Pythonast
对象或只是 Hy 代码作为数据。后者由read
和提供read-str
。对于前者,目前没有提供公共接口,但请查看内部函数的文档字符串hy.compiler.hy_compile
。
不过,Hy 0.12 很古老,因此您可能需要升级。
推荐阅读
- python - 使用 pandas 我们如何制作不同的文本组(来自 PDF 输出)并给他们特定的组 ID?
- meteor - 如何为我的应用程序目录提供正确的权限以运行 docker-compose up?
- cytoscape.js - 在 cytoscape 鼠标悬停时显示和隐藏节点信息
- php - 仅当 laravel 5.2 中的 status = '1' 时才登录用户
- excel - 如何在vba中填写activecell
- asp.net-core - 如何使用 httpClientFactory 配置证书
- javascript - 我可以在目标/特定浏览器选项卡中打开链接吗?
- apache-spark - 何时使用低级 API?
- python - 使用 complexType 节点搜索嵌套的 XSD
- java - 当我运行我的代码时,它在线程“main”java.lang.NoClassDefFoundError: org/opencv/core/Core 中显示错误异常