- 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
-
+ return _left_recursive_infix_operator_parser(
+ 'equality_level_operator',
+ _addition_level_expression_parser,
+ {
+ '==': FurEqualityExpression,
+ '!=': FurInequalityExpression,
+ '>=': FurGreaterThanOrEqualExpression,
+ '<=': FurLessThanOrEqualExpression,
+ '>': FurGreaterThanExpression,
+ '<': FurLessThanExpression,
+ },
+ )(index, tokens)