MCPcopy Index your code
hub / github.com/KhronosGroup/Vulkan-Docs / markupTraverse

Function markupTraverse

scripts/parse_dependency.py:351–380  ·  view source on GitHub ↗

Recursively process a dependency in infix form, transforming it into asciidoctor markup with expression nesting indicated by indentation level. - expr - expression to process - level - indentation level to render expression at - root - True only on initial call

(expr, level = 0, root = True)

Source from the content-addressed store, hash-verified

349 return evalDependencyNames(exprStack)
350
351def markupTraverse(expr, level = 0, root = True):
352 """Recursively process a dependency in infix form, transforming it into
353 asciidoctor markup with expression nesting indicated by indentation
354 level.
355
356 - expr - expression to process
357 - level - indentation level to render expression at
358 - root - True only on initial call"""
359
360 if level > 0:
361 prefix = f"{'{nbsp}{nbsp}' * level * 2} "
362 else:
363 prefix = ''
364 str = ''
365
366 for elem in expr:
367 if isinstance(elem, pp.ParseResults):
368 if not root:
369 nextlevel = level + 1
370 else:
371 # Do not indent the outer expression
372 nextlevel = level
373
374 str = str + markupTraverse(elem, level = nextlevel, root = False)
375 elif elem in ('+', ','):
376 str = f"{str}{prefix}{opMarkupAsciidoc(elem)} +\n"
377 else:
378 str = f"{str}{prefix}{leafMarkupAsciidoc(elem)} +\n"
379
380 return str
381
382def dependencyMarkup(dependency):
383 """Return asciidoctor markup for a human-readable equivalent of an API

Callers 1

dependencyMarkupFunction · 0.85

Calls 2

opMarkupAsciidocFunction · 0.85
leafMarkupAsciidocFunction · 0.85

Tested by

no test coverage detected