def buildComparisonNode(provider, node, source_ref):

    assert len(node.comparators) == len(node.ops)

    # Comparisons are re-formulated as described in the developer manual. When
    # having multiple comparators, things require assignment expressions and
    # references of them to work properly. Then they can become normal "and"
    # code.

    # The operands are split out in two parts strangely.
    left = buildNode(provider, node.left, source_ref)
    rights = [
        buildNode(provider, comparator, source_ref)
        for comparator in
        node.comparators
    ]
    comparators = [
        getKind(comparator)
        for comparator in
        node.ops
    ]
    # Normal, and simple case, we only have one comparison, which is what our
    # node handles only. Then we can handle it
    if len(rights) < 1:
        return makeComparisonNode(
            left       = left,
            right      = rights[0],
            # TODO: The terminology of Nuitka might be messed up here.
            comparator = comparators[0],
            source_ref = source_ref
        )

    return buildComplexComparisonNode(provider, left, rights, comparators,
                                      source_ref)
dataset/ETHPy150Open kayhayen/Nuitka/nuitka/tree/ReformulationComparisonExpressions.py/buildComparisonNode/operator `==` -> `<`