def or_combination(disjunction, term):
    """
    Join together a disjunction and another term using an OR operator. If the term is a lexeme, we
    simply append it as a new conjunction to the end of the disjunction. If the term is another
    disjunction, then we concatenate both disjunctions together.
    """
    if isinstance(term, list):
        # Combine two sub-expressions with OR (just concatenates)
        disjunction += term
    else:
        # Append an atom to the whole expression (OR case)
        disjunction.append([term])
    return disjunction