MCPcopy Index your code
hub / github.com/Tencent/CodeAnalysis / analyze

Method analyze

client/tool/jaff.py:39–68  ·  view source on GitHub ↗
(self, params)

Source from the content-addressed store, hash-verified

37 return True
38
39 def analyze(self, params):
40 source_dir = params["source_dir"]
41 work_dir = params["work_dir"]
42
43 rules = RuleParamer.java_param_formart(params["rule_list"])
44 with open("rules.json", "w") as f1:
45 f1.write(json.dumps(rules))
46 f1.close()
47
48 self.js = JavaScaner(source_dir, work_dir, jar_mode=True)
49 need_ast = False
50 need_field = False
51 for rule_info in rules:
52 if "up_exist_method" in rule_info or "up_no_exist_method" in rule_info or "need_method_chain" in rule_info:
53 LogPrinter.info("条件符合,执行ast解析.")
54 need_ast = True
55 if "field" in rule_info:
56 LogPrinter.info("条件符合,执行字节码遍历解析.")
57 need_field = True
58 self.js.parser(need_bc=True, need_ast=need_ast, need_field=need_field)
59
60 loong = Loong(
61 config=os.path.join(work_dir, "rules.json"),
62 dbdir=work_dir,
63 project_root=source_dir,
64 jar_mode=True,
65 )
66 result = loong.scan()
67
68 return result
69
70 def set_blame_type(self):
71 return FILE_LAST_CHANGE_BLAME

Callers

nothing calls this directly

Calls 7

scanMethod · 0.95
JavaScanerClass · 0.90
LoongClass · 0.90
java_param_formartMethod · 0.80
writeMethod · 0.45
infoMethod · 0.45
parserMethod · 0.45

Tested by

no test coverage detected