),
)
+CPSLambdaExpression = collections.namedtuple(
+ 'CPSLambdaExpression',
+ (
+ 'name',
+ 'argument_name_list',
+ 'statement_list',
+ ),
+)
+
CPSListConstructExpression = collections.namedtuple(
'CPSListConstructExpression',
(
),
)
-CPSFunctionDefinitionStatement = collections.namedtuple(
- 'CPSFunctionDefinitionStatement',
- (
- 'name',
- 'argument_name_list',
- 'statement_list',
- )
-)
-
CPSIfElseStatement = collections.namedtuple(
'CPSIfElseStatement',
(
def convert_integer_literal_expression(expression):
return CPSIntegerLiteralExpression(integer=expression.integer)
+def convert_lambda_expression(expression):
+ return CPSLambdaExpression(
+ name=expression.name,
+ argument_name_list=expression.argument_name_list,
+ statement_list=tuple(convert_statement(s) for s in expression.statement_list),
+ )
+
def convert_list_construct_expression(expression):
return CPSListConstructExpression(allocate=expression.allocate)
return {
normalization.NormalFunctionCallExpression: convert_function_call_expression,
normalization.NormalIntegerLiteralExpression: convert_integer_literal_expression,
+ normalization.NormalLambdaExpression: convert_lambda_expression,
normalization.NormalListConstructExpression: convert_list_construct_expression,
normalization.NormalStringLiteralExpression: convert_string_literal_expression,
normalization.NormalStructureLiteralExpression: convert_structure_literal_expression,
expression=convert_expression(statement.expression),
)
-def convert_function_definition_statement(statement):
- return CPSFunctionDefinitionStatement(
- name=statement.name,
- argument_name_list=statement.argument_name_list,
- statement_list=tuple(convert_statement(s) for s in statement.statement_list),
- )
-
def convert_if_else_statement(statement):
return CPSIfElseStatement(
condition_expression=convert_expression(statement.condition_expression),
normalization.NormalArrayVariableInitializationStatement: convert_array_variable_initialization_statement,
normalization.NormalAssignmentStatement: convert_assignment_statement,
normalization.NormalExpressionStatement: convert_expression_statement,
- normalization.NormalFunctionDefinitionStatement: convert_function_definition_statement,
normalization.NormalIfElseStatement: convert_if_else_statement,
normalization.NormalListAppendStatement: convert_list_append_statement,
normalization.NormalPushStatement: convert_push_statement,