# Iter 3 Part 2 ## Source-Query pair 6 ### Testing target: - Next* clause ### SOURCE: iter3-test2.txt ```javascript= procedure First { read x; 1 read z; 2 call Second; 3 } procedure Second { x = 0; 4 i = 5; 5 while ((! (d<=j)) || ((6<d) && ((x>Third) && (2<=0)))) { 6 x = x + 2 * y; 7 call Third; 8 while ((i!=i) || (! (2>d))) { 9 if (x >= y) then { 10 read x; 11 v = 5; 12 } else { y = x * z + 10 * x; 13 print Third; 14 read First; 15 } print x; 16 z = x % 1; 17 } i = i - 1; 18 } if (x == 1) then { 19 while (x < 0) { 20 print x; 21 } if (!(z == 2)) then { 22 print y; 23 } else { i = (a / (26)); 24 } x = x+1; 25 } else { z = 1; 26 while (x < 0) { 27 print x; 28 } if (!(z == 2)) then { 29 print y; 30 } else { i = (a / (26)); 31 } } z = z + x + i; 32 y = z + 2; 33 } procedure Third { z = 5; 34 v = z; 35 print v; 36 if (you == me) then { 37 while (aa>=aa) { 38 while (bb>=bb) { 39 read y; 40 } } } else { print v; 41 } } ``` ### QUERIES: iter3-test2.txt ```javascript= 1 - Next* stmt s1, s2; assign a1, a2; call c1, c2; print p1, p2; read r1, r2; procedure pr1, pr2; while w1, w2; if if1, if2; prog_line pl1, pl2; variable v1, v2; constant const1, const2; Select s1 such that Next*(s1, a1) 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18 ,19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 34 5000 2 - Next* itself stmt s1, s2; assign a1, a2; call c1, c2; print p1, p2; read r1, r2; procedure pr1, pr2; while w1, w2; if if1, if2; prog_line pl1, pl2; variable v1, v2; constant const1, const2; Select a1 such that Next*(a1, a1) 7, 12, 13, 17, 18 5000 3 - Next* invalid stmt s1, s2; assign a1, a2; call c1, c2; print p1, p2; read r1, r2; procedure pr1, pr2; while w1, w2; if if1, if2; prog_line pl1, pl2; variable v1, v2; constant const1, const2; Select pr1 such that Next*(r1, pr1) none 5000 4 - Next* stmt s1, s2; assign a1, a2; call c1, c2; print p1, p2; read r1, r2; procedure pr1, pr2; while w1, w2; if if1, if2; prog_line pl1, pl2; variable v1, v2; constant const1, const2; Select w1 such that Next*(w1, if1) 6, 9, 20, 27 5000 5 - Next* stmt s1, s2; assign a1, a2; call c1, c2; print p1, p2; read r1, r2; procedure pr1, pr2; while w1, w2; if if1, if2; prog_line pl1, pl2; variable v1, v2; constant const1, const2; Select c1 such that Next*(c1, p1) 8 5000 6 - Next* stmt s1, s2; assign a1, a2; call c1, c2; print p1, p2; read r1, r2; procedure pr1, pr2; while w1, w2; if if1, if2; prog_line pl1, pl2; variable v1, v2; constant const1, const2; Select s1 such that Next*(_, s1) 2, 3, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18 ,19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 35, 36, 37, 38, 39, 40, 41 5000 7 - Next* boolean stmt s1, s2; assign a1, a2; call c1, c2; print p1, p2; read r1, r2; procedure pr1, pr2; while w1, w2; if if1, if2; prog_line pl1, pl2; variable v1, v2; constant const1, const2; Select pr2 such that Next*(_, _) First, Second, Third 5000 8 - Next* stmt s1, s2; assign a1, a2; call c1, c2; print p1, p2; read r1, r2; procedure pr1, pr2; while w1, w2; if if1, if2; prog_line pl1, pl2; variable v1, v2; constant const1, const2; Select s1 such that Next*(s1, _) 1, 2, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18 ,19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 34, 35, 36, 37, 38, 39, 40 5000 9 - Next* invalid stmt s1, s2; assign a1, a2; call c1, c2; print p1, p2; read r1, r2; procedure pr1, pr2; while w1, w2; if if1, if2; prog_line pl1, pl2; variable v1, v2; constant const1, const2; Select s1 such that Next*(s1, -1) none 5000 10 - Next* invalid stmt s1, s2; assign a1, a2; call c1, c2; print p1, p2; read r1, r2; procedure pr1, pr2; while w1, w2; if if1, if2; prog_line pl1, pl2; variable v1, v2; constant const1, const2; Select s1 such that Next*(s1, 0) none 5000 11 - Next* stmt s1, s2; assign a1, a2; call c1, c2; print p1, p2; read r1, r2; procedure pr1, pr2; while w1, w2; if if1, if2; prog_line pl1, pl2; variable v1, v2; constant const1, const2; Select s1 such that Next*(s1, 2) 1 5000 12 - Next* stmt s1, s2; assign a1, a2; call c1, c2; print p1, p2; read r1, r2; procedure pr1, pr2; while w1, w2; if if1, if2; prog_line pl1, pl2; variable v1, v2; constant const1, const2; Select s1 such that Next*(5, s1) 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18 ,19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33 5000 13 - Next* boolean stmt s1, s2; assign a1, a2; call c1, c2; print p1, p2; read r1, r2; procedure pr1, pr2; while w1, w2; if if1, if2; prog_line pl1, pl2; variable v1, v2; constant const1, const2; Select w2 such that Next*(18, 10) 6, 9, 20, 27, 38, 39 5000 14 - Next* invalid stmt s1, s2; assign a1, a2; call c1, c2; print p1, p2; read r1, r2; procedure pr1, pr2; while w1, w2; if if1, if2; prog_line pl1, pl2; variable v1, v2; constant const1, const2; Select a2 such that Next*(pr2, s1) none 5000 15 - Next* stmt s1, s2; assign a1, a2; call c1, c2; print p1, p2; read r1, r2; procedure pr1, pr2; while w1, w2; if if1, if2; prog_line pl1, pl2; variable v1, v2; constant const1, const2; Select pl1 such that Next*(pl1, s1) 1, 2, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18 ,19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 34, 35, 36, 37, 38, 39, 40 5000 16 - Next* stmt s1, s2; assign a1, a2; call c1, c2; print p1, p2; read r1, r2; procedure pr1, pr2; while w1, w2; if if1, if2; prog_line pl1, pl2; variable v1, v2; constant const1, const2; Select const1 such that Next*(2, _) 0, 5, 6, 2, 10, 1, 26 5000 17 - Next* boolean stmt s1, s2; assign a1, a2; call c1, c2; print p1, p2; read r1, r2; procedure pr1, pr2; while w1, w2; if if1, if2; prog_line pl1, pl2; variable v1, v2; constant const1, const2; Select if2 such that Next*(_, 34) none 5000 18 - Next* more on synonyms stmt s1, s2; assign a1, a2; call c1, c2; print p1, p2; read r1, r2; procedure pr1, pr2; while w1, w2; if if1, if2; prog_line pl1, pl2; variable v1, v2; constant const1, const2; Select if1 such that Next*(if1, w1) 10, 19, 37 5000 19 - Next* more on synonyms stmt s1, s2; assign a1, a2; call c1, c2; print p1, p2; read r1, r2; procedure pr1, pr2; while w1, w2; if if1, if2; prog_line pl1, pl2; variable v1, v2; constant const1, const2; Select p1 such that Next*(p1, p2) 14, 16, 21, 28, 36 5000 20 - Next* more on synonyms stmt s1, s2; assign a1, a2; call c1, c2; print p1, p2; read r1, r2; procedure pr1, pr2; while w1, w2; if if1, if2; prog_line pl1, pl2; variable v1, v2; constant const1, const2; Select r1 such that Next*(c1, r1) 11, 15 5000 21 - Next* more numbers stmt s1, s2; assign a1, a2; call c1, c2; print p1, p2; read r1, r2; procedure pr1, pr2; while w1, w2; if if1, if2; prog_line pl1, pl2; variable v1, v2; constant const1, const2; Select v2 such that Next*(_, 38) x, z, i, d, j, Third, First, y, v, a, you, me, aa, bb 5000 17 - Next* more numbers stmt s1, s2; assign a1, a2; call c1, c2; print p1, p2; read r1, r2; procedure pr1, pr2; while w1, w2; if if1, if2; prog_line pl1, pl2; variable v1, v2; constant const1, const2; Select if2 such that Next*(19, 28) 10, 19, 22, 29, 37 5000 ``` ## Source-Query pair 7 ### Testing target: - Affects clause - Affects* clause ### SOURCE: iter3-affects.txt ; iter3-affectsT.txt ```javascript= procedure Main { 1. alpha = 1; 2. beta = 2; 3. charlie = 3; 4. delta = 4; 5. null = null + 1; 6. if (zebra > lion) then { 7. call loopies; } else { 8. null = alpha; 9. call PrinterWithoutInk; 10. while (lion > tiger) { 11. charlie = charlie % delta; 12. call LoopWrapper; 13. delta = charlie % alpha; } 14. read delta; } 15. charlie = delta; 16. delta = beta + erik; 17. call ResetBetaCharlie; 18. while (submodule == submodule) { 19. beta = null + beta; 20. charlie = erik; 21. null = null + delta; 22. while (!(submodule == submodule)) { 23. null = null; 24. call ResetAllExceptNull; } 25. delta = null; } 26. global = alpha + beta + charlie + delta + erik + null; } procedure LoopWrapper { 27. call loopies; } procedure loopies { 28. while (true == 1) { 29. alpha = beta + charlie + delta; 30. beta = charlie + delta + alpha; 31. charlie = delta + alpha + beta; 32. delta = delta + 1; } } procedure ResetAllExceptNull { 33. if (reset == true) then { 34. alpha = 1; 35. beta = 2; 36. charlie = 3; 37. delta = 4; } else { 38. call PrinterWithoutInk; } } procedure PrinterWithoutInk { 39. print alpha; 40. print beta; 41. print charlie; 42. print delta; } procedure ResetBetaCharlie { 43. read beta; 44. read charlie; } ``` ``` Affects: (1,8), (1,26), (2,16), (3,11), (4,11), (5,19), (5,21), (5,26), (8,19), (8,21), (8,26), (13,11), (16,21), (16,26), (19,19), (19,26), (20,26), (21,19), (21,21), (21,23), (21,25),(21,26), (23,19),(23,21),(23,23), (23,25),(23,26), (25,21),(25,26) ++++++++++++++++++++++++++++++++++++ (29,30), (29,31), (30,29), (30,31), (31,29), (31,30), (32,29), (32,30), (32,31), (32,32) ==================================== Transitive: (1,19),(1,21),(1,23),(1,25),(1,26), (2,26), (5,19),(5,21),(5,23),(5,25),(5,26), (8,19),(8,21),(8,23),(8,25),(8,26), (23,19),(23,21),(23,26), (25,19),(25,21),(25,26),(25,23),(25,25) ++++++++++++++++++++++++++++++++++++ (29,29), (30,30), (31,31) ==================================== ``` ### Affects(param 1, param 2) & Affects* param 1 -> synonym | ‘\_’ | INTEGER param 2 -> synonym | ‘\_’ | INTEGER #### Equivalence Partition for param 1 * synonym: [s1], [a1], [p1], [r1], [w1], [if1], [c1], [proc1] * \_: [_], * INTEGER: [-infinity ... -1], [0], [1 ... MAX_INT] #### Equivalence Partition for param 2 * synonym: [s1], [a1], [p1], [r1], [w1], [if1], [c1], [proc1] * \_: [_], * INTEGER: [-infinity ... -1], [0], [1 ... MAX_INT] ### QUERIES: iter3-affects.txt ```javascript= 1 - Affects validity checking assign a1, a2; Select a1 such that Affects(a1, _) 1,2,3,4,5,8,13,16,19,20,21,23,25,29,30,31,32 5000 2 - Affects validity checking assign a1, a2; Select a1 such that Affects(_, a1) 8,11,16,19,21,23,25,26,29,30,31,32 5000 3 - Affects validity checking assign a1, a2; Select <a1,a2> such that Affects(a1, a2) 1 8,1 26,2 16,3 11,4 11,5 19,5 21,5 26,8 19,8 21,8 26,13 11,16 21,16 26,19 19,19 26,20 26,21 19,21 21,21 23,21 25,21 26,23 19,23 21,23 23,23 25,23 26,25 21,25 26,29 30,29 31,30 29,30 31,31 29,31 30,32 29,32 30,32 31,32 32 5000 4 - Affects EP s1,s1 stmt s1, s2; assign a1, a2; call c1, c2; print p1, p2; read r1, r2; procedure pr1, pr2; while w1, w2; if if1, if2; prog_line pl1, pl2; variable v1, v2; constant const1, const2; Select s1 such that Affects(s1, s1) 19,21,23,32 5000 5 - Affects EP s1,a2 stmt s1, s2; assign a1, a2; call c1, c2; print p1, p2; read r1, r2; procedure pr1, pr2; while w1, w2; if if1, if2; prog_line pl1, pl2; variable v1, v2; constant const1, const2; Select s1 such that Affects(s1, a2) 1,2,3,4,5,8,13,16,19,20,21,23,25,29,30,31,32 5000 6 - Affects EP a1,s2 stmt s1, s2; assign a1, a2; call c1, c2; print p1, p2; read r1, r2; procedure pr1, pr2; while w1, w2; if if1, if2; prog_line pl1, pl2; variable v1, v2; constant const1, const2; Select s2 such that Affects(a1, s2) 8,11,16,19,21,23,25,26,29,30,31,32 5000 7 - Affects EP s1,_ stmt s1, s2; assign a1, a2; call c1, c2; print p1, p2; read r1, r2; procedure pr1, pr2; while w1, w2; if if1, if2; prog_line pl1, pl2; variable v1, v2; constant const1, const2; Select s1 such that Affects(s1, _) 1,2,3,4,5,8,13,16,19,20,21,23,25,29,30,31,32 5000 8 - Affects EP _,s2 stmt s1, s2; assign a1, a2; call c1, c2; print p1, p2; read r1, r2; procedure pr1, pr2; while w1, w2; if if1, if2; prog_line pl1, pl2; variable v1, v2; constant const1, const2; Select s2 such that Affects(_, s2) 8,11,16,19,21,23,25,26,29,30,31,32 5000 9 - Affects EP _,# stmt s1, s2; assign a1, a2; call c1, c2; print p1, p2; read r1, r2; procedure pr1, pr2; while w1, w2; if if1, if2; prog_line pl1, pl2; variable v1, v2; constant const1, const2; Select BOOLEAN such that Affects(_,23) TRUE 5000 10 - Affects EP #,_ stmt s1, s2; assign a1, a2; call c1, c2; print p1, p2; read r1, r2; procedure pr1, pr2; while w1, w2; if if1, if2; prog_line pl1, pl2; variable v1, v2; constant const1, const2; Select BOOLEAN such that Affects(8,_) TRUE 5000 11 - Affects EP s1,# stmt s1, s2; assign a1, a2; call c1, c2; print p1, p2; read r1, r2; procedure pr1, pr2; while w1, w2; if if1, if2; prog_line pl1, pl2; variable v1, v2; constant const1, const2; Select s1 such that Affects(s1, 11) 3,4,13 5000 12 - Affects EP #,a2 stmt s1, s2; assign a1, a2; call c1, c2; print p1, p2; read r1, r2; procedure pr1, pr2; while w1, w2; if if1, if2; prog_line pl1, pl2; variable v1, v2; constant const1, const2; Select a2 such that Affects(32, a2) 29,30,31,32 5000 13 - Affects EP #,pl1 stmt s1, s2; assign a1, a2; call c1, c2; print p1, p2; read r1, r2; procedure pr1, pr2; while w1, w2; if if1, if2; prog_line pl1, pl2; variable v1, v2; constant const1, const2; Select pl1 such that Affects(1, pl1) 8,26 5000 14 - Affects EP pl1,# stmt s1, s2; assign a1, a2; call c1, c2; print p1, p2; read r1, r2; procedure pr1, pr2; while w1, w2; if if1, if2; prog_line pl1, pl2; variable v1, v2; constant const1, const2; Select pl1 such that Affects(pl1, 16) 2 5000 15 - Affects PL,PL self affects stmt s1, s2; assign a1, a2; call c1, c2; print p1, p2; read r1, r2; procedure pr1, pr2; while w1, w2; if if1, if2; prog_line pl1, pl2; variable v1, v2; constant const1, const2; Select pl1 such that Affects(pl1, pl1) 19,21,23,32 5000 16 - Affects _,_ stmt s1, s2; assign a1, a2; call c1, c2; print p1, p2; read r1, r2; procedure pr1, pr2; while w1, w2; if if1, if2; prog_line pl1, pl2; variable v1, v2; constant const1, const2; Select s1 such that Affects(_,_) 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44 5000 17 - Affects Invalid stmt s1, s2; assign a1, a2; call c1, c2; print p1, p2; read r1, r2; procedure pr1, pr2; while w1, w2; if if1, if2; prog_line pl1, pl2; variable v1, v2; constant const1, const2; Select a1 such that Affects(a1,r1) none 5000 18 - Affects Invalid stmt s1, s2; assign a1, a2; call c1, c2; print p1, p2; read r1, r2; procedure pr1, pr2; while w1, w2; if if1, if2; prog_line pl1, pl2; variable v1, v2; constant const1, const2; Select pl1 such that Affects(pl1,w1) none 5000 19 - Affects Invalid stmt s1, s2; assign a1, a2; call c1, c2; print p1, p2; read r1, r2; procedure pr1, pr2; while w1, w2; if if1, if2; prog_line pl1, pl2; variable v1, v2; constant const1, const2; Select a1 such that Affects(a2,if1) none 5000 20 - Affects Invalid stmt s1, s2; assign a1, a2; call c1, c2; print p1, p2; read r1, r2; procedure pr1, pr2; while w1, w2; if if1, if2; prog_line pl1, pl2; variable v1, v2; constant const1, const2; Select s1 such that Affects(s2,c1) none 5000 21 - Affects Invalid stmt s1, s2; assign a1, a2; call c1, c2; print p1, p2; read r1, r2; procedure pr1, pr2; while w1, w2; if if1, if2; prog_line pl1, pl2; variable v1, v2; constant const1, const2; Select s1 such that Affects(s1,pr1) none 5000 22 - Affects Invalid stmt s1, s2; assign a1, a2; call c1, c2; print p1, p2; read r1, r2; procedure pr1, pr2; while w1, w2; if if1, if2; prog_line pl1, pl2; variable v1, v2; constant const1, const2; Select s1 such that Affects(s1,-1) none 5000 23 - Affects Invalid stmt s1, s2; assign a1, a2; call c1, c2; print p1, p2; read r1, r2; procedure pr1, pr2; while w1, w2; if if1, if2; prog_line pl1, pl2; variable v1, v2; constant const1, const2; Select s1 such that Affects(s1,0) none 5000 24 - Affects Invalid stmt s1, s2; assign a1, a2; call c1, c2; print p1, p2; read r1, r2; procedure pr1, pr2; while w1, w2; if if1, if2; prog_line pl1, pl2; variable v1, v2; constant const1, const2; Select s1 such that Affects(s1,100) none 5000 25 - Affects Invalid stmt s1, s2; assign a1, a2; call c1, c2; print p1, p2; read r1, r2; procedure pr1, pr2; while w1, w2; if if1, if2; prog_line pl1, pl2; variable v1, v2; constant const1, const2; Select s1 such that Affects(p1, s1) none 5000 26 - Affects Invalid stmt s1, s2; assign a1, a2; call c1, c2; print p1, p2; read r1, r2; procedure pr1, pr2; while w1, w2; if if1, if2; prog_line pl1, pl2; variable v1, v2; constant const1, const2; Select a1 such that Affects(r1,a1) none 5000 27 - Affects Invalid stmt s1, s2; assign a1, a2; call c1, c2; print p1, p2; read r1, r2; procedure pr1, pr2; while w1, w2; if if1, if2; prog_line pl1, pl2; variable v1, v2; constant const1, const2; Select pl1 such that Affects(w1, pl1) none 5000 28 - Affects Invalid stmt s1, s2; assign a1, a2; call c1, c2; print p1, p2; read r1, r2; procedure pr1, pr2; while w1, w2; if if1, if2; prog_line pl1, pl2; variable v1, v2; constant const1, const2; Select a1 such that Affects(if1, a2) none 5000 29 - Affects Invalid stmt s1, s2; assign a1, a2; call c1, c2; print p1, p2; read r1, r2; procedure pr1, pr2; while w1, w2; if if1, if2; prog_line pl1, pl2; variable v1, v2; constant const1, const2; Select s1 such that Affects(c1,s2) none 5000 30 - Affects Invalid stmt s1, s2; assign a1, a2; call c1, c2; print p1, p2; read r1, r2; procedure pr1, pr2; while w1, w2; if if1, if2; prog_line pl1, pl2; variable v1, v2; constant const1, const2; Select s1 such that Affects(pr1,s1) none 5000 31 - Affects Invalid stmt s1, s2; assign a1, a2; call c1, c2; print p1, p2; read r1, r2; procedure pr1, pr2; while w1, w2; if if1, if2; prog_line pl1, pl2; variable v1, v2; constant const1, const2; Select a1 such that Affects(-1,a1) none 5000 32 - Affects Invalid stmt s1, s2; assign a1, a2; call c1, c2; print p1, p2; read r1, r2; procedure pr1, pr2; while w1, w2; if if1, if2; prog_line pl1, pl2; variable v1, v2; constant const1, const2; Select a2 such that Affects(0, a2) none 5000 33 - Affects Invalid stmt s1, s2; assign a1, a2; call c1, c2; print p1, p2; read r1, r2; procedure pr1, pr2; while w1, w2; if if1, if2; prog_line pl1, pl2; variable v1, v2; constant const1, const2; Select pl1 such that Affects(100,pl1) none 5000 34 - Affects Invalid stmt s1, s2; assign a1, a2; call c1, c2; print p1, p2; read r1, r2; procedure pr1, pr2; while w1, w2; if if1, if2; prog_line pl1, pl2; variable v1, v2; constant const1, const2; Select s1 such that Affects(s1,p1) none 5000 35 - Affects Invalid stmt s1, s2; assign a1, a2; call c1, c2; print p1, p2; read r1, r2; procedure pr1, pr2; while w1, w2; if if1, if2; prog_line pl1, pl2; variable v1, v2; constant const1, const2; Select s1 such that Affects(_,-1) none 5000 36 - Affects Invalid stmt s1, s2; assign a1, a2; call c1, c2; print p1, p2; read r1, r2; procedure pr1, pr2; while w1, w2; if if1, if2; prog_line pl1, pl2; variable v1, v2; constant const1, const2; Select s1 such that Affects(-1,30) none 5000 37 - Affects Invalid stmt s1, s2; assign a1, a2; call c1, c2; print p1, p2; read r1, r2; procedure pr1, pr2; while w1, w2; if if1, if2; prog_line pl1, pl2; variable v1, v2; constant const1, const2; Select s1 such that Affects(30,0) none 5000 38 - Affects Invalid stmt s1, s2; assign a1, a2; call c1, c2; print p1, p2; read r1, r2; procedure pr1, pr2; while w1, w2; if if1, if2; prog_line pl1, pl2; variable v1, v2; constant const1, const2; Select s1 such that Affects(a1,999) none 5000 39 - Affects Invalid - Cross Procedure stmt s1, s2; assign a1, a2; call c1, c2; print p1, p2; read r1, r2; procedure pr1, pr2; while w1, w2; if if1, if2; prog_line pl1, pl2; variable v1, v2; constant const1, const2; Select s1 such that Affects(40,43) none 5000 40 - Affects Invalid - Reverse stmt s1, s2; assign a1, a2; call c1, c2; print p1, p2; read r1, r2; procedure pr1, pr2; while w1, w2; if if1, if2; prog_line pl1, pl2; variable v1, v2; constant const1, const2; Select s1 such that Affects(19,23) none 5000 ``` ### QUERIES: iter3-affectsT.txt ```javascript= 1 - Affects validity checking assign a1, a2; Select a1 such that Affects*(a1, _) 1,2,3,4,5,8,13,16,19,20,21,23,25,29,30,31,32 5000 2 - Affects validity checking assign a1, a2; Select a1 such that Affects*(_, a1) 8,11,16,19,21,23,25,26,29,30,31,32 5000 3 - Affects validity checking assign a1, a2; Select <a1,a2> such that Affects*(a1, a2) 1 8,1 26,2 16,3 11,4 11,5 19,5 21,5 26,8 19,8 21,8 26,13 11,16 21,16 26,19 19,19 26,20 26,21 19,21 21,21 23,21 25,21 26,23 19,23 21,23 23,23 25,23 26,25 21,25 26,29 30,29 31,30 29,30 31,31 29,31 30,32 29,32 30,32 31,32 32,1 19, 1 21,1 23,1 25,2 19,2 21,2 23,2 25,2 26,5 23,5 25,8 23,8 25,16 19,16 23,16 25,25 19,25 23,25 25,29 29,30 30,31 31 5000 4 - Affects EP s1,s1 stmt s1, s2; assign a1, a2; call c1, c2; print p1, p2; read r1, r2; procedure pr1, pr2; while w1, w2; if if1, if2; prog_line pl1, pl2; variable v1, v2; constant const1, const2; Select s1 such that Affects*(s1, s1) 19,21,23,25,29,30,31,32 5000 5 - Affects EP s1,a2 stmt s1, s2; assign a1, a2; call c1, c2; print p1, p2; read r1, r2; procedure pr1, pr2; while w1, w2; if if1, if2; prog_line pl1, pl2; variable v1, v2; constant const1, const2; Select s1 such that Affects*(s1, a2) 1,2,3,4,5,8,13,16,19,20,21,23,25,29,30,31,32 5000 6 - Affects EP a1,s2 stmt s1, s2; assign a1, a2; call c1, c2; print p1, p2; read r1, r2; procedure pr1, pr2; while w1, w2; if if1, if2; prog_line pl1, pl2; variable v1, v2; constant const1, const2; Select s2 such that Affects*(a1, s2) 8,11,16,19,21,23,25,26,29,30,31,32 5000 7 - Affects EP s1,_ stmt s1, s2; assign a1, a2; call c1, c2; print p1, p2; read r1, r2; procedure pr1, pr2; while w1, w2; if if1, if2; prog_line pl1, pl2; variable v1, v2; constant const1, const2; Select s1 such that Affects*(s1, _) 1,2,3,4,5,8,13,16,19,20,21,23,25,29,30,31,32 5000 8 - Affects EP _,s2 stmt s1, s2; assign a1, a2; call c1, c2; print p1, p2; read r1, r2; procedure pr1, pr2; while w1, w2; if if1, if2; prog_line pl1, pl2; variable v1, v2; constant const1, const2; Select s2 such that Affects*(_, s2) 8,11,16,19,21,23,25,26,29,30,31,32 5000 9 - Affects EP _,# stmt s1, s2; assign a1, a2; call c1, c2; print p1, p2; read r1, r2; procedure pr1, pr2; while w1, w2; if if1, if2; prog_line pl1, pl2; variable v1, v2; constant const1, const2; Select BOOLEAN such that Affects*(_,23) TRUE 5000 10 - Affects EP #,_ stmt s1, s2; assign a1, a2; call c1, c2; print p1, p2; read r1, r2; procedure pr1, pr2; while w1, w2; if if1, if2; prog_line pl1, pl2; variable v1, v2; constant const1, const2; Select BOOLEAN such that Affects*(8,_) TRUE 5000 11 - Affects EP s1,# stmt s1, s2; assign a1, a2; call c1, c2; print p1, p2; read r1, r2; procedure pr1, pr2; while w1, w2; if if1, if2; prog_line pl1, pl2; variable v1, v2; constant const1, const2; Select s1 such that Affects*(s1, 19) 1,2,5,8,16,19,21,23,25 5000 12 - Affects EP #,a2 stmt s1, s2; assign a1, a2; call c1, c2; print p1, p2; read r1, r2; procedure pr1, pr2; while w1, w2; if if1, if2; prog_line pl1, pl2; variable v1, v2; constant const1, const2; Select a2 such that Affects*(32, a2) 29,30,31,32 5000 13 - Affects EP #,pl1 stmt s1, s2; assign a1, a2; call c1, c2; print p1, p2; read r1, r2; procedure pr1, pr2; while w1, w2; if if1, if2; prog_line pl1, pl2; variable v1, v2; constant const1, const2; Select pl1 such that Affects*(1, pl1) 8,26,19,21,23,25 5000 14 - Affects EP pl1,# stmt s1, s2; assign a1, a2; call c1, c2; print p1, p2; read r1, r2; procedure pr1, pr2; while w1, w2; if if1, if2; prog_line pl1, pl2; variable v1, v2; constant const1, const2; Select pl1 such that Affects*(pl1, 26) 1,2,5,8,16,19,20,21,23,25 5000 15 - Affects PL,PL self affects stmt s1, s2; assign a1, a2; call c1, c2; print p1, p2; read r1, r2; procedure pr1, pr2; while w1, w2; if if1, if2; prog_line pl1, pl2; variable v1, v2; constant const1, const2; Select pl1 such that Affects*(pl1, pl1) 19,21,23,25,29,30,31,32 5000 16 - Affects _,_ stmt s1, s2; assign a1, a2; call c1, c2; print p1, p2; read r1, r2; procedure pr1, pr2; while w1, w2; if if1, if2; prog_line pl1, pl2; variable v1, v2; constant const1, const2; Select s1 such that Affects*(_,_) 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44 5000 17 - Affects Invalid stmt s1, s2; assign a1, a2; call c1, c2; print p1, p2; read r1, r2; procedure pr1, pr2; while w1, w2; if if1, if2; prog_line pl1, pl2; variable v1, v2; constant const1, const2; Select a1 such that Affects*(a1,r1) none 5000 18 - Affects Invalid stmt s1, s2; assign a1, a2; call c1, c2; print p1, p2; read r1, r2; procedure pr1, pr2; while w1, w2; if if1, if2; prog_line pl1, pl2; variable v1, v2; constant const1, const2; Select pl1 such that Affects*(pl1,w1) none 5000 19 - Affects Invalid stmt s1, s2; assign a1, a2; call c1, c2; print p1, p2; read r1, r2; procedure pr1, pr2; while w1, w2; if if1, if2; prog_line pl1, pl2; variable v1, v2; constant const1, const2; Select a1 such that Affects*(a2,if1) none 5000 20 - Affects Invalid stmt s1, s2; assign a1, a2; call c1, c2; print p1, p2; read r1, r2; procedure pr1, pr2; while w1, w2; if if1, if2; prog_line pl1, pl2; variable v1, v2; constant const1, const2; Select s1 such that Affects*(s2,c1) none 5000 21 - Affects Invalid stmt s1, s2; assign a1, a2; call c1, c2; print p1, p2; read r1, r2; procedure pr1, pr2; while w1, w2; if if1, if2; prog_line pl1, pl2; variable v1, v2; constant const1, const2; Select s1 such that Affects*(s1,pr1) none 5000 22 - Affects Invalid stmt s1, s2; assign a1, a2; call c1, c2; print p1, p2; read r1, r2; procedure pr1, pr2; while w1, w2; if if1, if2; prog_line pl1, pl2; variable v1, v2; constant const1, const2; Select s1 such that Affects*(s1,-1) none 5000 23 - Affects Invalid stmt s1, s2; assign a1, a2; call c1, c2; print p1, p2; read r1, r2; procedure pr1, pr2; while w1, w2; if if1, if2; prog_line pl1, pl2; variable v1, v2; constant const1, const2; Select s1 such that Affects*(s1,0) none 5000 24 - Affects Invalid stmt s1, s2; assign a1, a2; call c1, c2; print p1, p2; read r1, r2; procedure pr1, pr2; while w1, w2; if if1, if2; prog_line pl1, pl2; variable v1, v2; constant const1, const2; Select s1 such that Affects*(s1,100) none 5000 25 - Affects Invalid stmt s1, s2; assign a1, a2; call c1, c2; print p1, p2; read r1, r2; procedure pr1, pr2; while w1, w2; if if1, if2; prog_line pl1, pl2; variable v1, v2; constant const1, const2; Select s1 such that Affects*(p1, s1) none 5000 26 - Affects Invalid stmt s1, s2; assign a1, a2; call c1, c2; print p1, p2; read r1, r2; procedure pr1, pr2; while w1, w2; if if1, if2; prog_line pl1, pl2; variable v1, v2; constant const1, const2; Select a1 such that Affects*(r1,a1) none 5000 27 - Affects Invalid stmt s1, s2; assign a1, a2; call c1, c2; print p1, p2; read r1, r2; procedure pr1, pr2; while w1, w2; if if1, if2; prog_line pl1, pl2; variable v1, v2; constant const1, const2; Select pl1 such that Affects*(w1, pl1) none 5000 28 - Affects Invalid stmt s1, s2; assign a1, a2; call c1, c2; print p1, p2; read r1, r2; procedure pr1, pr2; while w1, w2; if if1, if2; prog_line pl1, pl2; variable v1, v2; constant const1, const2; Select a1 such that Affects*(if1, a2) none 5000 29 - Affects Invalid stmt s1, s2; assign a1, a2; call c1, c2; print p1, p2; read r1, r2; procedure pr1, pr2; while w1, w2; if if1, if2; prog_line pl1, pl2; variable v1, v2; constant const1, const2; Select s1 such that Affects*(c1,s2) none 5000 30 - Affects Invalid stmt s1, s2; assign a1, a2; call c1, c2; print p1, p2; read r1, r2; procedure pr1, pr2; while w1, w2; if if1, if2; prog_line pl1, pl2; variable v1, v2; constant const1, const2; Select s1 such that Affects*(pr1,s1) none 5000 31 - Affects Invalid stmt s1, s2; assign a1, a2; call c1, c2; print p1, p2; read r1, r2; procedure pr1, pr2; while w1, w2; if if1, if2; prog_line pl1, pl2; variable v1, v2; constant const1, const2; Select a1 such that Affects*(-1,a1) none 5000 32 - Affects Invalid stmt s1, s2; assign a1, a2; call c1, c2; print p1, p2; read r1, r2; procedure pr1, pr2; while w1, w2; if if1, if2; prog_line pl1, pl2; variable v1, v2; constant const1, const2; Select a2 such that Affects*(0, a2) none 5000 33 - Affects Invalid stmt s1, s2; assign a1, a2; call c1, c2; print p1, p2; read r1, r2; procedure pr1, pr2; while w1, w2; if if1, if2; prog_line pl1, pl2; variable v1, v2; constant const1, const2; Select pl1 such that Affects*(100,pl1) none 5000 34 - Affects Invalid stmt s1, s2; assign a1, a2; call c1, c2; print p1, p2; read r1, r2; procedure pr1, pr2; while w1, w2; if if1, if2; prog_line pl1, pl2; variable v1, v2; constant const1, const2; Select s1 such that Affects*(s1,p1) none 5000 35 - Affects Invalid stmt s1, s2; assign a1, a2; call c1, c2; print p1, p2; read r1, r2; procedure pr1, pr2; while w1, w2; if if1, if2; prog_line pl1, pl2; variable v1, v2; constant const1, const2; Select s1 such that Affects*(_,-1) none 5000 36 - Affects Invalid stmt s1, s2; assign a1, a2; call c1, c2; print p1, p2; read r1, r2; procedure pr1, pr2; while w1, w2; if if1, if2; prog_line pl1, pl2; variable v1, v2; constant const1, const2; Select s1 such that Affects*(-1,30) none 5000 37 - Affects Invalid stmt s1, s2; assign a1, a2; call c1, c2; print p1, p2; read r1, r2; procedure pr1, pr2; while w1, w2; if if1, if2; prog_line pl1, pl2; variable v1, v2; constant const1, const2; Select s1 such that Affects*(30,0) none 5000 38 - Affects Invalid stmt s1, s2; assign a1, a2; call c1, c2; print p1, p2; read r1, r2; procedure pr1, pr2; while w1, w2; if if1, if2; prog_line pl1, pl2; variable v1, v2; constant const1, const2; Select s1 such that Affects*(a1,999) none 5000 39 - Affects Invalid - Cross Procedure stmt s1, s2; assign a1, a2; call c1, c2; print p1, p2; read r1, r2; procedure pr1, pr2; while w1, w2; if if1, if2; prog_line pl1, pl2; variable v1, v2; constant const1, const2; Select s1 such that Affects*(40,43) none 5000 40 - Affects Invalid - Reverse stmt s1, s2; assign a1, a2; call c1, c2; print p1, p2; read r1, r2; procedure pr1, pr2; while w1, w2; if if1, if2; prog_line pl1, pl2; variable v1, v2; constant const1, const2; Select s1 such that Affects*(19,23) none 5000 ``` ## Source-Query pair 8 ### Testing target: - NextBip clause - NextBip* clause ### SOURCE: iter3-nextbip.txt ```javascript= procedure n4 { 1. if (reset == true) then { 2. alpha = 1; 3. call n5; } else { 4. call n5; } } procedure n5 { 5. while (false == no) { 6. print alpha; 7. print beta; 8. print charlie; } } procedure n6 { 9. read beta; } procedure n1 { 10. if (zebra > lion) then { 11. call n3; 12. while (lion > tiger) { 13. charlie = charlie % delta; 14. call n2; 15. delta = charlie % alpha; } } else { 16. null = alpha; 17. call n5; 18. read delta; } 19. charlie = delta; 20. if (rit == esh) then { 21. while (submodule == submodule) { 22. while (!(submodule == submodule)) { 23. null = null; 24. call n4; } } } else { 25. g = g; } } procedure n2 { 26. call n5; } procedure n3 { 27. call n4; 28. call n5; 29. call n6; } procedure no { 30. read no; } ``` ![](https://i.imgur.com/ukCnnuq.png) ### QUERIES: iter3-nextbip.txt ```javascript= 1 - NextBip stmt s1, s2; assign a1, a2; call c1, c2; print p1, p2; read r1, r2; procedure pr1, pr2; while w1, w2; if if1, if2; prog_line pl1, pl2; variable v1, v2; constant const1, const2; Select s1 such that NextBip(s1, a1) 1, 12, 5, 10, 18, 22, 20 5000 2 - NextBip itself stmt s1, s2; assign a1, a2; call c1, c2; print p1, p2; read r1, r2; procedure pr1, pr2; while w1, w2; if if1, if2; prog_line pl1, pl2; variable v1, v2; constant const1, const2; Select a1 such that NextBip(a1, a1) none 5000 3 - NextBip invalid stmt s1, s2; assign a1, a2; call c1, c2; print p1, p2; read r1, r2; procedure pr1, pr2; while w1, w2; if if1, if2; prog_line pl1, pl2; variable v1, v2; constant const1, const2; Select pr1 such that NextBip(r1, pr1) none 5000 4 - NextBip stmt s1, s2; assign a1, a2; call c1, c2; print p1, p2; read r1, r2; procedure pr1, pr2; while w1, w2; if if1, if2; prog_line pl1, pl2; variable v1, v2; constant const1, const2; Select w1 such that NextBip(w1, if1) none 5000 5 - NextBip stmt s1, s2; assign a1, a2; call c1, c2; print p1, p2; read r1, r2; procedure pr1, pr2; while w1, w2; if if1, if2; prog_line pl1, pl2; variable v1, v2; constant const1, const2; Select c1 such that NextBip(c1, w1) 3, 4, 17, 26, 28 5000 6 - NextBip stmt s1, s2; assign a1, a2; call c1, c2; print p1, p2; read r1, r2; procedure pr1, pr2; while w1, w2; if if1, if2; prog_line pl1, pl2; variable v1, v2; constant const1, const2; Select s1 such that NextBip(_, s1) 1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29 5000 7 - NextBip boolean stmt s1, s2; assign a1, a2; call c1, c2; print p1, p2; read r1, r2; procedure pr1, pr2; while w1, w2; if if1, if2; prog_line pl1, pl2; variable v1, v2; constant const1, const2; Select pr2 such that NextBip(_, _) n1, n2, n3, n4, n5, n6, no 5000 8 - NextBip stmt s1, s2; assign a1, a2; call c1, c2; print p1, p2; read r1, r2; procedure pr1, pr2; while w1, w2; if if1, if2; prog_line pl1, pl2; variable v1, v2; constant const1, const2; Select s1 such that NextBip(s1, _) 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 26, 27, 28, 29 5000 9 - NextBip invalid stmt s1, s2; assign a1, a2; call c1, c2; print p1, p2; read r1, r2; procedure pr1, pr2; while w1, w2; if if1, if2; prog_line pl1, pl2; variable v1, v2; constant const1, const2; Select s1 such that NextBip(s1, -1) none 5000 10 - NextBip invalid stmt s1, s2; assign a1, a2; call c1, c2; print p1, p2; read r1, r2; procedure pr1, pr2; while w1, w2; if if1, if2; prog_line pl1, pl2; variable v1, v2; constant const1, const2; Select s1 such that NextBip(s1, 0) none 5000 11 - NextBip stmt s1, s2; assign a1, a2; call c1, c2; print p1, p2; read r1, r2; procedure pr1, pr2; while w1, w2; if if1, if2; prog_line pl1, pl2; variable v1, v2; constant const1, const2; Select s1 such that NextBip(s1, 2) 1 5000 12 - NextBip stmt s1, s2; assign a1, a2; call c1, c2; print p1, p2; read r1, r2; procedure pr1, pr2; while w1, w2; if if1, if2; prog_line pl1, pl2; variable v1, v2; constant const1, const2; Select s1 such that NextBip(9, s1) 12 5000 13 - NextBip boolean stmt s1, s2; assign a1, a2; call c1, c2; print p1, p2; read r1, r2; procedure pr1, pr2; while w1, w2; if if1, if2; prog_line pl1, pl2; variable v1, v2; constant const1, const2; Select p2 such that NextBip(5, 18) 6, 7, 8 5000 14 - NextBip invalid stmt s1, s2; assign a1, a2; call c1, c2; print p1, p2; read r1, r2; procedure pr1, pr2; while w1, w2; if if1, if2; prog_line pl1, pl2; variable v1, v2; constant const1, const2; Select a2 such that NextBip(pr2, s1) none 5000 15 - NextBip stmt s1, s2; assign a1, a2; call c1, c2; print p1, p2; read r1, r2; procedure pr1, pr2; while w1, w2; if if1, if2; prog_line pl1, pl2; variable v1, v2; constant const1, const2; Select pl1 such that NextBip(pl1, s1) 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 26, 27, 28, 29 5000 16 - NextBip stmt s1, s2; assign a1, a2; call c1, c2; print p1, p2; read r1, r2; procedure pr1, pr2; while w1, w2; if if1, if2; prog_line pl1, pl2; variable v1, v2; constant const1, const2; Select const1 such that NextBip(2, _) 1 5000 17 - NextBip false boolean stmt s1, s2; assign a1, a2; call c1, c2; print p1, p2; read r1, r2; procedure pr1, pr2; while w1, w2; if if1, if2; prog_line pl1, pl2; variable v1, v2; constant const1, const2; Select if2 such that NextBip(_, 10) none 5000 18 - NextBip more on synonyms stmt s1, s2; assign a1, a2; call c1, c2; print p1, p2; read r1, r2; procedure pr1, pr2; while w1, w2; if if1, if2; prog_line pl1, pl2; variable v1, v2; constant const1, const2; Select if1 such that NextBip(if1, w1) 20 5000 19 - NextBip more on synonyms stmt s1, s2; assign a1, a2; call c1, c2; print p1, p2; read r1, r2; procedure pr1, pr2; while w1, w2; if if1, if2; prog_line pl1, pl2; variable v1, v2; constant const1, const2; Select p1 such that NextBip(p1, p2) 6, 7 5000 20 - NextBip more on synonyms stmt s1, s2; assign a1, a2; call c1, c2; print p1, p2; read r1, r2; procedure pr1, pr2; while w1, w2; if if1, if2; prog_line pl1, pl2; variable v1, v2; constant const1, const2; Select c1 such that NextBip(c1, r1) 29 5000 21 - NextBip true boolean stmt s1, s2; assign a1, a2; call c1, c2; print p1, p2; read r1, r2; procedure pr1, pr2; while w1, w2; if if1, if2; prog_line pl1, pl2; variable v1, v2; constant const1, const2; Select v2 such that NextBip(_, 25) reset, true, alpha, beta, charlie, zebra, lion, tiger, delta, null, rit, esh, submodule, g, no, false 5000 22 - NextBip more numbers stmt s1, s2; assign a1, a2; call c1, c2; print p1, p2; read r1, r2; procedure pr1, pr2; while w1, w2; if if1, if2; prog_line pl1, pl2; variable v1, v2; constant const1, const2; Select if2 such that NextBip(5, 22) 1, 10, 20 5000 23 - NextBip* stmt s1, s2; assign a1, a2; call c1, c2; print p1, p2; read r1, r2; procedure pr1, pr2; while w1, w2; if if1, if2; prog_line pl1, pl2; variable v1, v2; constant const1, const2; Select s1 such that NextBip*(s1, a1) 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 26, 27, 28, 29 5000 24 - NextBip* itself stmt s1, s2; assign a1, a2; call c1, c2; print p1, p2; read r1, r2; procedure pr1, pr2; while w1, w2; if if1, if2; prog_line pl1, pl2; variable v1, v2; constant const1, const2; Select a1 such that NextBip*(a1, a1) 2, 13, 15, 19, 23 5000 25 - NextBip* invalid stmt s1, s2; assign a1, a2; call c1, c2; print p1, p2; read r1, r2; procedure pr1, pr2; while w1, w2; if if1, if2; prog_line pl1, pl2; variable v1, v2; constant const1, const2; Select pr1 such that NextBip*(r1, pr1) none 5000 26 - NextBip* stmt s1, s2; assign a1, a2; call c1, c2; print p1, p2; read r1, r2; procedure pr1, pr2; while w1, w2; if if1, if2; prog_line pl1, pl2; variable v1, v2; constant const1, const2; Select w1 such that NextBip*(w1, if1) 5, 12, 21, 22 5000 27 - NextBip* stmt s1, s2; assign a1, a2; call c1, c2; print p1, p2; read r1, r2; procedure pr1, pr2; while w1, w2; if if1, if2; prog_line pl1, pl2; variable v1, v2; constant const1, const2; Select c1 such that NextBip*(c1, p1) 3, 4, 11, 14, 17, 24, 26, 27, 28, 29 5000 28 - NextBip* stmt s1, s2; assign a1, a2; call c1, c2; print p1, p2; read r1, r2; procedure pr1, pr2; while w1, w2; if if1, if2; prog_line pl1, pl2; variable v1, v2; constant const1, const2; Select s1 such that NextBip*(_, s1) 1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29 5000 29 - NextBip* boolean stmt s1, s2; assign a1, a2; call c1, c2; print p1, p2; read r1, r2; procedure pr1, pr2; while w1, w2; if if1, if2; prog_line pl1, pl2; variable v1, v2; constant const1, const2; Select pr2 such that NextBip*(_, _) n1, n2, n3, n4, n5, n6, no 5000 30 - NextBip* stmt s1, s2; assign a1, a2; call c1, c2; print p1, p2; read r1, r2; procedure pr1, pr2; while w1, w2; if if1, if2; prog_line pl1, pl2; variable v1, v2; constant const1, const2; Select s1 such that NextBip*(s1, _) 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 26, 27, 28, 29 5000 31 - NextBip* invalid stmt s1, s2; assign a1, a2; call c1, c2; print p1, p2; read r1, r2; procedure pr1, pr2; while w1, w2; if if1, if2; prog_line pl1, pl2; variable v1, v2; constant const1, const2; Select s1 such that NextBip*(s1, -1) none 5000 32 - NextBip* invalid stmt s1, s2; assign a1, a2; call c1, c2; print p1, p2; read r1, r2; procedure pr1, pr2; while w1, w2; if if1, if2; prog_line pl1, pl2; variable v1, v2; constant const1, const2; Select s1 such that NextBip*(s1, 0) none 5000 33 - NextBip* stmt s1, s2; assign a1, a2; call c1, c2; print p1, p2; read r1, r2; procedure pr1, pr2; while w1, w2; if if1, if2; prog_line pl1, pl2; variable v1, v2; constant const1, const2; Select s1 such that NextBip*(s1, 2) 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 26, 27, 28, 29 5000 34 - NextBip* stmt s1, s2; assign a1, a2; call c1, c2; print p1, p2; read r1, r2; procedure pr1, pr2; while w1, w2; if if1, if2; prog_line pl1, pl2; variable v1, v2; constant const1, const2; Select s1 such that NextBip*(9, s1) 1, 2, 3, 4, 5, 6, 7, 8, 9, 12, 13, 14, 15, 18, 19, 20, 21, 22, 23, 24, 25, 26, 28, 29 5000 35 - NextBip* boolean stmt s1, s2; assign a1, a2; call c1, c2; print p1, p2; read r1, r2; procedure pr1, pr2; while w1, w2; if if1, if2; prog_line pl1, pl2; variable v1, v2; constant const1, const2; Select w2 such that NextBip*(18, 12) 5, 12, 21, 22 5000 36 - NextBip* invalid stmt s1, s2; assign a1, a2; call c1, c2; print p1, p2; read r1, r2; procedure pr1, pr2; while w1, w2; if if1, if2; prog_line pl1, pl2; variable v1, v2; constant const1, const2; Select a2 such that NextBip*(pr2, s1) none 5000 37 - NextBip* stmt s1, s2; assign a1, a2; call c1, c2; print p1, p2; read r1, r2; procedure pr1, pr2; while w1, w2; if if1, if2; prog_line pl1, pl2; variable v1, v2; constant const1, const2; Select pl1 such that NextBip*(pl1, s1) 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 26, 27, 28, 29 5000 38 - NextBip* stmt s1, s2; assign a1, a2; call c1, c2; print p1, p2; read r1, r2; procedure pr1, pr2; while w1, w2; if if1, if2; prog_line pl1, pl2; variable v1, v2; constant const1, const2; Select const1 such that NextBip*(2, _) 1 5000 39 - NextBip* false boolean stmt s1, s2; assign a1, a2; call c1, c2; print p1, p2; read r1, r2; procedure pr1, pr2; while w1, w2; if if1, if2; prog_line pl1, pl2; variable v1, v2; constant const1, const2; Select if2 such that NextBip*(_, 10) none 5000 40 - NextBip* more on synonyms stmt s1, s2; assign a1, a2; call c1, c2; print p1, p2; read r1, r2; procedure pr1, pr2; while w1, w2; if if1, if2; prog_line pl1, pl2; variable v1, v2; constant const1, const2; Select if1 such that NextBip*(if1, w1) 1, 10, 20 5000 41 - NextBip* more on synonyms stmt s1, s2; assign a1, a2; call c1, c2; print p1, p2; read r1, r2; procedure pr1, pr2; while w1, w2; if if1, if2; prog_line pl1, pl2; variable v1, v2; constant const1, const2; Select p1 such that NextBip*(p1, p2) 6, 7, 8 5000 42 - NextBip* more on synonyms stmt s1, s2; assign a1, a2; call c1, c2; print p1, p2; read r1, r2; procedure pr1, pr2; while w1, w2; if if1, if2; prog_line pl1, pl2; variable v1, v2; constant const1, const2; Select r1 such that NextBip*(c1, r1) 9, 18 5000 43 - NextBip* true boolean stmt s1, s2; assign a1, a2; call c1, c2; print p1, p2; read r1, r2; procedure pr1, pr2; while w1, w2; if if1, if2; prog_line pl1, pl2; variable v1, v2; constant const1, const2; Select v2 such that NextBip*(_, 25) reset, true, alpha, beta, charlie, zebra, lion, tiger, delta, null, rit, esh, submodule, g, no, false 5000 44 - NextBip* more numbers stmt s1, s2; assign a1, a2; call c1, c2; print p1, p2; read r1, r2; procedure pr1, pr2; while w1, w2; if if1, if2; prog_line pl1, pl2; variable v1, v2; constant const1, const2; Select if2 such that NextBip*(3, 4) 1, 10, 20 5000 ``` ------- # MULTIPLE CLAUSE TEST FROM HERE ONWARDS ------- ## Source-Query pair iter3-M1 ### Testing Target: - With clause: - Query with at least 2 double syn clause AND both syn are the same. - Query with at least 3 double syn clause with mix of clause types. ### SOURCE: iter3-withM.txt ```javascript= procedure First { read x; 1 read z; 2 call Second; 3 } procedure Second { x = 0; 4 i = 5; 5 while ((! (d<=j)) || ((6<d) && ((x>Third) && (2<=0)))) { 6 x = x + 2 * y; 7 call Third; 8 while ((i!=i) || (! (2>d))) { 9 if (x >= y) then { 10 read x; 11 v = 5; 12 } else { y = x * z + 10 * x; 13 print Third; 14 read First; 15 } print x; 16 x = 6 + x % 1; 17 } i = i - 1; 18 } if (x == 1) then { 19 while (x < 0) { 20 print x; 21 } if (!(z == 2)) then { 22 print y; 23 } else { x = (6 + x); 24 } x = x+1; 25 } else { z = 1; 26 while (x < 0) { 27 print x; 28 } if (!(z == 2)) then { 29 print y; 30 } else { i = (a / (26)); 31 } } z = z + x + i; 32 y = z + 2; 33 } procedure Third { z = 5; 34 v = z; 35 print v; 36 } ``` ### QUERIES: iter3-withM.txt ```javascript= 1 - Only such that and with clause, no result stmt s1; assign a1; variable v1; procedure pr1; prog_line pl; Select s1 such that Follows*(s1, a1) with s1.stmt# = a1.stmt# none 5000 2 - Only with clause stmt s1; assign a1; variable v1; procedure pr1; prog_line pl; Select s1 with s1.stmt# = a1.stmt# with s1.stmt# = a1.stmt# 4, 5, 7, 12, 13, 17, 18, 24, 25, 26, 31, 32, 33, 34, 35 5000 3 - Only such that and with clause stmt s1; assign a1; variable v1; procedure pr1; prog_line pl; Select s1 with s1.stmt# = a1.stmt# such that Next*(s1, a1) 7, 12, 13, 17, 18 5000 4 - Only with clause, diff attr stmt s1; assign a1; variable v1; procedure pr1; prog_line pl; print p1; read r1; Select s1 with p1.varName = r1.varName with p1.stmt# = r1.stmt# none 5000 5 - Mix - both syn encountered stmt s1; assign a1; variable v1; procedure pr1; prog_line pl; print p1; read r1; Select p1 such that Modifies(r1, "x") with p1.varName = r1.varName 16, 21, 28 5000 6 - Mix - lhs encountered stmt s1; assign a1; variable v1; procedure pr1; prog_line pl; print p1; read r1; Select r1 such that Modifies(r1, _) with p1.varName = r1.varName 1, 11 5000 7 - Mix - all 3 clause, rhs encountered stmt s1; assign a1; variable v1; procedure pr1; prog_line pl; print p1; read r1; Select v1 pattern w1("d", _) with w1.stmt# = pl such that Uses(pl, v1) d, j, x, Third, i 5000 8 - Mix - all 3 clause, lhs encountered stmt s1; assign a1; variable v1; procedure pr1; prog_line pl; print p1; read r1; Select v1 pattern w1("d", _) with pl = w1.stmt# such that Uses(pl, v1) d, j, x, Third, i 5000 9 - Mix - all 3 clause, looped stmt s1; assign a1; variable v1; procedure pr1; prog_line pl; print p1; read r1; Select v1 pattern a1(v1, _"6 + x"_) with pl = a1.stmt# such that Uses(pl, v1) x 5000 10 - Mix - all 3 clause, looped stmt s1; assign a1; variable v1; procedure pr1; prog_line pl; print p1; read r1; Select v1 with pl = a1.stmt# such that Uses(pl, v1) pattern a1(v1, _"6 + x"_) x 5000 11 - Mix - all 3 clause, looped stmt s1; assign a1; variable v1; procedure pr1; prog_line pl; print p1; read r1; Select v1 with v1.varName = p1.varName such that Uses(a1, v1) pattern a1(_, _"x % 1"_) x 5000 ```