# 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;
}
```

### 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
```