我正在开发一个项目,作为第一步,需要找到同一程序的两个版本之间的差异。 基本上,我应该能够将Javascript代码解析为AST(抽象语法树),然后在AST级别找到两个版本之间的差异。
比如说,我们有一个javascript程序:
v1.js
function oddNo() {
console.log('It is an odd number');
}
function evenNo() {
console.log('It is an even number');
}
var n= 123;
if (n % 2 == 0) {
evenNo();
}
else {
oddNo();
}
v2.js
function oddNo() {
console.log('It is not a even number');
}
function evenNo() {
console.log('It is an even number');
}
var n= 123;
if (n % 2 == 0) {
evenNo();
}
else {
oddNo();
}
在上面,v2.js对oddNo()函数进行了更改。
因此,我需要找到在下一版本中修改哪些功能的差异,并且还可以在下一版本中添加一些新功能。我需要找到差异并获得修改后的方法。 是否有任何现有的库或工具可以找到它?如果没有关于如何实施它们的任何想法?
提前致谢。