1
1
import ast
2
2
from collections import namedtuple
3
3
4
- from base_cfg import Visitor , Node
4
+ from base_cfg import Visitor , Node , CFG , EntryExitNode
5
5
from label_visitor import LabelVisitor
6
6
from right_hand_side_visitor import RHSVisitor
7
7
from ast_helper import generate_ast , get_call_names_as_string , Arguments
@@ -21,15 +21,14 @@ def __init__(self, node, filename):
21
21
22
22
try :
23
23
# FunctionDef ast node
24
- self .init_function_cfg ()
24
+ self .init_function_cfg (node )
25
25
except : # Error?!
26
26
# Module ast node
27
- self .init_module_cfg ()
28
-
27
+ self .init_module_cfg (node )
29
28
30
29
def init_module_cfg (self , node ):
31
30
entry_node = self .append_node (EntryExitNode ("Entry module" ))
32
-
31
+
33
32
module_statements = self .visit (node )
34
33
35
34
if not module_statements :
@@ -103,15 +102,17 @@ def intraprocedural(project_modules, cfg_list):
103
102
dup = list ()
104
103
for module in project_modules :
105
104
t = generate_ast (module [1 ])
106
- cfg_list .append (build_intra_cfg (t , project_modules = [], local_modules = [], filename = module [1 ]))
105
+ iv = IntraproceduralVisitor (t , filename = module [1 ])
106
+ cfg_list .append (CFG (iv .nodes ))
107
107
dup .append (t )
108
108
fdv = FunctionDefVisitor ()
109
109
fdv .visit (t )
110
110
dup .extend (fdv .result )
111
111
functions .extend ([(f , module [1 ]) for f in fdv .result ])
112
112
113
113
for f in functions :
114
- cfg_list .append (build_intra_function_cfg (f [0 ], f [1 ]))
114
+ iv = IntraproceduralVisitor (f [0 ], filename = f [1 ])
115
+ cfg_list .append (CFG (iv .nodes ))
115
116
116
117
s = set ()
117
118
for d in dup :
0 commit comments