为了账号安全,请及时绑定邮箱和手机立即绑定

如何使用python解析* .py文件?

如何使用python解析* .py文件?

Go
慕运维8079593 2021-03-30 13:15:30
我想解析Python源代码,以尝试制作从Python到Go的基本源代码转换器。我应该使用哪个模块?我应该继续吗?如果我应该继续,该怎么办?
查看完整描述

3 回答

?
慕尼黑5688855

TA贡献1848条经验 获得超2个赞

看一下语言服务包,尤其是ast。

我的猜测是,如果您对解析和代码生成技术都没有足够的了解,那么这将是一个困难的项目。

祝你好运!


查看完整回答
反对 回复 2021-04-26
?
临摹微笑

TA贡献1982条经验 获得超2个赞

至于“我应该继续还是最好不要”的问题:为什么首先要这样做?

如果这是纯粹的学习活动,那么您不需要询问我们是否值得。您想学习,所以继续前进。

如果打算将其用作实用工具,那么我的建议是不要这样做。具有行业实力的工具来执行此类转换可能会很有用,但我想您不会走那么远。考虑到这一点,在Go中手动重写Python代码可能更富有成果。

假定对Go进行编译有任何真正的好处;当前的测试表明,使用Stackless Python可以获得更好的性能和类似的代码结构。


查看完整回答
反对 回复 2021-04-26
?
ITMISS

TA贡献1871条经验 获得超8个赞

Boo解决方案

您是否正在尝试制作一种可以编译成Go的类似python的语言?这似乎是最明智的做法,因为您将想要做特定于Go的事情(以利用Go功能)。

看看pyparsing。它包括一个完整的python解析器的示例,但您可能不想这样做。

您想增量地构建转换器/转换器,所以要增量地构建解析器,否则可能会阻塞AST。好的,您可以解析所有内容,而忽略不了解的内容,但这不是编译器的好行为。

您可以从解析基本算术开始。

派热克斯解决方案

这类似于Boo解决方案,但难度更大。首先使Boo解决方案生效。然后学习生成包装器代码,以便您的Go和python部分可以一起工作。

PyPy解决方案

完整的Python-Go编译器?祝你好运。您将需要它。


查看完整回答
反对 回复 2021-04-26
  • 3 回答
  • 0 关注
  • 309 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信