使用Rascal进行python源文件分析和转换

时间:2016-08-01 10:21:08

标签: python callstack rascal

我想扫描python项目中的所有项目文件,识别作为某种类型的子类的对象的所有实例,然后: 1.将“yield”关键字添加到对象实例化中 2.识别该对象创建的所有调用堆栈,并为该调用堆栈中的所有函数添加一个装饰器。

是否可以使用Rascal?

1 个答案:

答案 0 :(得分:1)

当您将Python源代码表示为树(解析树或抽象语法树)时 可以将其转换为Rascal数据类型并使用Rascal 进一步处理。这可以通过使用和连接现有的Python解析器来生成Rascal来实现 表示您的Python程序。这可以简单地完成 以Rascal可以读取的格式转储解析树。

为什么这个复杂的解决方案:因为内置的解析器 Rascal的生成器还没有很好地解析 缩进敏感语言,如Python。