2012-03-25 107 views
0

我正在考虑尝试将Scons(Python)脚本转换为另一个构建系统,但想知道是否有可用于查询Scons/Python脚本的Python分析库?“分析”Python语言以剖析Scons构建脚本?

我(可能)之后的事情是沿着Java的反射机制的事情,事实上,如果这可以通过说Jython/Java,在Java中编码,这对我来说最适合作为Java开发Python中没有真正的背景)。

我需要做的是为脚本中的某些命名类类型和方法提取变量assigment值等,以便我可以将它们转换为我的新输出格式。

任何想法?

感谢

丰富

+1

你的问题不清楚 - 请展开“提取某些命名类类型和方法的变量赋值等。”你想做什么?你能举一个例子吗(例如,一些示例代码和你想要的输出类型?)以及你将它移植到哪个构建系统? – 2012-03-25 23:27:28

回答

0

如果当前scons的文件是非常有规律的和一致的可能更容易做一些“愚蠢”的标准文本编辑工具。如果你想变得更聪明,你应该注意到scons本身就是一个Python程序,它会加载你的构建文件,这也是Python。所以你可以制作自己的“特殊”版本的scons,它实现了你的构建脚本使用的功能(添加程序,库,等等)。然后你可以在你的“假”scons程序中运行你的构建脚本,让你的函数以适合你的新构建系统的格式转储它们的参数。

换句话说,不要在完全分析Python语法方面考虑问题 - 意识到您可以像Python代码一样运行构建脚本并劫持他们的行为。我敢肯定,说起来容易做起来难。

0

我怀疑这是迁移scons的最佳工具,但python的inspect模块提供了一些反射功能。其余部分,您可以简单地在实时类和对象中插入内容:Python有一些数据隐藏,但不强制访问限制。