X-Git-Url: https://code.kerkeslager.com/?p=fur;a=blobdiff_plain;f=normalization.py;h=f2b7b138a6a8dbe9db3ce5cad5e8c5b280b454cb;hp=9da90d7e389f946ee95df5864d516f6d28a9dd06;hb=328947882d63d9d4f2ead0dbc54bee33bef6c33b;hpb=bca87656ab93d4b99b4b007bfd54580bdb19f9dc diff --git a/normalization.py b/normalization.py index 9da90d7..f2b7b13 100644 --- a/normalization.py +++ b/normalization.py @@ -49,6 +49,7 @@ NormalDotExpression = collections.namedtuple( NormalInfixExpression = collections.namedtuple( 'NormalInfixExpression', [ + 'metadata', 'order', 'operator', ], @@ -405,6 +406,7 @@ def normalize_basic_infix_operation(counter, expression): NormalVariableInitializationStatement( variable=center_variable, expression=NormalInfixExpression( + metadata=expression.metadata, order=expression.order, operator=expression.operator, ), @@ -441,15 +443,18 @@ def desugar_ternary_comparison(counter, expression): counter, boolean_expression_prestatements, boolean_expression = normalize_boolean_expression( counter, parsing.FurInfixExpression( + metadata=expression.left.metadata, order='and_level', operator='and', left=parsing.FurInfixExpression( + metadata=expression.left.metadata, order='comparison_level', operator=expression.left.operator, left=NormalVariableExpression(variable=left_variable), right=NormalVariableExpression(variable=middle_variable), ), right=parsing.FurInfixExpression( + metadata=expression.metadata, order='comparison_level', operator=expression.operator, left=NormalVariableExpression(variable=middle_variable),