+ return (
+ counter,
+ tuple(prestatements),
+ NormalFunctionCallExpression(
+ expression.function, # TODO Normalize the function
+ arguments=tuple(arguments),
+ ),
+ )
+
+def normalize_statement(counter, statement):
+ if isinstance(statement, parsing.FurExpressionStatement):
+ counter, prestatements, normalized = {
+ parsing.FurFunctionCallExpression: normalize_function_call_expression,
+ }[type(statement.expression)](counter, statement.expression)
+
+ return (
+ counter,
+ prestatements,
+ NormalExpressionStatement(expression=normalized),
+ )
+
+ return (counter, (), statement)