diff options
author | Friedemann Kleint <Friedemann.Kleint@qt.io> | 2022-05-27 12:11:27 +0200 |
---|---|---|
committer | Qt Cherry-pick Bot <cherrypick_bot@qt-project.org> | 2022-06-01 00:10:10 +0000 |
commit | 784d8b3284be6ab615e627143d21921a33013f10 (patch) | |
tree | e4297b1302301668eae0ed8739ee409bad9dcd99 | |
parent | e08c5be425f21dc3b4109d0ca2dd5237aa2355b3 (diff) |
qtpy2cpp: Add more operators
Task-number: PYSIDE-1945
Change-Id: I802ded1388918a8f5b72f8f9382a052e09e936ee
Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
(cherry picked from commit f684775146242b284eb890fd446179c925fa91f6)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
-rw-r--r-- | tools/qtpy2cpp_lib/test_baseline/basic_test.py | 4 | ||||
-rw-r--r-- | tools/qtpy2cpp_lib/visitor.py | 40 |
2 files changed, 42 insertions, 2 deletions
diff --git a/tools/qtpy2cpp_lib/test_baseline/basic_test.py b/tools/qtpy2cpp_lib/test_baseline/basic_test.py index e5dc92f9f..4b2a2d431 100644 --- a/tools/qtpy2cpp_lib/test_baseline/basic_test.py +++ b/tools/qtpy2cpp_lib/test_baseline/basic_test.py @@ -31,6 +31,10 @@ a = 7 if a > 5: for f in [1, 2]: print(f) +elif a == 2: + print(2) +elif not a: + print(0) else: for i in range(5): print(i) diff --git a/tools/qtpy2cpp_lib/visitor.py b/tools/qtpy2cpp_lib/visitor.py index bd5fce7a1..280bb51f4 100644 --- a/tools/qtpy2cpp_lib/visitor.py +++ b/tools/qtpy2cpp_lib/visitor.py @@ -125,6 +125,14 @@ class ConvertVisitor(ast.NodeVisitor, CppFormatter): self.generic_visit(node) self._output_file.write(')') + def visit_BitAnd(self, node): + self.generic_visit(node) + self._output_file.write(" & ") + + def visit_BitOr(self, node): + self.generic_visit(node) + self._output_file.write(" | ") + def visit_Call(self, node): self._output_file.write(format_start_function_call(node)) # Manually do visit(), skip the children of func @@ -146,6 +154,10 @@ class ConvertVisitor(ast.NodeVisitor, CppFormatter): self.indent_line('};') del self._class_scope[-1] + def visit_Eq(self, node): + self.generic_visit(node) + self._output_file.write(" == ") + def visit_Expr(self, node): self._output_file.write('\n') self.INDENT() @@ -154,7 +166,11 @@ class ConvertVisitor(ast.NodeVisitor, CppFormatter): def visit_Gt(self, node): self.generic_visit(node) - self._output_file.write('>') + self._output_file.write(" > ") + + def visit_GtE(self, node): + self.generic_visit(node) + self._output_file.write(" >= ") def visit_For(self, node): # Manually do visit() to get the indentation right. @@ -209,9 +225,17 @@ class ConvertVisitor(ast.NodeVisitor, CppFormatter): self.visit(el) self._output_file.write('}') + def visit_LShift(self, node): + self.generic_visit(node) + self._output_file.write(" << ") + def visit_Lt(self, node): self.generic_visit(node) - self._output_file.write('<') + self._output_file.write(" < ") + + def visit_LtE(self, node): + self.generic_visit(node) + self._output_file.write(" <= ") def visit_Mult(self, node): self.generic_visit(node) @@ -230,10 +254,22 @@ class ConvertVisitor(ast.NodeVisitor, CppFormatter): else: self._output_file.write('true') + def visit_Not(self, node): + self.generic_visit(node) + self._output_file.write("!") + + def visit_NotEq(self, node): + self.generic_visit(node) + self._output_file.write(" != ") + def visit_Num(self, node): self.generic_visit(node) self._output_file.write(format_literal(node)) + def visit_RShift(self, node): + self.generic_visit(node) + self._output_file.write(" >> ") + def visit_Str(self, node): self.generic_visit(node) self._output_file.write(format_literal(node)) |