改造Jython的源/ ast

时间:2009-09-18 00:44:54

标签: python jython abstract-syntax-tree

我在Jython中遇到了一个问题需要解决。我得到的功能看起来像这样:

ok = whatever1(x, ...)
self.assertTrue("whatever1 failed: "+x...(), ok)

ok = whatever2(x, ...)
self.assertTrue("whatever2 failed: "+x...(), ok)

[ many many lines ] ...

有许多测试看起来像这样,它们主要包含ok = ...测试,但也有其他一些事情要做。我知道哪些函数是可测试的,因为它们只来自一个命名空间(或者我可以留下“ok =”部分)。问题是 - 如何自动转换源,以便我只写:

ok = whatever1(x, ...) # this is transformed
ok = whatever2(x, ...) # this too
something_else(...) # this one isn't

其余是自动生成的吗?

我知道简单和非常 - 有没有更好的方法来解决这个问题? (是的,我知道 - 也许就像monad)我也在看rope图书馆,无法决定......哪种方式最适合选择?我描述的转换是我唯一需要的转换,我不介意创建一个将包含在实际代码中的临时文件。

1 个答案:

答案 0 :(得分:2)

您确定需要AST吗?如果唯一感兴趣的行是以“ok =”开头的行,那么对源文件进行简单的字符串处理就足够了吗?