# HG changeset patch # User Paul Boddie # Date 1693612519 -7200 # Node ID a0098443f677663369e2450d20a791fcb7e2ca14 # Parent 8403873f6493b2cf6990ec6f3af901c7df365ce0# Parent 9ee9c9e18fa6590943c623568d2fa7b077f9147e Merged concurrent changes. diff -r 8403873f6493 -r a0098443f677 common.py --- a/common.py Sat Aug 26 17:31:38 2023 +0200 +++ b/common.py Sat Sep 02 01:55:19 2023 +0200 @@ -3,7 +3,7 @@ """ Common functions. -Copyright (C) 2007-2019, 2021 Paul Boddie +Copyright (C) 2007-2019, 2021, 2023 Paul Boddie This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software @@ -362,9 +362,15 @@ l = [] for n in node.getChildNodes(): - l.append(self.process_structure_node(n)) + l.append(self.process_statement_node(n)) return l + def process_statement_node(self, node): + + "Process the given statement 'node'." + + return self.process_structure_node(node) + def process_augassign_node(self, n): "Process the given augmented assignment node 'n'." diff -r 8403873f6493 -r a0098443f677 translator.py --- a/translator.py Sat Aug 26 17:31:38 2023 +0200 +++ b/translator.py Sat Sep 02 01:55:19 2023 +0200 @@ -885,7 +885,7 @@ # Produce the body and any additional return statement. - expr = self.process_structure_node(n.code) or \ + expr = self.process_statement_node(n.code) or \ self.in_method() and \ function_name.rsplit(".", 1)[-1] == "__init__" and \ TrResolvedNameRef("self", self.importer.function_locals[function_name]["self"]) or \ @@ -1038,12 +1038,12 @@ first = True for test, body in n.tests: - test_ref = self.process_structure_node(test) + test_ref = self.process_statement_node(test) self.start_if(first, test_ref) in_conditional = self.in_conditional self.in_conditional = True - self.process_structure_node(body) + self.process_statement_node(body) self.in_conditional = in_conditional self.end_if() @@ -1051,7 +1051,7 @@ if n.else_: self.start_else() - self.process_structure_node(n.else_) + self.process_statement_node(n.else_) self.end_else() print >>self.out @@ -1769,7 +1769,7 @@ self.writestmt("__Try") self.writeline("{") self.indent += 1 - self.process_structure_node(n.body) + self.process_statement_node(n.body) # Put the else statement in another try block that handles any raised # exceptions and converts them to exceptions that will not be handled by @@ -1779,7 +1779,7 @@ self.writestmt("__Try") self.writeline("{") self.indent += 1 - self.process_structure_node(n.else_) + self.process_statement_node(n.else_) self.indent -= 1 self.writeline("}") self.writeline("__Catch (__tmp_exc)") @@ -1823,7 +1823,7 @@ # Test for specific exceptions. if name is not None: - name_ref = self.process_structure_node(name) + name_ref = self.process_statement_node(name) self.writeline("else if (__ISINSTANCE(__tmp_exc.arg, %s))" % name_ref) else: self.writeline("else if (1)") @@ -1837,7 +1837,7 @@ self.writestmt("%s;" % self.process_name_node(var, make_expression("__tmp_exc.arg"))) if handler is not None: - self.process_structure_node(handler) + self.process_statement_node(handler) self.indent -= 1 self.writeline("}") @@ -1866,7 +1866,7 @@ self.writestmt("__Try") self.writeline("{") self.indent += 1 - self.process_structure_node(n.body) + self.process_statement_node(n.body) self.indent -= 1 self.writeline("}") @@ -1877,7 +1877,7 @@ self.writeline("__Catch (__tmp_exc)") self.writeline("{") self.indent += 1 - self.process_structure_node(n.final) + self.process_statement_node(n.final) # Introduce an if statement to handle the completion of a try block. @@ -1918,7 +1918,7 @@ self.writeline("while (1)") self.writeline("{") self.indent += 1 - test = self.process_structure_node(n.test) + test = self.process_statement_node(n.test) # Emit the loop termination condition unless "while " is # indicated. @@ -1929,13 +1929,13 @@ self.start_if(True, self.make_negation(test)) if n.else_: - self.process_structure_node(n.else_) + self.process_statement_node(n.else_) self.writestmt("break;") self.end_if() in_conditional = self.in_conditional self.in_conditional = True - self.process_structure_node(n.body) + self.process_statement_node(n.body) self.in_conditional = in_conditional self.indent -= 1