Add double-quoted strings
[fur] / normalization.py
index ca6f57f..762a8f1 100644 (file)
@@ -293,14 +293,23 @@ def normalize_function_call_expression(counter, expression):
         function_expression = NormalVariableExpression(variable=function_variable)
         counter += 1
 
+    result_variable = '${}'.format(counter)
+
+    prestatements.append(
+        NormalVariableInitializationStatement(
+            variable=result_variable,
+            expression=NormalFunctionCallExpression(
+                function_expression=function_expression,
+                argument_count=len(arguments),
+                argument_items=NormalVariableExpression(variable=arguments_variable),
+            ),
+        )
+    )
+
     return (
-        counter,
+        counter + 1,
         tuple(prestatements),
-        NormalFunctionCallExpression(
-            function_expression=function_expression,
-            argument_count=len(arguments),
-            argument_items=NormalVariableExpression(variable=arguments_variable),
-        ),
+        NormalVariableExpression(variable=result_variable),
     )
 
 def normalize_basic_infix_operation(counter, expression):
@@ -578,12 +587,12 @@ def normalize_statement_list(counter, statement_list, **kwargs):
             result_statement_list.append(s)
         result_statement_list.append(normalized)
 
+    # TODO The way we fix the last statement is really confusing
     last_statement = result_statement_list[-1]
 
     if isinstance(last_statement, NormalExpressionStatement) and isinstance(last_statement.expression, NormalVariableExpression):
-        result_expression = result_statement_list.pop().expression
-
         if assign_result_to is not None:
+            result_expression = result_statement_list.pop().expression
             result_statement_list.append(
                 NormalVariableReassignmentStatement(
                     variable=assign_result_to,