+def _equality_level_expression_parser(index, tokens):
+ failure = (False, index, None)
+
+ success, index, result = _addition_level_expression_parser(index, tokens)
+
+ if not success:
+ return failure
+
+ while success and index < len(tokens) and tokens[index].type == 'equality_level_operator':
+ success = False
+
+ if index + 1 < len(tokens):
+ success, try_index, value = _addition_level_expression_parser(index + 1, tokens)
+
+ if success:
+ result = {
+ '==': FurEqualityExpression,
+ '!=': FurInequalityExpression,
+ '>=': FurGreaterThanOrEqualExpression,
+ '<=': FurLessThanOrEqualExpression,
+ '>': FurGreaterThanExpression,
+ '<': FurLessThanExpression,
+ }[tokens[index].match](left=result, right=value)
+ index = try_index
+
+ return True, index, result
+
+