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

时间:2009-11-24 10:54:07

标签: python go code-conversion

我想解析Python源代码,以便尝试从Python到Go的基本源代码转换器。

  • 我应该使用什么模块?
  • 我应该继续吗?
  • 如果我要继续,怎么办?

4 个答案:

答案 0 :(得分:13)

查看language services个软件包,尤其是ast

我的猜测是,如果你还没有完全掌握解析和代码生成技术,那么这将是一个艰难的项目。

祝你好运!

答案 1 :(得分:3)

Boo解决方案

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

看看pyparsing。它包含a complete python parser的示例,但您可能不想这样做。

您希望逐步构建转换器/转换器,因此您希望逐步构建解析器,否则可能会阻塞AST。好的,你可以解析所有内容,只是忽略你不理解的东西,但这不是编译器的好行为。

您可以从解析basic arithmetic开始。

Pyrex解决方案

这类似于Boo解决方案,但更难。让Boo解决方案先行。然后学习生成包装器代码,这样你的Go和python部分可以一起工作。

PyPy解决方案

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

答案 2 :(得分:3)

关于'我应该继续还是更好'的问题:你为什么要首先这样做?

如果这是纯粹的学习练习,那么你不需要问我们是否值得。你想学习,所以就这样吧。

如果它是一个实用的工具,那么我的建议是不要这样做。执行此类转换的工业级工具可能很有用,但我猜你不会走得那么远。考虑到这一点,手动重写Go代码中的Python代码可能会更有成效。

这假设编译为Go有任何实际好处; current testing suggests使用Stackless Python可以获得更好的性能和类似的代码结构。

答案 3 :(得分:2)

Ned Batchelder有一个很好的解析器列表,可能会有所帮助。