hey guys!How to use ast convert code1 to code2?
I’ve been given a task that I have pretty much solved myself but there is some small correction that needs to be made and I need a help from someone to point me out of how to merge nodes!
My idea is to deal with ForStatement,find initialization params like ‘var t = 1’, then find the case, but I don’t have a good idea about how to merge nodes,please help me!thanks!
code1:
var a, b, c, d;
for (var t = 1; void 0 !== t;) {
switch (t) {
case 1:
a = 4
t = 2
break;
case 2:
b = 0
t = 3;
break;
case 3:
if (c) {
t = 4
} else {
t = 12;
}
break;
case 4:
t = 5;
break;
case 5:
if (a > b) {
t = 6;
} else {
t = 11;
}
break;
case 6:
t = 7;
break;
case 7:
if (c > 0) {
t = 8
} else {
t = 9
}
break;
case 8:
c = Math.floor(c / (b + 1));
t = 7;
break;
case 9:
t = 10;
break;
case 10:
b++;
t = 5;
break;
case 11:
d = 'test1'
break;
case 12:
d = 'test2'
break;
}
}
code2:
var a, b, c, d;
a = 4;
b = 0;
if (c) {
while (a > b) {
while (c > 0) {
c = Math.floor(c / (b + 1));
}
b++;
}
d = 'test1'
} else {
d = 'test2'
}