def src_slice(node): return source.src_slice(src_file_lines, node.sloc_range)
def src_slice(node): lines = get_lines(node.unit.filename) return source.src_slice(lines, node.sloc_range)
# Test the behavior of the p_parent_callexpr property on various children for # CallExpr nodes. import libadalang as lal import source with open('foo.adb') as f: src_lines = f.readlines() src_slice = lambda node: source.src_slice(src_lines, node.sloc_range) ctx = lal.AnalysisContext() unit = ctx.get_from_file('foo.adb') calls = unit.root.find(lal.HandledStatements).f_statements simple_call, prefix_call, complex_prefix_call, nested_call = calls for i, (call, name) in enumerate(( (simple_call, simple_call.f_call.f_name), (simple_call, simple_call.f_call.f_suffix.f_params[0].f_expr), (prefix_call, prefix_call.f_call.f_name.f_prefix), (prefix_call, prefix_call.f_call.f_name.f_suffix), (complex_prefix_call, complex_prefix_call.f_call.f_name.f_prefix.f_prefix), (complex_prefix_call, complex_prefix_call.f_call.f_name.f_prefix.f_suffix), (complex_prefix_call, complex_prefix_call.f_call.f_name.f_suffix),