def visitBinOpExpression()

in Extractors/Python/extractor/xmlnodegenerator.py [0:0]


    def visitBinOpExpression(self, node: ast.BinOp):
        ''' Visit the binary operator
            BinOp(expr left, operator op, expr right).
            The operators are
            Add Sub Mult Div FloorDiv Mod Pow LShift RShift BitOr BitXor BitAnd MatMult '''

        if isinstance(node.op, ast.Add):
            result = ET.Element("Add")
        elif isinstance(node.op, ast.Sub):
            result = ET.Element("Subtract")
        elif isinstance(node.op, ast.Mult):
            result = ET.Element("Multiply")
        elif isinstance(node.op, ast.Div):
            result = ET.Element("Divide")
        elif isinstance(node.op, ast.FloorDiv):
            result = ET.Element("FloorDivide")
        elif isinstance(node.op, ast.Mod):
            result = ET.Element("Modulo")
        elif isinstance(node.op, ast.Pow):
            result = ET.Element("Power")
        elif isinstance(node.op, ast.LShift):
            result = ET.Element("LeftShift")
        elif isinstance(node.op, ast.RShift):
            result = ET.Element("RightShift")
        elif isinstance(node.op, ast.BitOr):
            result = ET.Element("BitwiseOr")
        elif isinstance(node.op, ast.BitAnd):
            result = ET.Element("BitwiseAnd")
        elif isinstance(node.op, ast.BitXor):
            result = ET.Element("BitwiseXor")
        elif isinstance(node.op, ast.MatMult):
            result = ET.Element("MatrixMultiply")
        else:
            raise NotImplementedError("Unknown binary operator: " + str(type(node)))

        result.append(self.visitExpression(node.left))
        result.append(self.visitExpression(node.right))
        return result