X-Git-Url: https://code.kerkeslager.com/?p=fur;a=blobdiff_plain;f=transformation.py;h=09a9b771d5b5bf12376a45ba206fae5b80710c07;hp=82d4b3fad509d01a103c3a5794cc4b658d36a5a6;hb=3769b766b898b95fd699e3cb6d005576a4c22086;hpb=8d6f07b43d8b41473fb7d8779bbc7a5843adcd7b diff --git a/transformation.py b/transformation.py index 82d4b3f..09a9b77 100644 --- a/transformation.py +++ b/transformation.py @@ -243,31 +243,6 @@ FUR_INFIX_OPERATOR_TO_C_INFIX_OPERATOR = { def transform_comparison_level_expression(accumulators, expression): accumulators.operator_set.add(FUR_INFIX_OPERATOR_TO_C_INFIX_OPERATOR[expression.operator]) - # Transform expressions like 1 < 2 < 3 into expressions like 1 < 2 && 2 < 3 - if isinstance(expression.left, parsing.FurInfixExpression) and expression.left.order == 'comparison_level': - left = transform_comparison_level_expression( - accumulators, - expression.left - ) - - middle = left.right - - right = transform_expression( - accumulators, - expression.right, - ) - - # TODO Don't evaluate the middle expression twice - return CFunctionCallForFurInfixOperator( - name='and', - left=left, - right=CFunctionCallForFurInfixOperator( - name=FUR_INFIX_OPERATOR_TO_C_INFIX_OPERATOR[expression.operator].name, - left=middle, - right=right, - ), - ) - return CFunctionCallForFurInfixOperator( name=FUR_INFIX_OPERATOR_TO_C_INFIX_OPERATOR[expression.operator].name, left=transform_expression(accumulators, expression.left),