def __get_operands(replaced_sentence, operator): text, replacements = replaced_sentence if operator is None: return False if operator == LogicOperator.Negation: sentence = Braces.restore(text, replacements) if sentence[0] == operator: return (sentence[1:], ) return False if operator == LogicOperator.Every or operator == LogicOperator.Exists: op_index = text.index(operator) left_brace = text[op_index:].index(Braces.Left) variables = text[op_index + 1:left_brace].strip() expression = replacements[0][1:-1] return (variables, expression) lhs, rhs = text.split(" {0} ".format(operator), maxsplit=1) separator = "!SEPARATOR!" separated = "{0} {1} {2}".format(lhs, separator, rhs) lhs, rhs = Braces.restore(separated, replacements).split(separator) return (lhs.strip(), rhs.strip())