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

python source file analysis and transformation using Rascal

我想扫描 python 项目中的所有项目文件,识别属于特定类型子类的对象的所有实例化,然后: 1.在对象实例化中添加"yield"关键字 2. 识别该对象创建的所有调用堆栈,并为该调用堆栈中的所有函数添加装饰器。

使用 Rascal 可行吗?

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

为什么采用这种复杂的解决方案:因为内置的解析器 Rascal 的生成器(还)没有很好的解析能力 缩进敏感的语言,如 Python.