MCPcopy Index your code
hub / github.com/nodejs/node / parse_ninja_deps

Function parse_ninja_deps

deps/v8/tools/locs.py:336–367  ·  view source on GitHub ↗
(ninja_deps)

Source from the content-addressed store, hash-verified

334
335
336def parse_ninja_deps(ninja_deps):
337 source_dependencies = {}
338 header_dependents = defaultdict(int)
339 current_target = None
340 for line in ninja_deps:
341 line = line.rstrip()
342 # Ignore empty lines
343 if not line:
344 current_target = None
345 continue
346 if line[0] == ' ':
347 # New dependency
348 if len(line) < 5 or line[0:4] != ' ' or line[5] == ' ':
349 sys.exit('Lines must have no indentation or exactly four ' +
350 'spaces.')
351 dep = line[4:]
352 if not re.search(r"\.(h|hpp)$", dep):
353 continue
354 header_dependents[dep] += 1
355 continue
356 # New target
357 colon_pos = line.find(':')
358 if colon_pos < 0:
359 sys.exit('Unindented line must have a colon')
360 if current_target is not None:
361 sys.exit('Missing empty line before new target')
362 current_target = line[0:colon_pos]
363 match = re.search(r"#deps (\d+)", line)
364 deps_number = match.group(1)
365 source_dependencies[current_target] = int(deps_number)
366
367 return (source_dependencies, header_dependents)
368
369
370def Main():

Callers 1

MainFunction · 0.85

Calls 4

intFunction · 0.85
findMethod · 0.65
exitMethod · 0.45
searchMethod · 0.45

Tested by

no test coverage detected