26 lines
743 B
Python
26 lines
743 B
Python
#!/usr/bin/env python2
|
|
#
|
|
# Resolve a line number in the combined source into an uncombined file/line
|
|
# using a dist/src/duk_source_meta.json file.
|
|
#
|
|
# Usage: $ python resolve_combined_lineno.py dist/src/duk_source_meta.json 12345
|
|
#
|
|
|
|
import os
|
|
import sys
|
|
import json
|
|
|
|
def main():
|
|
with open(sys.argv[1], 'rb') as f:
|
|
metadata = json.loads(f.read())
|
|
lineno = int(sys.argv[2])
|
|
|
|
for e in reversed(metadata['line_map']):
|
|
if lineno >= e['combined_line']:
|
|
orig_lineno = e['original_line'] + (lineno - e['combined_line'])
|
|
print('%s:%d -> %s:%d' % ('duktape.c', lineno,
|
|
e['original_file'], orig_lineno))
|
|
break
|
|
|
|
if __name__ == '__main__':
|
|
main()
|