19 lines
498 B
Python
19 lines
498 B
Python
import tree_sitter
|
|
import tree_sitter_python
|
|
|
|
code = """def hot_func():
|
|
# [HOT]
|
|
print(1)"""
|
|
|
|
PY_LANGUAGE = tree_sitter.Language(tree_sitter_python.language())
|
|
parser = tree_sitter.Parser(PY_LANGUAGE)
|
|
tree = parser.parse(bytes(code, "utf8"))
|
|
|
|
def walk(node, indent=0):
|
|
content = code[node.start_byte:node.end_byte].strip()
|
|
print(f"{' ' * indent}{node.type} ({node.start_byte}-{node.end_byte}): {content[:20]}")
|
|
for child in node.children:
|
|
walk(child, indent + 1)
|
|
|
|
walk(tree.root_node)
|