mirror of
https://gitflic.ru/project/openide/openide.git
synced 2025-12-17 07:20:53 +07:00
[python] CFG support logical expressions in if/while conditions
GitOrigin-RevId: 274b3271dccc93be64830374c8047a8f6552033e
This commit is contained in:
committed by
intellij-monorepo-bot
parent
94aaceafb6
commit
3f8f4f40c3
@@ -8,6 +8,12 @@
|
||||
7(8) READ ACCESS: x
|
||||
8(9) READ ACCESS: int
|
||||
9(10) element: PyCallExpression: isinstance
|
||||
10(11) ASSERTTYPE ACCESS: s
|
||||
11(12) ASSERTTYPE ACCESS: x
|
||||
12() element: null
|
||||
10(11) READ ACCESS: isinstance
|
||||
11(12) READ ACCESS: s
|
||||
12(13) READ ACCESS: basestring
|
||||
13(14,16) element: PyCallExpression: isinstance
|
||||
14(15) element: null. Condition: isinstance(s, basestring):false
|
||||
15(18) ASSERTTYPE ACCESS: s
|
||||
16(17) element: null. Condition: isinstance(s, basestring):true
|
||||
17(18) ASSERTTYPE ACCESS: s
|
||||
18() element: null
|
||||
@@ -2,10 +2,12 @@
|
||||
1(2) element: PyAssignmentStatement
|
||||
2(3) WRITE ACCESS: sibling
|
||||
3(4) element: PyIfStatement
|
||||
4(5,10) READ ACCESS: sibling
|
||||
5(6) element: PyStatementList. Condition: sibling:true
|
||||
6(7) ASSERTTYPE ACCESS: sibling
|
||||
7(8) element: PyAssignmentStatement
|
||||
8(9) element: PySubscriptionExpression
|
||||
9(10) READ ACCESS: sibling
|
||||
10() element: null
|
||||
4(5,6) READ ACCESS: sibling
|
||||
5(12) element: null. Condition: sibling:false
|
||||
6(7) element: null. Condition: sibling:true
|
||||
7(8) ASSERTTYPE ACCESS: sibling
|
||||
8(9) element: PyStatementList
|
||||
9(10) element: PyAssignmentStatement
|
||||
10(11) element: PySubscriptionExpression
|
||||
11(12) READ ACCESS: sibling
|
||||
12() element: null
|
||||
@@ -9,20 +9,20 @@
|
||||
8(9,10) WRITE ACCESS: r
|
||||
9(14) element: null. Condition: (r := undefined2()):false
|
||||
10(11) element: null. Condition: (r := undefined2()):true
|
||||
11(12) element: PyStatementList. Condition: undefined1 and (r := undefined2()):true
|
||||
11(12) element: PyStatementList
|
||||
12(13) element: PyPrintStatement
|
||||
13(1) READ ACCESS: r
|
||||
14(15) element: PyWhileStatement
|
||||
15(16) element: PyBinaryExpression
|
||||
16(17,18) READ ACCESS: undefined3
|
||||
17(24) element: null. Condition: undefined3:true
|
||||
18(19) element: null. Condition: undefined3:false
|
||||
17(19) element: null. Condition: undefined3:false
|
||||
18(24) element: null. Condition: undefined3:true
|
||||
19(20) READ ACCESS: undefined4
|
||||
20(21) element: PyCallExpression: undefined4
|
||||
21(22,23) WRITE ACCESS: r2
|
||||
22(27) element: null. Condition: (r2 := undefined4()):false
|
||||
23(24) element: null. Condition: (r2 := undefined4()):true
|
||||
24(25) element: PyStatementList. Condition: undefined3 or (r2 := undefined4()):true
|
||||
24(25) element: PyStatementList
|
||||
25(26) element: PyPrintStatement
|
||||
26(14) READ ACCESS: r2
|
||||
27() element: null
|
||||
@@ -9,24 +9,24 @@
|
||||
8(9,10) WRITE ACCESS: r
|
||||
9(14) element: null. Condition: (r := undefined2()):false
|
||||
10(11) element: null. Condition: (r := undefined2()):true
|
||||
11(12) element: PyStatementList. Condition: undefined1 and (r := undefined2()):true
|
||||
11(12) element: PyStatementList
|
||||
12(13) element: PyPrintStatement
|
||||
13(1) READ ACCESS: r
|
||||
14(15) element: PyElsePart. Condition: undefined1 and (r := undefined2()):false
|
||||
14(15) element: PyStatementList
|
||||
15(16) element: PyPrintStatement
|
||||
16(17) element: PyWhileStatement
|
||||
17(18) element: PyBinaryExpression
|
||||
18(19,20) READ ACCESS: undefined3
|
||||
19(26) element: null. Condition: undefined3:true
|
||||
20(21) element: null. Condition: undefined3:false
|
||||
19(21) element: null. Condition: undefined3:false
|
||||
20(26) element: null. Condition: undefined3:true
|
||||
21(22) READ ACCESS: undefined4
|
||||
22(23) element: PyCallExpression: undefined4
|
||||
23(24,25) WRITE ACCESS: r2
|
||||
24(29) element: null. Condition: (r2 := undefined4()):false
|
||||
25(26) element: null. Condition: (r2 := undefined4()):true
|
||||
26(27) element: PyStatementList. Condition: undefined3 or (r2 := undefined4()):true
|
||||
26(27) element: PyStatementList
|
||||
27(28) element: PyPrintStatement
|
||||
28(16) READ ACCESS: r2
|
||||
29(30) element: PyElsePart. Condition: undefined3 or (r2 := undefined4()):false
|
||||
29(30) element: PyStatementList
|
||||
30(31) element: PyPrintStatement
|
||||
31() element: null
|
||||
@@ -1,11 +1,15 @@
|
||||
0(1) element: null
|
||||
1(2) element: PyWhileStatement
|
||||
2(3,10) READ ACCESS: foo
|
||||
3(4) element: PyStatementList. Condition: foo:true
|
||||
4(5) element: PyIfStatement
|
||||
5(6,9) READ ACCESS: condition
|
||||
6(7) element: PyStatementList. Condition: condition:true
|
||||
7(8) ASSERTTYPE ACCESS: condition
|
||||
8(10) element: PyBreakStatement
|
||||
9(1) element: PyPrintStatement
|
||||
10() element: null
|
||||
2(3,4) READ ACCESS: foo
|
||||
3(14) element: null. Condition: foo:false
|
||||
4(5) element: null. Condition: foo:true
|
||||
5(6) element: PyStatementList
|
||||
6(7) element: PyIfStatement
|
||||
7(8,9) READ ACCESS: condition
|
||||
8(13) element: null. Condition: condition:false
|
||||
9(10) element: null. Condition: condition:true
|
||||
10(11) ASSERTTYPE ACCESS: condition
|
||||
11(12) element: PyStatementList
|
||||
12(14) element: PyBreakStatement
|
||||
13(1) element: PyPrintStatement
|
||||
14() element: null
|
||||
@@ -8,9 +8,11 @@
|
||||
7(8) WRITE ACCESS: c
|
||||
8(9) element: PyAssignmentStatement
|
||||
9(10) element: PyConditionalExpression
|
||||
10(11,13) READ ACCESS: c
|
||||
11(12) ASSERTTYPE ACCESS: c
|
||||
12(14) READ ACCESS: x
|
||||
13(14) READ ACCESS: y
|
||||
14(15) WRITE ACCESS: z
|
||||
15() element: null
|
||||
10(11,12) READ ACCESS: c
|
||||
11(15) element: null. Condition: c:false
|
||||
12(13) element: null. Condition: c:true
|
||||
13(14) ASSERTTYPE ACCESS: c
|
||||
14(16) READ ACCESS: x
|
||||
15(16) READ ACCESS: y
|
||||
16(17) WRITE ACCESS: z
|
||||
17() element: null
|
||||
@@ -1,11 +1,15 @@
|
||||
0(1) element: null
|
||||
1(2) element: PyWhileStatement
|
||||
2(3,10) READ ACCESS: foo
|
||||
3(4) element: PyStatementList. Condition: foo:true
|
||||
4(5) element: PyIfStatement
|
||||
5(6,9) READ ACCESS: condition
|
||||
6(7) element: PyStatementList. Condition: condition:true
|
||||
7(8) ASSERTTYPE ACCESS: condition
|
||||
8(1) element: PyContinueStatement
|
||||
9(1) element: PyPrintStatement
|
||||
10() element: null
|
||||
2(3,4) READ ACCESS: foo
|
||||
3(14) element: null. Condition: foo:false
|
||||
4(5) element: null. Condition: foo:true
|
||||
5(6) element: PyStatementList
|
||||
6(7) element: PyIfStatement
|
||||
7(8,9) READ ACCESS: condition
|
||||
8(13) element: null. Condition: condition:false
|
||||
9(10) element: null. Condition: condition:true
|
||||
10(11) ASSERTTYPE ACCESS: condition
|
||||
11(12) element: PyStatementList
|
||||
12(1) element: PyContinueStatement
|
||||
13(1) element: PyPrintStatement
|
||||
14() element: null
|
||||
@@ -7,13 +7,15 @@
|
||||
6(7) element: PyIfStatement
|
||||
7(8) READ ACCESS: len
|
||||
8(9) READ ACCESS: s
|
||||
9(10,12) element: PyCallExpression: len
|
||||
10(11) element: PyStatementList. Condition: len(s) == 1:true
|
||||
11(3,15) element: PyContinueStatement
|
||||
12(13) element: PyExpressionStatement
|
||||
13(14) READ ACCESS: sys
|
||||
14(4,15) element: PyCallExpression: sys.exit
|
||||
15(16) element: PyRaiseStatement
|
||||
16(17) READ ACCESS: Exception
|
||||
17(18) element: PyCallExpression: Exception
|
||||
18() element: null
|
||||
9(10,11) element: PyCallExpression: len
|
||||
10(14) element: null. Condition: len(s) == 1:false
|
||||
11(12) element: null. Condition: len(s) == 1:true
|
||||
12(13) element: PyStatementList
|
||||
13(3,17) element: PyContinueStatement
|
||||
14(15) element: PyExpressionStatement
|
||||
15(16) READ ACCESS: sys
|
||||
16(4,17) element: PyCallExpression: sys.exit
|
||||
17(18) element: PyRaiseStatement
|
||||
18(19) READ ACCESS: Exception
|
||||
19(20) element: PyCallExpression: Exception
|
||||
20() element: null
|
||||
@@ -8,16 +8,18 @@
|
||||
7(8) READ ACCESS: isinstance
|
||||
8(9) READ ACCESS: str
|
||||
9(10) READ ACCESS: int
|
||||
10(11,17) element: PyCallExpression: isinstance
|
||||
11(12) element: PyStatementList. Condition: isinstance(str, int):true
|
||||
12(13) ASSERTTYPE ACCESS: str
|
||||
13(14) element: PyExpressionStatement
|
||||
14(15) READ ACCESS: self
|
||||
15(16) element: PyCallExpression: self.fail
|
||||
16(18) element: PyPrintStatement
|
||||
17(18) ASSERTTYPE ACCESS: str
|
||||
18(19) element: PyExpressionStatement
|
||||
19(20) READ ACCESS: self
|
||||
20(21) READ ACCESS: str
|
||||
21(22) element: PyCallExpression: self.assert_
|
||||
22() element: null
|
||||
10(11,13) element: PyCallExpression: isinstance
|
||||
11(12) element: null. Condition: isinstance(str, int):false
|
||||
12(20) ASSERTTYPE ACCESS: str
|
||||
13(14) element: null. Condition: isinstance(str, int):true
|
||||
14(15) ASSERTTYPE ACCESS: str
|
||||
15(16) element: PyStatementList
|
||||
16(17) element: PyExpressionStatement
|
||||
17(18) READ ACCESS: self
|
||||
18(19) element: PyCallExpression: self.fail
|
||||
19(20) element: PyPrintStatement
|
||||
20(21) element: PyExpressionStatement
|
||||
21(22) READ ACCESS: self
|
||||
22(23) READ ACCESS: str
|
||||
23(24) element: PyCallExpression: self.assert_
|
||||
24() element: null
|
||||
@@ -1,11 +1,13 @@
|
||||
0(1) element: null
|
||||
1(2) element: PyForStatement
|
||||
2(3,10) READ ACCESS: lines
|
||||
2(3,12) READ ACCESS: lines
|
||||
3(4) element: PyTargetExpression: line
|
||||
4(5) WRITE ACCESS: line
|
||||
5(6) element: PyIfStatement
|
||||
6(7,3,10) READ ACCESS: line
|
||||
7(8) element: PyStatementList. Condition: line == '@':true
|
||||
8(9) element: PyAssignmentStatement
|
||||
9(3,10) WRITE ACCESS: head
|
||||
10() element: null
|
||||
6(7,8) READ ACCESS: line
|
||||
7(3,12) element: null. Condition: line == '@':false
|
||||
8(9) element: null. Condition: line == '@':true
|
||||
9(10) element: PyStatementList
|
||||
10(11) element: PyAssignmentStatement
|
||||
11(3,12) WRITE ACCESS: head
|
||||
12() element: null
|
||||
@@ -15,7 +15,7 @@
|
||||
14(15,16) READ ACCESS: end
|
||||
15(3,20) element: null. Condition: hour < end:false
|
||||
16(17) element: null. Condition: hour < end:true
|
||||
17(18) element: PyStatementList. Condition: hour >= start and hour < end:true
|
||||
17(18) element: PyStatementList
|
||||
18(19) element: PyReturnStatement
|
||||
19(20) READ ACCESS: name
|
||||
20() element: null
|
||||
@@ -25,34 +25,32 @@
|
||||
24(25) element: PyBinaryExpression
|
||||
25(26) element: PyBinaryExpression
|
||||
26(27,28) READ ACCESS: collapse
|
||||
27(34) element: null. Condition: collapse:false
|
||||
27(32) element: null. Condition: collapse:false
|
||||
28(29) element: null. Condition: collapse:true
|
||||
29(30,31) element: PyLambdaExpression
|
||||
30(34) element: null. Condition: (lambda s: " ".join(s.split())):false
|
||||
31(32,33) element: null. Condition: (lambda s: " ".join(s.split())):true
|
||||
32(37) element: null. Condition: collapse and (lambda s: " ".join(s.split())):true
|
||||
33(34) element: null. Condition: collapse and (lambda s: " ".join(s.split())):false
|
||||
34(35,36) element: PyLambdaExpression
|
||||
35(37) element: null. Condition: (lambda s: s):false
|
||||
36(37) element: null. Condition: (lambda s: s):true
|
||||
37(38) WRITE ACCESS: processFunc
|
||||
38(39) element: PyPrintStatement
|
||||
39(40) element: PyListCompExpression
|
||||
40(41) element: PyReferenceExpression: methodList
|
||||
41(42,56) READ ACCESS: methodList
|
||||
42(43) element: PyTargetExpression: method
|
||||
43(44) WRITE ACCESS: method
|
||||
44(45) element: PyBinaryExpression
|
||||
45(46) READ ACCESS: method
|
||||
46(47) READ ACCESS: spacing
|
||||
47(48) element: PyCallExpression: method.ljust
|
||||
48(49) READ ACCESS: processFunc
|
||||
49(50) READ ACCESS: str
|
||||
50(51) READ ACCESS: getattr
|
||||
51(52) READ ACCESS: object
|
||||
52(53) READ ACCESS: method
|
||||
53(54) element: PyCallExpression: getattr
|
||||
54(55) element: PyCallExpression: str
|
||||
55(42,56) element: PyCallExpression: processFunc
|
||||
56(57) element: PyCallExpression: "\n".join
|
||||
57() element: null
|
||||
30(32) element: null. Condition: (lambda s: " ".join(s.split())):false
|
||||
31(35) element: null. Condition: (lambda s: " ".join(s.split())):true
|
||||
32(33,34) element: PyLambdaExpression
|
||||
33(35) element: null. Condition: (lambda s: s):false
|
||||
34(35) element: null. Condition: (lambda s: s):true
|
||||
35(36) WRITE ACCESS: processFunc
|
||||
36(37) element: PyPrintStatement
|
||||
37(38) element: PyListCompExpression
|
||||
38(39) element: PyReferenceExpression: methodList
|
||||
39(40,54) READ ACCESS: methodList
|
||||
40(41) element: PyTargetExpression: method
|
||||
41(42) WRITE ACCESS: method
|
||||
42(43) element: PyBinaryExpression
|
||||
43(44) READ ACCESS: method
|
||||
44(45) READ ACCESS: spacing
|
||||
45(46) element: PyCallExpression: method.ljust
|
||||
46(47) READ ACCESS: processFunc
|
||||
47(48) READ ACCESS: str
|
||||
48(49) READ ACCESS: getattr
|
||||
49(50) READ ACCESS: object
|
||||
50(51) READ ACCESS: method
|
||||
51(52) element: PyCallExpression: getattr
|
||||
52(53) element: PyCallExpression: str
|
||||
53(40,54) element: PyCallExpression: processFunc
|
||||
54(55) element: PyCallExpression: "\n".join
|
||||
55() element: null
|
||||
@@ -1,24 +1,34 @@
|
||||
0(1) element: null
|
||||
1(2,4) element: PyIfStatement
|
||||
2(3) element: PyStatementList. Condition: 0j:true
|
||||
3(4) element: PyPassStatement
|
||||
4(5,7) element: PyIfStatement
|
||||
5(6) element: PyStatementList. Condition: 1j:true
|
||||
6(9) element: PyPassStatement
|
||||
7(8) element: PyStatementList. Condition: 1j:false
|
||||
8(9) element: PyPassStatement
|
||||
9(10,12) element: PyIfStatement
|
||||
10(11) element: PyStatementList. Condition: 2j:true
|
||||
11(15) element: PyPassStatement
|
||||
12(13,15) element: PyIfPartElif. Condition: 2j:false
|
||||
13(14) element: PyStatementList. Condition: 3j:true
|
||||
14(15) element: PyPassStatement
|
||||
15(16,18) element: PyIfStatement
|
||||
16(17) element: PyStatementList. Condition: 4j:true
|
||||
17(23) element: PyPassStatement
|
||||
18(19,21) element: PyIfPartElif. Condition: 4j:false
|
||||
19(20) element: PyStatementList. Condition: 5j:true
|
||||
20(23) element: PyPassStatement
|
||||
21(22) element: PyStatementList. Condition: 5j:false
|
||||
22(23) element: PyExpressionStatement
|
||||
23() element: null
|
||||
1(2,3) element: PyIfStatement
|
||||
2(6) element: null. Condition: 0j:false
|
||||
3(4) element: null. Condition: 0j:true
|
||||
4(5) element: PyStatementList
|
||||
5(6) element: PyPassStatement
|
||||
6(7,8) element: PyIfStatement
|
||||
7(11) element: null. Condition: 1j:false
|
||||
8(9) element: null. Condition: 1j:true
|
||||
9(10) element: PyStatementList
|
||||
10(13) element: PyPassStatement
|
||||
11(12) element: PyStatementList
|
||||
12(13) element: PyPassStatement
|
||||
13(14,15) element: PyIfStatement
|
||||
14(18,19) element: null. Condition: 2j:false
|
||||
15(16) element: null. Condition: 2j:true
|
||||
16(17) element: PyStatementList
|
||||
17(22) element: PyPassStatement
|
||||
18(22) element: null. Condition: 3j:false
|
||||
19(20) element: null. Condition: 3j:true
|
||||
20(21) element: PyStatementList
|
||||
21(22) element: PyPassStatement
|
||||
22(23,24) element: PyIfStatement
|
||||
23(27,28) element: null. Condition: 4j:false
|
||||
24(25) element: null. Condition: 4j:true
|
||||
25(26) element: PyStatementList
|
||||
26(33) element: PyPassStatement
|
||||
27(31) element: null. Condition: 5j:false
|
||||
28(29) element: null. Condition: 5j:true
|
||||
29(30) element: PyStatementList
|
||||
30(33) element: PyPassStatement
|
||||
31(32) element: PyStatementList
|
||||
32(33) element: PyExpressionStatement
|
||||
33() element: null
|
||||
@@ -1,26 +1,32 @@
|
||||
0(1) element: null
|
||||
1(2) element: PyIfStatement
|
||||
2(3,6) READ ACCESS: c
|
||||
3(4) element: PyStatementList. Condition: c:true
|
||||
4(5) ASSERTTYPE ACCESS: c
|
||||
5(12) element: PyPassStatement
|
||||
6(7) element: PyIfPartElif. Condition: c:false
|
||||
7(12) READ ACCESS: False
|
||||
8(9) element: PyStatementList. Condition: False:true
|
||||
9(10) ASSERTTYPE ACCESS: False
|
||||
10(11) element: PyAssignmentStatement
|
||||
11(12) WRITE ACCESS: a
|
||||
12(13) element: PyIfStatement
|
||||
13(14,17) READ ACCESS: d
|
||||
14(15) element: PyStatementList. Condition: d:true
|
||||
15(16) ASSERTTYPE ACCESS: d
|
||||
16(25) element: PyPassStatement
|
||||
17(18) element: PyIfPartElif. Condition: d:false
|
||||
18(23) READ ACCESS: False
|
||||
19(20) element: PyStatementList. Condition: False:true
|
||||
20(21) ASSERTTYPE ACCESS: False
|
||||
21(22) element: PyAssignmentStatement
|
||||
22(25) WRITE ACCESS: b
|
||||
23(24) element: PyStatementList. Condition: False:false
|
||||
24(25) element: PyPassStatement
|
||||
25() element: null
|
||||
2(3,4) READ ACCESS: c
|
||||
3(8) element: null. Condition: c:false
|
||||
4(5) element: null. Condition: c:true
|
||||
5(6) ASSERTTYPE ACCESS: c
|
||||
6(7) element: PyStatementList
|
||||
7(15) element: PyPassStatement
|
||||
8(9,10) READ ACCESS: False
|
||||
9(15) element: null. Condition: False:false
|
||||
10(11) element: null. Condition: False:true
|
||||
11() ASSERTTYPE ACCESS: False
|
||||
12(13) element: PyStatementList
|
||||
13(14) element: PyAssignmentStatement
|
||||
14(15) WRITE ACCESS: a
|
||||
15(16) element: PyIfStatement
|
||||
16(17,18) READ ACCESS: d
|
||||
17(22) element: null. Condition: d:false
|
||||
18(19) element: null. Condition: d:true
|
||||
19(20) ASSERTTYPE ACCESS: d
|
||||
20(21) element: PyStatementList
|
||||
21(31) element: PyPassStatement
|
||||
22(23,24) READ ACCESS: False
|
||||
23(29) element: null. Condition: False:false
|
||||
24(25) element: null. Condition: False:true
|
||||
25() ASSERTTYPE ACCESS: False
|
||||
26(27) element: PyStatementList
|
||||
27(28) element: PyAssignmentStatement
|
||||
28(31) WRITE ACCESS: b
|
||||
29(30) element: PyStatementList
|
||||
30(31) element: PyPassStatement
|
||||
31() element: null
|
||||
@@ -1,25 +1,31 @@
|
||||
0(1) element: null
|
||||
1(2) element: PyIfStatement
|
||||
2(3,6) READ ACCESS: c
|
||||
3(4) element: PyStatementList. Condition: c:true
|
||||
4(5) ASSERTTYPE ACCESS: c
|
||||
5(11) element: PyPassStatement
|
||||
6(7) element: PyIfPartElif. Condition: c:false
|
||||
7(8) READ ACCESS: True
|
||||
8(9) element: PyStatementList. Condition: True:true
|
||||
9(10) ASSERTTYPE ACCESS: True
|
||||
10(11) element: PyPassStatement
|
||||
11(12) element: PyIfStatement
|
||||
12(13,16) READ ACCESS: d
|
||||
13(14) element: PyStatementList. Condition: d:true
|
||||
14(15) ASSERTTYPE ACCESS: d
|
||||
15(24) element: PyPassStatement
|
||||
16(17) element: PyIfPartElif. Condition: d:false
|
||||
17(18) READ ACCESS: True
|
||||
18(19) element: PyStatementList. Condition: True:true
|
||||
19(20) ASSERTTYPE ACCESS: True
|
||||
20(24) element: PyPassStatement
|
||||
21(22) element: PyStatementList. Condition: True:false
|
||||
22(23) element: PyAssignmentStatement
|
||||
23(24) WRITE ACCESS: e
|
||||
24() element: null
|
||||
2(3,4) READ ACCESS: c
|
||||
3(8) element: null. Condition: c:false
|
||||
4(5) element: null. Condition: c:true
|
||||
5(6) ASSERTTYPE ACCESS: c
|
||||
6(7) element: PyStatementList
|
||||
7(14) element: PyPassStatement
|
||||
8(9,10) READ ACCESS: True
|
||||
9(14) element: null. Condition: True:false
|
||||
10(11) element: null. Condition: True:true
|
||||
11(12) ASSERTTYPE ACCESS: True
|
||||
12(13) element: PyStatementList
|
||||
13(14) element: PyPassStatement
|
||||
14(15) element: PyIfStatement
|
||||
15(16,17) READ ACCESS: d
|
||||
16(21) element: null. Condition: d:false
|
||||
17(18) element: null. Condition: d:true
|
||||
18(19) ASSERTTYPE ACCESS: d
|
||||
19(20) element: PyStatementList
|
||||
20(30) element: PyPassStatement
|
||||
21(22,23) READ ACCESS: True
|
||||
22() element: null. Condition: True:false
|
||||
23(24) element: null. Condition: True:true
|
||||
24(25) ASSERTTYPE ACCESS: True
|
||||
25(26) element: PyStatementList
|
||||
26(30) element: PyPassStatement
|
||||
27(28) element: PyStatementList
|
||||
28(29) element: PyAssignmentStatement
|
||||
29(30) WRITE ACCESS: e
|
||||
30() element: null
|
||||
@@ -1,17 +1,19 @@
|
||||
0(1) element: null
|
||||
1(2) element: PyIfStatement
|
||||
2(3,13) READ ACCESS: markup
|
||||
3(4) element: PyStatementList. Condition: markup:true
|
||||
4(5) ASSERTTYPE ACCESS: markup
|
||||
5(6) element: PyTryExceptStatement
|
||||
6(7,9) element: PyTryPart
|
||||
7(8,9) element: PyReturnStatement
|
||||
8(9,16) READ ACCESS: renderer
|
||||
9(10) element: PyExceptPart
|
||||
10(11) READ ACCESS: KeyError
|
||||
11(12) element: PyRaiseStatement
|
||||
12(16) READ ACCESS: Error
|
||||
13(14) element: PyStatementList. Condition: markup:false
|
||||
14(15) element: PyReturnStatement
|
||||
15(16) READ ACCESS: body
|
||||
16() element: null
|
||||
2(3,4) READ ACCESS: markup
|
||||
3(15) element: null. Condition: markup:false
|
||||
4(5) element: null. Condition: markup:true
|
||||
5(6) ASSERTTYPE ACCESS: markup
|
||||
6(7) element: PyStatementList
|
||||
7(8) element: PyTryExceptStatement
|
||||
8(9,11) element: PyTryPart
|
||||
9(10,11) element: PyReturnStatement
|
||||
10(11,18) READ ACCESS: renderer
|
||||
11(12) element: PyExceptPart
|
||||
12(13) READ ACCESS: KeyError
|
||||
13(14) element: PyRaiseStatement
|
||||
14(18) READ ACCESS: Error
|
||||
15(16) element: PyStatementList
|
||||
16(17) element: PyReturnStatement
|
||||
17(18) READ ACCESS: body
|
||||
18() element: null
|
||||
@@ -1,29 +1,36 @@
|
||||
0(1) element: null
|
||||
1(2) element: PyIfStatement
|
||||
2(7) READ ACCESS: False
|
||||
3(4) element: PyStatementList. Condition: False:true
|
||||
4(5) ASSERTTYPE ACCESS: False
|
||||
5(6) element: PyAssignmentStatement
|
||||
6(7) WRITE ACCESS: a
|
||||
7(8) element: PyIfStatement
|
||||
8(13) READ ACCESS: False
|
||||
9(10) element: PyStatementList. Condition: False:true
|
||||
10(11) ASSERTTYPE ACCESS: False
|
||||
11(12) element: PyAssignmentStatement
|
||||
12(15) WRITE ACCESS: b
|
||||
13(14) element: PyStatementList. Condition: False:false
|
||||
14(15) element: PyPassStatement
|
||||
15(16) element: PyIfStatement
|
||||
16(21) READ ACCESS: False
|
||||
17(18) element: PyStatementList. Condition: False:true
|
||||
18(19) ASSERTTYPE ACCESS: False
|
||||
19(20) element: PyAssignmentStatement
|
||||
20(28) WRITE ACCESS: c
|
||||
21(22) element: PyIfPartElif. Condition: False:false
|
||||
22(23,26) READ ACCESS: d
|
||||
23(24) element: PyStatementList. Condition: d:true
|
||||
24(25) ASSERTTYPE ACCESS: d
|
||||
25(28) element: PyPassStatement
|
||||
26(27) element: PyStatementList. Condition: d:false
|
||||
27(28) element: PyPassStatement
|
||||
28() element: null
|
||||
2(3,4) READ ACCESS: False
|
||||
3(9) element: null. Condition: False:false
|
||||
4(5) element: null. Condition: False:true
|
||||
5() ASSERTTYPE ACCESS: False
|
||||
6(7) element: PyStatementList
|
||||
7(8) element: PyAssignmentStatement
|
||||
8(9) WRITE ACCESS: a
|
||||
9(10) element: PyIfStatement
|
||||
10(11,12) READ ACCESS: False
|
||||
11(17) element: null. Condition: False:false
|
||||
12(13) element: null. Condition: False:true
|
||||
13() ASSERTTYPE ACCESS: False
|
||||
14(15) element: PyStatementList
|
||||
15(16) element: PyAssignmentStatement
|
||||
16(19) WRITE ACCESS: b
|
||||
17(18) element: PyStatementList
|
||||
18(19) element: PyPassStatement
|
||||
19(20) element: PyIfStatement
|
||||
20(21,22) READ ACCESS: False
|
||||
21(27) element: null. Condition: False:false
|
||||
22(23) element: null. Condition: False:true
|
||||
23() ASSERTTYPE ACCESS: False
|
||||
24(25) element: PyStatementList
|
||||
25(26) element: PyAssignmentStatement
|
||||
26(35) WRITE ACCESS: c
|
||||
27(28,29) READ ACCESS: d
|
||||
28(33) element: null. Condition: d:false
|
||||
29(30) element: null. Condition: d:true
|
||||
30(31) ASSERTTYPE ACCESS: d
|
||||
31(32) element: PyStatementList
|
||||
32(35) element: PyPassStatement
|
||||
33(34) element: PyStatementList
|
||||
34(35) element: PyPassStatement
|
||||
35() element: null
|
||||
@@ -1,29 +1,36 @@
|
||||
0(1) element: null
|
||||
1(2) element: PyIfStatement
|
||||
2(3) READ ACCESS: True
|
||||
3(4) element: PyStatementList. Condition: True:true
|
||||
4(5) ASSERTTYPE ACCESS: True
|
||||
5(6) element: PyPassStatement
|
||||
6(7) element: PyIfStatement
|
||||
7(8) READ ACCESS: True
|
||||
8(9) element: PyStatementList. Condition: True:true
|
||||
9(10) ASSERTTYPE ACCESS: True
|
||||
10(14) element: PyPassStatement
|
||||
11(12) element: PyStatementList. Condition: True:false
|
||||
12(13) element: PyAssignmentStatement
|
||||
13(14) WRITE ACCESS: b
|
||||
14(15) element: PyIfStatement
|
||||
15(16) READ ACCESS: True
|
||||
16(17) element: PyStatementList. Condition: True:true
|
||||
17(18) ASSERTTYPE ACCESS: True
|
||||
18(28) element: PyPassStatement
|
||||
19(20) element: PyIfPartElif. Condition: True:false
|
||||
20(21) READ ACCESS: c
|
||||
21(22) element: PyStatementList. Condition: c:true
|
||||
22(23) ASSERTTYPE ACCESS: c
|
||||
23(24) element: PyAssignmentStatement
|
||||
24(28) WRITE ACCESS: d
|
||||
25(26) element: PyStatementList. Condition: c:false
|
||||
26(27) element: PyAssignmentStatement
|
||||
27(28) WRITE ACCESS: e
|
||||
28() element: null
|
||||
2(3,4) READ ACCESS: True
|
||||
3(8) element: null. Condition: True:false
|
||||
4(5) element: null. Condition: True:true
|
||||
5(6) ASSERTTYPE ACCESS: True
|
||||
6(7) element: PyStatementList
|
||||
7(8) element: PyPassStatement
|
||||
8(9) element: PyIfStatement
|
||||
9(10,11) READ ACCESS: True
|
||||
10() element: null. Condition: True:false
|
||||
11(12) element: null. Condition: True:true
|
||||
12(13) ASSERTTYPE ACCESS: True
|
||||
13(14) element: PyStatementList
|
||||
14(18) element: PyPassStatement
|
||||
15(16) element: PyStatementList
|
||||
16(17) element: PyAssignmentStatement
|
||||
17(18) WRITE ACCESS: b
|
||||
18(19) element: PyIfStatement
|
||||
19(20,21) READ ACCESS: True
|
||||
20(25) element: null. Condition: True:false
|
||||
21(22) element: null. Condition: True:true
|
||||
22(23) ASSERTTYPE ACCESS: True
|
||||
23(24) element: PyStatementList
|
||||
24(35) element: PyPassStatement
|
||||
25(26,27) READ ACCESS: c
|
||||
26() element: null. Condition: c:false
|
||||
27(28) element: null. Condition: c:true
|
||||
28() ASSERTTYPE ACCESS: c
|
||||
29(30) element: PyStatementList
|
||||
30(31) element: PyAssignmentStatement
|
||||
31(35) WRITE ACCESS: d
|
||||
32(33) element: PyStatementList
|
||||
33(34) element: PyAssignmentStatement
|
||||
34(35) WRITE ACCESS: e
|
||||
35() element: null
|
||||
@@ -1,12 +1,14 @@
|
||||
0(1) element: null
|
||||
1(2) element: PyIfStatement
|
||||
2(3) READ ACCESS: xs
|
||||
3(4,8) READ ACCESS: None
|
||||
4(5) element: PyStatementList. Condition: xs is None:true
|
||||
5(6) ASSERTTYPE ACCESS: xs
|
||||
6(7) element: PyAssignmentStatement
|
||||
7(9) WRITE ACCESS: xs
|
||||
8(9) ASSERTTYPE ACCESS: xs
|
||||
9(10) element: PyPrintStatement
|
||||
10(11) READ ACCESS: xs
|
||||
11() element: null
|
||||
3(4,6) READ ACCESS: None
|
||||
4(5) element: null. Condition: xs is None:false
|
||||
5(11) ASSERTTYPE ACCESS: xs
|
||||
6(7) element: null. Condition: xs is None:true
|
||||
7(8) ASSERTTYPE ACCESS: xs
|
||||
8(9) element: PyStatementList
|
||||
9(10) element: PyAssignmentStatement
|
||||
10(11) WRITE ACCESS: xs
|
||||
11(12) element: PyPrintStatement
|
||||
12(13) READ ACCESS: xs
|
||||
13() element: null
|
||||
@@ -3,20 +3,24 @@
|
||||
2(3) READ ACCESS: isinstance
|
||||
3(4) READ ACCESS: x
|
||||
4(5) READ ACCESS: str
|
||||
5(6,18) element: PyCallExpression: isinstance
|
||||
6(7) element: PyStatementList. Condition: not isinstance(x, str):true
|
||||
7(8) ASSERTTYPE ACCESS: x
|
||||
8(9) element: PyIfStatement
|
||||
9(10) READ ACCESS: x
|
||||
10(11,15) READ ACCESS: None
|
||||
11(12) element: PyStatementList. Condition: x is None:true
|
||||
12(13) ASSERTTYPE ACCESS: x
|
||||
13(14) element: PyPrintStatement
|
||||
14(16) READ ACCESS: x
|
||||
15(16) ASSERTTYPE ACCESS: x
|
||||
16(17) element: PyPrintStatement
|
||||
17(19) READ ACCESS: x
|
||||
18(19) ASSERTTYPE ACCESS: x
|
||||
5(6,8) element: PyCallExpression: isinstance
|
||||
6(7) element: null. Condition: isinstance(x, str):false
|
||||
7(10) ASSERTTYPE ACCESS: x
|
||||
8(9) element: null. Condition: isinstance(x, str):true
|
||||
9(23) ASSERTTYPE ACCESS: x
|
||||
10(11) element: PyStatementList
|
||||
11(12) element: PyIfStatement
|
||||
12(13) READ ACCESS: x
|
||||
13(14,16) READ ACCESS: None
|
||||
14(15) element: null. Condition: x is None:false
|
||||
15(21) ASSERTTYPE ACCESS: x
|
||||
16(17) element: null. Condition: x is None:true
|
||||
17(18) ASSERTTYPE ACCESS: x
|
||||
18(19) element: PyStatementList
|
||||
19(20) element: PyPrintStatement
|
||||
20(21) READ ACCESS: x
|
||||
21() element: null
|
||||
21(22) element: PyPrintStatement
|
||||
22(23) READ ACCESS: x
|
||||
23(24) element: PyPrintStatement
|
||||
24(25) READ ACCESS: x
|
||||
25() element: null
|
||||
@@ -5,16 +5,18 @@
|
||||
4(5) READ ACCESS: isinstance
|
||||
5(6) READ ACCESS: s
|
||||
6(7) READ ACCESS: basestring
|
||||
7(8,14) element: PyCallExpression: isinstance
|
||||
8(9) element: PyStatementList. Condition: (isinstance(s, basestring)):true
|
||||
9(10) ASSERTTYPE ACCESS: s
|
||||
10(11) element: PyAssignmentStatement
|
||||
11(12) READ ACCESS: s
|
||||
12(13) element: PyCallExpression: s.split
|
||||
13(19) WRITE ACCESS: s2
|
||||
14(15) element: PyStatementList. Condition: (isinstance(s, basestring)):false
|
||||
15(16) ASSERTTYPE ACCESS: s
|
||||
16(17) element: PyAssignmentStatement
|
||||
17(18) READ ACCESS: s
|
||||
18(19) WRITE ACCESS: x
|
||||
19() element: null
|
||||
7(8,10) element: PyCallExpression: isinstance
|
||||
8(9) element: null. Condition: (isinstance(s, basestring)):false
|
||||
9(17) ASSERTTYPE ACCESS: s
|
||||
10(11) element: null. Condition: (isinstance(s, basestring)):true
|
||||
11(12) ASSERTTYPE ACCESS: s
|
||||
12(13) element: PyStatementList
|
||||
13(14) element: PyAssignmentStatement
|
||||
14(15) READ ACCESS: s
|
||||
15(16) element: PyCallExpression: s.split
|
||||
16(21) WRITE ACCESS: s2
|
||||
17(18) element: PyStatementList
|
||||
18(19) element: PyAssignmentStatement
|
||||
19(20) READ ACCESS: s
|
||||
20(21) WRITE ACCESS: x
|
||||
21() element: null
|
||||
@@ -3,26 +3,31 @@
|
||||
2(3) WRITE ACCESS: var
|
||||
3(4) element: PyIfStatement
|
||||
4(5) READ ACCESS: a
|
||||
5(6,9) READ ACCESS: b
|
||||
6(7) element: PyStatementList. Condition: a == b:true
|
||||
7(8) element: PyAssignmentStatement
|
||||
8(25) WRITE ACCESS: var
|
||||
9(10) element: PyIfPartElif. Condition: a == b:false
|
||||
10(11) READ ACCESS: aa
|
||||
11(12,22) READ ACCESS: bb
|
||||
12(13) element: PyStatementList. Condition: aa == bb:true
|
||||
13(14) element: PyAssignmentStatement
|
||||
14(15) READ ACCESS: same_changet_expression
|
||||
15(16) WRITE ACCESS: bbb
|
||||
16(17) element: PyIfStatement
|
||||
17(18,25) READ ACCESS: bbb
|
||||
18(19) element: PyStatementList. Condition: bbb:true
|
||||
19(20) ASSERTTYPE ACCESS: bbb
|
||||
20(21) element: PyAssignmentStatement
|
||||
21(25) WRITE ACCESS: var
|
||||
22(23) element: PyStatementList. Condition: aa == bb:false
|
||||
23(24) element: PyAssignmentStatement
|
||||
24(25) WRITE ACCESS: var
|
||||
25(26) element: PyReturnStatement
|
||||
26(27) READ ACCESS: var
|
||||
27() element: null
|
||||
5(6,7) READ ACCESS: b
|
||||
6(11) element: null. Condition: a == b:false
|
||||
7(8) element: null. Condition: a == b:true
|
||||
8(9) element: PyStatementList
|
||||
9(10) element: PyAssignmentStatement
|
||||
10(30) WRITE ACCESS: var
|
||||
11(12) READ ACCESS: aa
|
||||
12(13,14) READ ACCESS: bb
|
||||
13(27) element: null. Condition: aa == bb:false
|
||||
14(15) element: null. Condition: aa == bb:true
|
||||
15(16) element: PyStatementList
|
||||
16(17) element: PyAssignmentStatement
|
||||
17(18) READ ACCESS: same_changet_expression
|
||||
18(19) WRITE ACCESS: bbb
|
||||
19(20) element: PyIfStatement
|
||||
20(21,22) READ ACCESS: bbb
|
||||
21(30) element: null. Condition: bbb:false
|
||||
22(23) element: null. Condition: bbb:true
|
||||
23(24) ASSERTTYPE ACCESS: bbb
|
||||
24(25) element: PyStatementList
|
||||
25(26) element: PyAssignmentStatement
|
||||
26(30) WRITE ACCESS: var
|
||||
27(28) element: PyStatementList
|
||||
28(29) element: PyAssignmentStatement
|
||||
29(30) WRITE ACCESS: var
|
||||
30(31) element: PyReturnStatement
|
||||
31(32) READ ACCESS: var
|
||||
32() element: null
|
||||
@@ -1,14 +1,16 @@
|
||||
0(1) element: null
|
||||
1(2) element: PyWhileStatement
|
||||
2(3,11) READ ACCESS: x
|
||||
3(4) element: PyStatementList. Condition: x:true
|
||||
4(5) element: PyMatchStatement
|
||||
5(6) READ ACCESS: x
|
||||
6(7,9) refutable pattern: 42
|
||||
7(8) matched pattern: 42
|
||||
8(11) element: PyBreakStatement
|
||||
9(10) element: PyExpressionStatement
|
||||
10(1) READ ACCESS: y
|
||||
2(3,4) READ ACCESS: x
|
||||
3(13) element: null. Condition: x:false
|
||||
4(5) element: null. Condition: x:true
|
||||
5(6) element: PyStatementList
|
||||
6(7) element: PyMatchStatement
|
||||
7(8) READ ACCESS: x
|
||||
8(9,11) refutable pattern: 42
|
||||
9(10) matched pattern: 42
|
||||
10(13) element: PyBreakStatement
|
||||
11(12) element: PyExpressionStatement
|
||||
12(13) READ ACCESS: z
|
||||
13() element: null
|
||||
12(1) READ ACCESS: y
|
||||
13(14) element: PyExpressionStatement
|
||||
14(15) READ ACCESS: z
|
||||
15() element: null
|
||||
@@ -1,14 +1,16 @@
|
||||
0(1) element: null
|
||||
1(2) element: PyWhileStatement
|
||||
2(3,11) READ ACCESS: x
|
||||
3(4) element: PyStatementList. Condition: x:true
|
||||
4(5) element: PyMatchStatement
|
||||
5(6) READ ACCESS: x
|
||||
6(7,9) refutable pattern: 42
|
||||
7(8) matched pattern: 42
|
||||
8(1) element: PyContinueStatement
|
||||
9(10) element: PyExpressionStatement
|
||||
10(1) READ ACCESS: y
|
||||
2(3,4) READ ACCESS: x
|
||||
3(13) element: null. Condition: x:false
|
||||
4(5) element: null. Condition: x:true
|
||||
5(6) element: PyStatementList
|
||||
6(7) element: PyMatchStatement
|
||||
7(8) READ ACCESS: x
|
||||
8(9,11) refutable pattern: 42
|
||||
9(10) matched pattern: 42
|
||||
10(1) element: PyContinueStatement
|
||||
11(12) element: PyExpressionStatement
|
||||
12(13) READ ACCESS: z
|
||||
13() element: null
|
||||
12(1) READ ACCESS: y
|
||||
13(14) element: PyExpressionStatement
|
||||
14(15) READ ACCESS: z
|
||||
15() element: null
|
||||
@@ -3,10 +3,10 @@
|
||||
2(3) WRITE ACCESS: x
|
||||
3(4) element: PyBinaryExpression
|
||||
4(5,6) READ ACCESS: x
|
||||
5(13) element: null. Condition: x > 0:false
|
||||
5(10) element: null. Condition: x > 0:false
|
||||
6(7) element: null. Condition: x > 0:true
|
||||
7(8,9) READ ACCESS: x
|
||||
8(13) element: null. Condition: x < 10:false
|
||||
8(10) element: null. Condition: x < 10:false
|
||||
9(10) element: null. Condition: x < 10:true
|
||||
10(11) element: PyStatementList. Condition: x > 0 and x < 10:true
|
||||
11(12) element: PyExpressionStatement
|
||||
|
||||
@@ -3,20 +3,18 @@
|
||||
2(3) WRITE ACCESS: x
|
||||
3(4) element: PyBinaryExpression
|
||||
4(5,6) READ ACCESS: x
|
||||
5(19) element: null. Condition: x % 4 == 0:false
|
||||
5(14) element: null. Condition: x % 4 == 0:false
|
||||
6(7) element: null. Condition: x % 4 == 0:true
|
||||
7(8) element: PyBinaryExpression
|
||||
8(9,10) READ ACCESS: x
|
||||
9(16) element: null. Condition: x % 400 == 0:true
|
||||
10(11) element: null. Condition: x % 400 == 0:false
|
||||
9(11) element: null. Condition: x % 400 == 0:false
|
||||
10(14) element: null. Condition: x % 400 == 0:true
|
||||
11(12,13) READ ACCESS: x
|
||||
12(19) element: null. Condition: x % 100 != 0:false
|
||||
13(14,15) element: null. Condition: x % 100 != 0:true
|
||||
14(19) element: null. Condition: (x % 400 == 0 or x % 100 != 0):false
|
||||
15(16) element: null. Condition: (x % 400 == 0 or x % 100 != 0):true
|
||||
16(17) element: PyStatementList. Condition: x % 4 == 0 and (x % 400 == 0 or x % 100 != 0):true
|
||||
12(14) element: null. Condition: x % 100 != 0:false
|
||||
13(14) element: null. Condition: x % 100 != 0:true
|
||||
14(15) element: PyStatementList. Condition: x % 4 == 0 and (x % 400 == 0 or x % 100 != 0):true
|
||||
15(16) element: PyExpressionStatement
|
||||
16(17) READ ACCESS: y
|
||||
17(18) element: PyExpressionStatement
|
||||
18(19) READ ACCESS: y
|
||||
19(20) element: PyExpressionStatement
|
||||
20(21) READ ACCESS: z
|
||||
21() element: null
|
||||
18(19) READ ACCESS: z
|
||||
19() element: null
|
||||
@@ -3,10 +3,10 @@
|
||||
2(3) WRITE ACCESS: x
|
||||
3(4) element: PyBinaryExpression
|
||||
4(5,6) READ ACCESS: x
|
||||
5(10) element: null. Condition: x > 0:true
|
||||
6(7) element: null. Condition: x > 0:false
|
||||
5(7) element: null. Condition: x > 0:false
|
||||
6(10) element: null. Condition: x > 0:true
|
||||
7(8,9) READ ACCESS: x
|
||||
8(13) element: null. Condition: x < 0:false
|
||||
8(10) element: null. Condition: x < 0:false
|
||||
9(10) element: null. Condition: x < 0:true
|
||||
10(11) element: PyStatementList. Condition: x > 0 or x < 0:true
|
||||
11(12) element: PyExpressionStatement
|
||||
|
||||
@@ -7,8 +7,8 @@
|
||||
6(7) matched pattern: [x1, x2, x3]
|
||||
7(8) element: PyBinaryExpression
|
||||
8(9,10) READ ACCESS: x1
|
||||
9(14) element: null. Condition: x1:true
|
||||
10(11) element: null. Condition: x1:false
|
||||
9(11) element: null. Condition: x1:false
|
||||
10(14) element: null. Condition: x1:true
|
||||
11(12,13) READ ACCESS: x2
|
||||
12(14) element: null. Condition: x2:false
|
||||
13(14) element: null. Condition: x2:true
|
||||
|
||||
@@ -5,10 +5,10 @@
|
||||
4(5) matched pattern: [x]
|
||||
5(6) element: PyBinaryExpression
|
||||
6(7,8) READ ACCESS: x
|
||||
7(15) element: null. Condition: x > 0:false
|
||||
7(12) element: null. Condition: x > 0:false
|
||||
8(9) element: null. Condition: x > 0:true
|
||||
9(10,11) READ ACCESS: x
|
||||
10(15) element: null. Condition: x % 2 == 0:false
|
||||
10(12) element: null. Condition: x % 2 == 0:false
|
||||
11(12) element: null. Condition: x % 2 == 0:true
|
||||
12(13) element: PyStatementList. Condition: x > 0 and x % 2 == 0:true
|
||||
13(14) element: PyExpressionStatement
|
||||
|
||||
@@ -2,8 +2,8 @@
|
||||
1(2) element: PyAssignmentStatement
|
||||
2(3) element: PyBinaryExpression
|
||||
3(4,5) READ ACCESS: bar
|
||||
4(9) element: null. Condition: bar:true
|
||||
5(6) element: null. Condition: bar:false
|
||||
4(6) element: null. Condition: bar:false
|
||||
5(9) element: null. Condition: bar:true
|
||||
6(7,8) READ ACCESS: baz
|
||||
7(9) element: null. Condition: baz:false
|
||||
8(9) element: null. Condition: baz:true
|
||||
|
||||
@@ -1,11 +1,15 @@
|
||||
0(1) element: null
|
||||
1(2) element: PyWhileStatement
|
||||
2(3,10) READ ACCESS: foo
|
||||
3(4) element: PyStatementList. Condition: foo:true
|
||||
4(5) element: PyIfStatement
|
||||
5(6,9) READ ACCESS: condition
|
||||
6(7) element: PyStatementList. Condition: condition:true
|
||||
7(8) ASSERTTYPE ACCESS: condition
|
||||
8(10) element: PyReturnStatement
|
||||
9(1) element: PyPrintStatement
|
||||
10() element: null
|
||||
2(3,4) READ ACCESS: foo
|
||||
3(14) element: null. Condition: foo:false
|
||||
4(5) element: null. Condition: foo:true
|
||||
5(6) element: PyStatementList
|
||||
6(7) element: PyIfStatement
|
||||
7(8,9) READ ACCESS: condition
|
||||
8(13) element: null. Condition: condition:false
|
||||
9(10) element: null. Condition: condition:true
|
||||
10(11) ASSERTTYPE ACCESS: condition
|
||||
11(12) element: PyStatementList
|
||||
12(14) element: PyReturnStatement
|
||||
13(1) element: PyPrintStatement
|
||||
14() element: null
|
||||
@@ -2,10 +2,12 @@
|
||||
1(2) element: PyAssignmentStatement
|
||||
2(3) WRITE ACCESS: sibling
|
||||
3(4) element: PyIfStatement
|
||||
4(5,10) READ ACCESS: sibling
|
||||
5(6) element: PyStatementList. Condition: sibling:true
|
||||
6(7) ASSERTTYPE ACCESS: sibling
|
||||
7(8) element: PyAssignmentStatement
|
||||
8(9) element: PySubscriptionExpression
|
||||
9(10) READ ACCESS: sibling
|
||||
10() element: null
|
||||
4(5,6) READ ACCESS: sibling
|
||||
5(12) element: null. Condition: sibling:false
|
||||
6(7) element: null. Condition: sibling:true
|
||||
7(8) ASSERTTYPE ACCESS: sibling
|
||||
8(9) element: PyStatementList
|
||||
9(10) element: PyAssignmentStatement
|
||||
10(11) element: PySubscriptionExpression
|
||||
11(12) READ ACCESS: sibling
|
||||
12() element: null
|
||||
@@ -7,26 +7,30 @@
|
||||
6(7,10) element: PyAssignmentStatement
|
||||
7(8,10) READ ACCESS: open
|
||||
8(9,10) element: PyCallExpression: open
|
||||
9(10,19) WRITE ACCESS: status
|
||||
9(10,21) WRITE ACCESS: status
|
||||
10(11) element: PyFinallyPart
|
||||
11(12) element: PyIfStatement
|
||||
12(13) READ ACCESS: status
|
||||
13(14,18) READ ACCESS: None
|
||||
14(15) element: PyStatementList. Condition: status is not None:true
|
||||
15(16) ASSERTTYPE ACCESS: status
|
||||
16(17) element: PyPrintStatement
|
||||
17(31) READ ACCESS: status
|
||||
18(31) ASSERTTYPE ACCESS: status
|
||||
19(20) element: PyFinallyPart
|
||||
20(21) element: PyIfStatement
|
||||
21(22) READ ACCESS: status
|
||||
22(23,27) READ ACCESS: None
|
||||
23(24) element: PyStatementList. Condition: status is not None:true
|
||||
24(25) ASSERTTYPE ACCESS: status
|
||||
25(26) element: PyPrintStatement
|
||||
26(28) READ ACCESS: status
|
||||
27(28) ASSERTTYPE ACCESS: status
|
||||
28(29) element: PyExpressionStatement
|
||||
29(30) READ ACCESS: status
|
||||
30(31) element: PyCallExpression: status.close
|
||||
31() element: null
|
||||
13(14,16) READ ACCESS: None
|
||||
14(15) element: null. Condition: status is not None:false
|
||||
15() ASSERTTYPE ACCESS: status
|
||||
16(17) element: null. Condition: status is not None:true
|
||||
17(18) ASSERTTYPE ACCESS: status
|
||||
18(19) element: PyStatementList
|
||||
19(20) element: PyPrintStatement
|
||||
20() READ ACCESS: status
|
||||
21(22) element: PyFinallyPart
|
||||
22(23) element: PyIfStatement
|
||||
23(24) READ ACCESS: status
|
||||
24(25,27) READ ACCESS: None
|
||||
25(26) element: null. Condition: status is not None:false
|
||||
26(32) ASSERTTYPE ACCESS: status
|
||||
27(28) element: null. Condition: status is not None:true
|
||||
28(29) ASSERTTYPE ACCESS: status
|
||||
29(30) element: PyStatementList
|
||||
30(31) element: PyPrintStatement
|
||||
31(32) READ ACCESS: status
|
||||
32(33) element: PyExpressionStatement
|
||||
33(34) READ ACCESS: status
|
||||
34(35) element: PyCallExpression: status.close
|
||||
35() element: null
|
||||
@@ -2,64 +2,69 @@
|
||||
1(2) element: PyAssignmentStatement
|
||||
2(3) WRITE ACCESS: a
|
||||
3(4) element: PyTryExceptStatement
|
||||
4(5,56) element: PyTryPart
|
||||
5(6,56) element: PyAssignmentStatement
|
||||
6(7,56) WRITE ACCESS: b
|
||||
7(8,56) element: PyForStatement
|
||||
8(9,56) element: PyTargetExpression: x
|
||||
9(10,56) WRITE ACCESS: x
|
||||
10(11,56) element: PyTryExceptStatement
|
||||
11(12,46) element: PyTryPart
|
||||
12(13,46) element: PyAssignmentStatement
|
||||
13(14,46) WRITE ACCESS: c
|
||||
14(15,46) element: PyTryExceptStatement
|
||||
15(16,38) element: PyTryPart
|
||||
16(17,38) element: PyAssignmentStatement
|
||||
17(18,38) WRITE ACCESS: d
|
||||
18(19,38) element: PyIfStatement
|
||||
19(20,22,38) READ ACCESS: x
|
||||
20(21) element: PyStatementList. Condition: x == 0:true
|
||||
21(38,41) element: PyBreakStatement
|
||||
22(23,38) element: PyIfPartElif. Condition: x == 0:false
|
||||
23(24,26,38) READ ACCESS: x
|
||||
24(25) element: PyStatementList. Condition: x == 1:true
|
||||
25(7,38,41) element: PyContinueStatement
|
||||
26(27,38) element: PyIfPartElif. Condition: x == 1:false
|
||||
27(28,32,38) READ ACCESS: x
|
||||
28(29) element: PyStatementList. Condition: x == 2:true
|
||||
29(30,38) element: PyRaiseStatement
|
||||
30(31,38) READ ACCESS: Exception
|
||||
31(38) element: PyCallExpression: Exception
|
||||
32(33,38) element: PyIfPartElif. Condition: x == 2:false
|
||||
33(34,36,38) READ ACCESS: x
|
||||
34(35) element: PyStatementList. Condition: x == 3:true
|
||||
35(38) element: PyReturnStatement
|
||||
36(37,38) element: PyAssignmentStatement
|
||||
37(38,41) WRITE ACCESS: e
|
||||
38(39,46) element: PyFinallyPart
|
||||
39(40,46) element: PyAssignmentStatement
|
||||
40(46) WRITE ACCESS: f
|
||||
41(42,46) element: PyFinallyPart
|
||||
42(43,46) element: PyAssignmentStatement
|
||||
43(44,46,49) WRITE ACCESS: f
|
||||
44(45,46) element: PyAssignmentStatement
|
||||
45(46,49) WRITE ACCESS: g
|
||||
46(47,56) element: PyFinallyPart
|
||||
47(48,56) element: PyAssignmentStatement
|
||||
48(56) WRITE ACCESS: h
|
||||
49(50,56) element: PyFinallyPart
|
||||
50(51,56) element: PyAssignmentStatement
|
||||
51(52,54,56) WRITE ACCESS: h
|
||||
52(53,56) element: PyAssignmentStatement
|
||||
53(8,54,56) WRITE ACCESS: i
|
||||
54(55,56) element: PyAssignmentStatement
|
||||
55(56,59) WRITE ACCESS: j
|
||||
56(57) element: PyFinallyPart
|
||||
57(58) element: PyAssignmentStatement
|
||||
58(64) WRITE ACCESS: k
|
||||
59(60) element: PyFinallyPart
|
||||
60(61) element: PyAssignmentStatement
|
||||
61(62) WRITE ACCESS: k
|
||||
4(5,61) element: PyTryPart
|
||||
5(6,61) element: PyAssignmentStatement
|
||||
6(7,61) WRITE ACCESS: b
|
||||
7(8,61) element: PyForStatement
|
||||
8(9,61) element: PyTargetExpression: x
|
||||
9(10,61) WRITE ACCESS: x
|
||||
10(11,61) element: PyTryExceptStatement
|
||||
11(12,51) element: PyTryPart
|
||||
12(13,51) element: PyAssignmentStatement
|
||||
13(14,51) WRITE ACCESS: c
|
||||
14(15,51) element: PyTryExceptStatement
|
||||
15(16,43) element: PyTryPart
|
||||
16(17,43) element: PyAssignmentStatement
|
||||
17(18,43) WRITE ACCESS: d
|
||||
18(19,43) element: PyIfStatement
|
||||
19(20,21,43) READ ACCESS: x
|
||||
20(24) element: null. Condition: x == 0:false
|
||||
21(22) element: null. Condition: x == 0:true
|
||||
22(23) element: PyStatementList
|
||||
23(43,46) element: PyBreakStatement
|
||||
24(25,26,43) READ ACCESS: x
|
||||
25(29) element: null. Condition: x == 1:false
|
||||
26(27) element: null. Condition: x == 1:true
|
||||
27(28) element: PyStatementList
|
||||
28(7,43,46) element: PyContinueStatement
|
||||
29(30,31,43) READ ACCESS: x
|
||||
30(36) element: null. Condition: x == 2:false
|
||||
31(32) element: null. Condition: x == 2:true
|
||||
32(33) element: PyStatementList
|
||||
33(34,43) element: PyRaiseStatement
|
||||
34(35,43) READ ACCESS: Exception
|
||||
35(43) element: PyCallExpression: Exception
|
||||
36(37,38,43) READ ACCESS: x
|
||||
37(41) element: null. Condition: x == 3:false
|
||||
38(39) element: null. Condition: x == 3:true
|
||||
39(40) element: PyStatementList
|
||||
40(43) element: PyReturnStatement
|
||||
41(42,43) element: PyAssignmentStatement
|
||||
42(43,46) WRITE ACCESS: e
|
||||
43(44,51) element: PyFinallyPart
|
||||
44(45,51) element: PyAssignmentStatement
|
||||
45(51) WRITE ACCESS: f
|
||||
46(47,51) element: PyFinallyPart
|
||||
47(48,51) element: PyAssignmentStatement
|
||||
48(49,51,54) WRITE ACCESS: f
|
||||
49(50,51) element: PyAssignmentStatement
|
||||
50(51,54) WRITE ACCESS: g
|
||||
51(52,61) element: PyFinallyPart
|
||||
52(53,61) element: PyAssignmentStatement
|
||||
53(61) WRITE ACCESS: h
|
||||
54(55,61) element: PyFinallyPart
|
||||
55(56,61) element: PyAssignmentStatement
|
||||
56(57,59,61) WRITE ACCESS: h
|
||||
57(58,61) element: PyAssignmentStatement
|
||||
58(8,59,61) WRITE ACCESS: i
|
||||
59(60,61) element: PyAssignmentStatement
|
||||
60(61,64) WRITE ACCESS: j
|
||||
61(62) element: PyFinallyPart
|
||||
62(63) element: PyAssignmentStatement
|
||||
63(64) WRITE ACCESS: l
|
||||
64() element: null
|
||||
63(69) WRITE ACCESS: k
|
||||
64(65) element: PyFinallyPart
|
||||
65(66) element: PyAssignmentStatement
|
||||
66(67) WRITE ACCESS: k
|
||||
67(68) element: PyAssignmentStatement
|
||||
68(69) WRITE ACCESS: l
|
||||
69() element: null
|
||||
@@ -22,10 +22,12 @@
|
||||
21(22) element: PyIfStatement
|
||||
22(23) READ ACCESS: checkit
|
||||
23(24) READ ACCESS: x
|
||||
24(25,28) element: PyCallExpression: checkit
|
||||
25(26) element: PyStatementList. Condition: checkit(x):true
|
||||
26(27) element: PyPrintStatement
|
||||
27(30) READ ACCESS: x
|
||||
28(29) element: PyStatementList. Condition: checkit(x):false
|
||||
29(30) element: PyPassStatement
|
||||
30() element: null
|
||||
24(25,26) element: PyCallExpression: checkit
|
||||
25(30) element: null. Condition: checkit(x):false
|
||||
26(27) element: null. Condition: checkit(x):true
|
||||
27(28) element: PyStatementList
|
||||
28(29) element: PyPrintStatement
|
||||
29(32) READ ACCESS: x
|
||||
30(31) element: PyStatementList
|
||||
31(32) element: PyPassStatement
|
||||
32() element: null
|
||||
@@ -22,10 +22,12 @@
|
||||
21(22) element: PyWhileStatement
|
||||
22(23) READ ACCESS: checkit
|
||||
23(24) READ ACCESS: x
|
||||
24(25,30) element: PyCallExpression: checkit
|
||||
25(26) element: PyStatementList. Condition: checkit(x):true
|
||||
26(27) element: PyAssignmentStatement
|
||||
27(28) READ ACCESS: foo
|
||||
28(29) element: PyCallExpression: foo.bar
|
||||
29(21) WRITE ACCESS: x
|
||||
30() element: null
|
||||
24(25,26) element: PyCallExpression: checkit
|
||||
25(32) element: null. Condition: checkit(x):false
|
||||
26(27) element: null. Condition: checkit(x):true
|
||||
27(28) element: PyStatementList
|
||||
28(29) element: PyAssignmentStatement
|
||||
29(30) READ ACCESS: foo
|
||||
30(31) element: PyCallExpression: foo.bar
|
||||
31(21) WRITE ACCESS: x
|
||||
32() element: null
|
||||
@@ -10,15 +10,14 @@
|
||||
9(10) READ ACCESS: isinstance
|
||||
10(11) READ ACCESS: var
|
||||
11(12) READ ACCESS: A
|
||||
12(13,14) element: PyCallExpression: isinstance
|
||||
13(22) element: null. Condition: isinstance(var, A):false
|
||||
14(15) element: null. Condition: isinstance(var, A):true
|
||||
15(16) ASSERTTYPE ACCESS: var
|
||||
16(17,18) READ ACCESS: var
|
||||
17(22) element: null. Condition: var:false
|
||||
18(19) element: null. Condition: var:true
|
||||
19(20) element: PyStatementList. Condition: isinstance(var, A) and var:true
|
||||
20(21) ASSERTTYPE ACCESS: var
|
||||
21(23) element: PyPassStatement
|
||||
22(23) ASSERTTYPE ACCESS: var
|
||||
23() element: null
|
||||
12(13,15) element: PyCallExpression: isinstance
|
||||
13(14) element: null. Condition: isinstance(var, A):false
|
||||
14(22) ASSERTTYPE ACCESS: var
|
||||
15(16) element: null. Condition: isinstance(var, A):true
|
||||
16(17) ASSERTTYPE ACCESS: var
|
||||
17(18,19) READ ACCESS: var
|
||||
18(22) element: null. Condition: var:false
|
||||
19(20) element: null. Condition: var:true
|
||||
20(21) element: PyStatementList
|
||||
21(22) element: PyPassStatement
|
||||
22() element: null
|
||||
@@ -7,24 +7,25 @@
|
||||
6(7) READ ACCESS: isinstance
|
||||
7(8) READ ACCESS: var
|
||||
8(9) READ ACCESS: A
|
||||
9(10,28) element: PyCallExpression: isinstance
|
||||
10(11) element: PyStatementList. Condition: isinstance(var, A):true
|
||||
11(12) ASSERTTYPE ACCESS: var
|
||||
12(13) element: PyIfStatement
|
||||
13(14) element: PyBinaryExpression
|
||||
14(15) READ ACCESS: isinstance
|
||||
15(16) READ ACCESS: var
|
||||
16(17) READ ACCESS: B
|
||||
17(18,19) element: PyCallExpression: isinstance
|
||||
18(24) element: null. Condition: isinstance(var, B):true
|
||||
19(20) element: null. Condition: isinstance(var, B):false
|
||||
20(21) ASSERTTYPE ACCESS: var
|
||||
21(22,23) READ ACCESS: var
|
||||
22(27) element: null. Condition: var:false
|
||||
23(24) element: null. Condition: var:true
|
||||
24(25) element: PyStatementList. Condition: isinstance(var, B) or var:true
|
||||
25(26) ASSERTTYPE ACCESS: var
|
||||
26(29) element: PyPassStatement
|
||||
27(29) ASSERTTYPE ACCESS: var
|
||||
28(29) ASSERTTYPE ACCESS: var
|
||||
29() element: null
|
||||
9(10,12) element: PyCallExpression: isinstance
|
||||
10(11) element: null. Condition: isinstance(var, A):false
|
||||
11(30) ASSERTTYPE ACCESS: var
|
||||
12(13) element: null. Condition: isinstance(var, A):true
|
||||
13(14) ASSERTTYPE ACCESS: var
|
||||
14(15) element: PyStatementList
|
||||
15(16) element: PyIfStatement
|
||||
16(17) element: PyBinaryExpression
|
||||
17(18) READ ACCESS: isinstance
|
||||
18(19) READ ACCESS: var
|
||||
19(20) READ ACCESS: B
|
||||
20(21,23) element: PyCallExpression: isinstance
|
||||
21(22) element: null. Condition: isinstance(var, B):false
|
||||
22(25) ASSERTTYPE ACCESS: var
|
||||
23(24) element: null. Condition: isinstance(var, B):true
|
||||
24(28) ASSERTTYPE ACCESS: var
|
||||
25(26,27) READ ACCESS: var
|
||||
26(30) element: null. Condition: var:false
|
||||
27(28) element: null. Condition: var:true
|
||||
28(29) element: PyStatementList
|
||||
29(30) element: PyPassStatement
|
||||
30() element: null
|
||||
@@ -1,46 +1,58 @@
|
||||
0(1) element: null
|
||||
1(2) element: PyWhileStatement
|
||||
2(3,6) READ ACCESS: c1
|
||||
3(4) element: PyStatementList. Condition: c1:true
|
||||
4(5) element: PyAssignmentStatement
|
||||
5(1) WRITE ACCESS: x
|
||||
6(7) element: PyElsePart. Condition: c1:false
|
||||
7(8) element: PyAssignmentStatement
|
||||
8(9) WRITE ACCESS: y
|
||||
9(10) element: PyWhileStatement
|
||||
10(11,17) READ ACCESS: c2
|
||||
11(12) element: PyStatementList. Condition: c2:true
|
||||
12(13) element: PyAssignmentStatement
|
||||
13(14) WRITE ACCESS: a
|
||||
14(20) element: PyBreakStatement
|
||||
15(16) element: PyAssignmentStatement
|
||||
16(9) WRITE ACCESS: b
|
||||
17(18) element: PyElsePart. Condition: c2:false
|
||||
18(19) element: PyAssignmentStatement
|
||||
19(20) WRITE ACCESS: c
|
||||
20(21) element: PyWhileStatement
|
||||
21(22,32) READ ACCESS: c3
|
||||
22(23) element: PyStatementList. Condition: c3:true
|
||||
23(24) element: PyAssignmentStatement
|
||||
24(25) WRITE ACCESS: m
|
||||
25(26) element: PyIfStatement
|
||||
26(27,30) READ ACCESS: m
|
||||
27(28) element: PyStatementList. Condition: m:true
|
||||
28(29) ASSERTTYPE ACCESS: m
|
||||
29(35) element: PyBreakStatement
|
||||
30(31) element: PyAssignmentStatement
|
||||
31(20) WRITE ACCESS: n
|
||||
32(33) element: PyElsePart. Condition: c3:false
|
||||
33(34) element: PyAssignmentStatement
|
||||
34(35) WRITE ACCESS: o
|
||||
35(36) element: PyWhileStatement
|
||||
36(37,45) READ ACCESS: c4
|
||||
37(38) element: PyStatementList. Condition: c4:true
|
||||
2(3,4) READ ACCESS: c1
|
||||
3(8) element: null. Condition: c1:false
|
||||
4(5) element: null. Condition: c1:true
|
||||
5(6) element: PyStatementList
|
||||
6(7) element: PyAssignmentStatement
|
||||
7(1) WRITE ACCESS: x
|
||||
8(9) element: PyStatementList
|
||||
9(10) element: PyAssignmentStatement
|
||||
10(11) WRITE ACCESS: y
|
||||
11(12) element: PyWhileStatement
|
||||
12(13,14) READ ACCESS: c2
|
||||
13(21) element: null. Condition: c2:false
|
||||
14(15) element: null. Condition: c2:true
|
||||
15(16) element: PyStatementList
|
||||
16(17) element: PyAssignmentStatement
|
||||
17(18) WRITE ACCESS: a
|
||||
18(24) element: PyBreakStatement
|
||||
19(20) element: PyAssignmentStatement
|
||||
20(11) WRITE ACCESS: b
|
||||
21(22) element: PyStatementList
|
||||
22(23) element: PyAssignmentStatement
|
||||
23(24) WRITE ACCESS: c
|
||||
24(25) element: PyWhileStatement
|
||||
25(26,27) READ ACCESS: c3
|
||||
26(40) element: null. Condition: c3:false
|
||||
27(28) element: null. Condition: c3:true
|
||||
28(29) element: PyStatementList
|
||||
29(30) element: PyAssignmentStatement
|
||||
30(31) WRITE ACCESS: m
|
||||
31(32) element: PyIfStatement
|
||||
32(33,34) READ ACCESS: m
|
||||
33(38) element: null. Condition: m:false
|
||||
34(35) element: null. Condition: m:true
|
||||
35(36) ASSERTTYPE ACCESS: m
|
||||
36(37) element: PyStatementList
|
||||
37(43) element: PyBreakStatement
|
||||
38(39) element: PyAssignmentStatement
|
||||
39(40) WRITE ACCESS: m
|
||||
40(41) element: PyIfStatement
|
||||
41(42,35) READ ACCESS: m
|
||||
42(43) element: PyStatementList. Condition: m:true
|
||||
43(44) ASSERTTYPE ACCESS: m
|
||||
44(45) element: PyBreakStatement
|
||||
45() element: null
|
||||
39(24) WRITE ACCESS: n
|
||||
40(41) element: PyStatementList
|
||||
41(42) element: PyAssignmentStatement
|
||||
42(43) WRITE ACCESS: o
|
||||
43(44) element: PyWhileStatement
|
||||
44(45,46) READ ACCESS: c4
|
||||
45(57) element: null. Condition: c4:false
|
||||
46(47) element: null. Condition: c4:true
|
||||
47(48) element: PyStatementList
|
||||
48(49) element: PyAssignmentStatement
|
||||
49(50) WRITE ACCESS: m
|
||||
50(51) element: PyIfStatement
|
||||
51(52,53) READ ACCESS: m
|
||||
52(43) element: null. Condition: m:false
|
||||
53(54) element: null. Condition: m:true
|
||||
54(55) ASSERTTYPE ACCESS: m
|
||||
55(56) element: PyStatementList
|
||||
56(57) element: PyBreakStatement
|
||||
57() element: null
|
||||
@@ -1,8 +1,10 @@
|
||||
0(1) element: null
|
||||
1(2) element: PyWhileStatement
|
||||
2(3) READ ACCESS: True
|
||||
3(4) element: PyStatementList. Condition: True:true
|
||||
4(1) element: PyPassStatement
|
||||
5(6) element: PyElsePart. Condition: True:false
|
||||
6(7) element: PyPrintStatement
|
||||
7() element: null
|
||||
2(3,4) READ ACCESS: True
|
||||
3() element: null. Condition: True:false
|
||||
4(5) element: null. Condition: True:true
|
||||
5(6) element: PyStatementList
|
||||
6(1) element: PyPassStatement
|
||||
7(8) element: PyStatementList
|
||||
8(9) element: PyPrintStatement
|
||||
9() element: null
|
||||
@@ -5,6 +5,9 @@
|
||||
4(5) READ ACCESS: True
|
||||
5(6) READ ACCESS: f
|
||||
6(7) element: PyCallExpression: f
|
||||
7(8) element: PyPrintStatement
|
||||
8(9) element: PyPrintStatement
|
||||
9() element: null
|
||||
7(8,9) READ ACCESS: True
|
||||
8(12) element: null. Condition: True:false
|
||||
9(10) element: null. Condition: True:true
|
||||
10(11) element: PyPrintStatement
|
||||
11(12) element: PyPrintStatement
|
||||
12() element: null
|
||||
@@ -2,14 +2,16 @@
|
||||
1(2) element: PyWithStatement
|
||||
2(3) READ ACCESS: context_manager
|
||||
3(4) element: PyIfStatement
|
||||
4(5,9) READ ACCESS: c
|
||||
5(6) element: PyStatementList. Condition: c:true
|
||||
6(7) ASSERTTYPE ACCESS: c
|
||||
7(8) element: PyRaiseStatement
|
||||
8(12,14) READ ACCESS: ValueError
|
||||
9(10) element: PyAssignmentStatement
|
||||
10(11) READ ACCESS: c
|
||||
11(12) WRITE ACCESS: val
|
||||
12(13) element: PyPrintStatement
|
||||
13(14) READ ACCESS: val
|
||||
14() element: null
|
||||
4(5,6) READ ACCESS: c
|
||||
5(11) element: null. Condition: c:false
|
||||
6(7) element: null. Condition: c:true
|
||||
7(8) ASSERTTYPE ACCESS: c
|
||||
8(9) element: PyStatementList
|
||||
9(10) element: PyRaiseStatement
|
||||
10(14,16) READ ACCESS: ValueError
|
||||
11(12) element: PyAssignmentStatement
|
||||
12(13) READ ACCESS: c
|
||||
13(14) WRITE ACCESS: val
|
||||
14(15) element: PyPrintStatement
|
||||
15(16) READ ACCESS: val
|
||||
16() element: null
|
||||
Reference in New Issue
Block a user