projects
/
fur
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Added lambda expressions
[fur]
/
conversion.py
diff --git
a/conversion.py
b/conversion.py
index
965f86e
..
fd469fa
100644
(file)
--- a/
conversion.py
+++ b/
conversion.py
@@
-18,6
+18,14
@@
CPSIntegerLiteralExpression = collections.namedtuple(
),
)
),
)
+CPSLambdaExpression = collections.namedtuple(
+ 'CPSLambdaExpression',
+ (
+ 'argument_name_list',
+ 'statement_list',
+ ),
+)
+
CPSListConstructExpression = collections.namedtuple(
'CPSListConstructExpression',
(
CPSListConstructExpression = collections.namedtuple(
'CPSListConstructExpression',
(
@@
-152,6
+160,12
@@
def convert_function_call_expression(expression):
def convert_integer_literal_expression(expression):
return CPSIntegerLiteralExpression(integer=expression.integer)
def convert_integer_literal_expression(expression):
return CPSIntegerLiteralExpression(integer=expression.integer)
+def convert_lambda_expression(expression):
+ return CPSLambdaExpression(
+ 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)
def convert_list_construct_expression(expression):
return CPSListConstructExpression(allocate=expression.allocate)
@@
-175,6
+189,7
@@
def convert_expression(expression):
return {
normalization.NormalFunctionCallExpression: convert_function_call_expression,
normalization.NormalIntegerLiteralExpression: convert_integer_literal_expression,
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,
normalization.NormalListConstructExpression: convert_list_construct_expression,
normalization.NormalStringLiteralExpression: convert_string_literal_expression,
normalization.NormalStructureLiteralExpression: convert_structure_literal_expression,