diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-05-07 04:48:35 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-05-07 04:48:35 +0000 |
commit | 207df6fc406e81bfeebdff7f404bd242ff3f099f (patch) | |
tree | a1a796b056909dd0a04ffec163db9363a8757808 /test/parser_debugger.py | |
parent | Releasing progress-linux version 0.11.2-1~progress7.99u1. (diff) | |
download | lnav-207df6fc406e81bfeebdff7f404bd242ff3f099f.tar.xz lnav-207df6fc406e81bfeebdff7f404bd242ff3f099f.zip |
Merging upstream version 0.12.2.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'test/parser_debugger.py')
-rwxr-xr-x | test/parser_debugger.py | 68 |
1 files changed, 40 insertions, 28 deletions
diff --git a/test/parser_debugger.py b/test/parser_debugger.py index d2818f5..2f9b102 100755 --- a/test/parser_debugger.py +++ b/test/parser_debugger.py @@ -1,4 +1,4 @@ -#! /usr/bin/env python +#! /usr/bin/env python3 # Copyright (c) 2013, Timothy Stack # @@ -44,6 +44,7 @@ list_depth = {} list_format = {} breakpoints = set() + def completer(text, state): options = [x for x in itertools.chain(name_to_addr, element_lists, @@ -54,6 +55,7 @@ def completer(text, state): except IndexError: return None + readline.set_completer(completer) if 'libedit' in readline.__doc__: @@ -67,27 +69,30 @@ for line in open("scanned.dpt"): if line.startswith("input "): input_line = line[6:-1] else: - ops.append(map(string.strip, line.split())) + ops.append([x.strip() for x in line.split()]) + def getstr(capture): start, end = capture.split(':') return input_line[int(start):int(end)] + def printlist(name_or_addr): if name_or_addr in name_to_addr: addr = name_to_addr[name_or_addr] - print "% 3d (%s:%s) %s" % (list_depth.get(addr, -1), name_or_addr, addr, element_lists[addr]) + print("% 3d (%s:%s) %s" % (list_depth.get(addr, -1), name_or_addr, addr, element_lists[addr])) elif name_or_addr in element_lists: addr = name_or_addr - print "% 3d (%s:%s) %s" % (list_depth.get(name_or_addr, -1), - addr_to_name.get(name_or_addr, name_or_addr), - name_or_addr, - element_lists[name_or_addr]) + print("% 3d (%s:%s) %s" % (list_depth.get(name_or_addr, -1), + addr_to_name.get(name_or_addr, name_or_addr), + name_or_addr, + element_lists[name_or_addr])) else: - print "error: unknown list --", name_or_addr + print("error: unknown list --", name_or_addr) if addr in list_format: - print " format -- appender(%s) term(%s) qual(%s) sep(%s) prefix_term(%s)" % tuple(list_format[addr]) + print(" format -- appender(%s) term(%s) qual(%s) sep(%s) prefix_term(%s)" % tuple(list_format[addr])) + def handleop(fields): addr = fields[0] @@ -113,6 +118,8 @@ def handleop(fields): list_depth[addr] = -1 elif method_name == 'push_back': el.append((method_args[0], getstr(method_args[1]))) + elif method_name == 'push_front': + el.insert(0, (method_args[0], getstr(method_args[1]))) elif method_name == 'pop_front': el.pop(0) elif method_name == 'pop_back': @@ -122,7 +129,7 @@ def handleop(fields): elif method_name == 'splice': pos = int(method_args[0]) other = element_lists[method_args[1]] - start, from_end = map(int, method_args[2].split(':')) + start, from_end = list(map(int, method_args[2].split(':'))) end = len(other) - from_end sub_list = other[start:end] del other[start:end] @@ -134,7 +141,8 @@ def handleop(fields): elif method_name == 'point': breakpoints.add(method_args[0]) else: - print "Unhandled method: ", method_name + print("Unhandled method: ", method_name) + def playupto(length): addr_to_name.clear() @@ -144,6 +152,7 @@ def playupto(length): for index in range(length): handleop(ops[index]) + def find_prev_point(start, name): orig_start = start while start > 0: @@ -155,6 +164,7 @@ def find_prev_point(start, name): return start + 1 return orig_start + 1 + def find_next_point(start, name): orig_start = start while start < len(ops): @@ -166,13 +176,15 @@ def find_next_point(start, name): return start + 1 return orig_start + 1 + def printall(): - print input_line + print(input_line) sorted_lists = [(list_depth.get(addr, -1), addr) for addr in element_lists] sorted_lists.sort() for _depth, addr in sorted_lists: printlist(addr) + index = len(ops) last_cmd = [''] watch_list = set() @@ -180,20 +192,20 @@ while True: playupto(index) if index == 0: - print "init" + print("init") else: op = ops[index - 1] - print "#%s %s" % (index -1, op) + print("#%s %s" % (index - 1, op)) if op[2] == 'push_back': - print getstr(op[4]) + print(getstr(op[4])) for list_name in watch_list: printlist(list_name) try: - cmd = raw_input("> ").split() + cmd = input("> ").split() except EOFError: - print + print() break if not cmd or cmd[0] == '': @@ -202,16 +214,16 @@ while True: if not cmd or cmd[0] == '': pass elif cmd[0] == 'h': - print 'Help:' - print ' q - quit' - print ' s - Start over' - print ' n - Next step' - print ' r - Previous step' - print ' b - Previous breakpoint' - print ' c - Next breakpoint' - print ' p - Print state' - print ' w <var> - Add a variable to the watch list' - print ' u <var> - Remove a variable from the watch list' + print('Help:') + print(' q - quit') + print(' s - Start over') + print(' n - Next step') + print(' r - Previous step') + print(' b - Previous breakpoint') + print(' c - Next breakpoint') + print(' p - Print state') + print(' w <var> - Add a variable to the watch list') + print(' u <var> - Remove a variable from the watch list') elif cmd[0] == 'q': break elif cmd[0] == 's': @@ -242,7 +254,7 @@ while True: if watch_list: watch_list.remove(cmd[1]) else: - print "error: unknown command --", cmd + print("error: unknown command --", cmd) printall() |