Start implementing functions
[fur] / conversion.py
index 2b6ccbd..29a40d7 100644 (file)
@@ -2,6 +2,13 @@ import collections
 
 import normalization
 
+CPSBuiltinExpression = collections.namedtuple(
+    'CPSBuiltinExpression',
+    (
+        'symbol',
+    ),
+)
+
 CPSFunctionCallExpression = collections.namedtuple(
     'CPSFunctionCallExpression',
     (
@@ -101,14 +108,6 @@ CPSIfElseExpression = collections.namedtuple(
     ),
 )
 
-CPSListAppendStatement = collections.namedtuple(
-    'CPSListAppendStatement',
-    (
-        'list_expression',
-        'item_expression',
-    ),
-)
-
 CPSPushStatement = collections.namedtuple(
     'CPSPushStatement',
     (
@@ -139,6 +138,9 @@ CPSProgram = collections.namedtuple(
     ),
 )
 
+def convert_builtin_expression(expression):
+    return CPSBuiltinExpression(symbol=expression.symbol)
+
 def convert_function_call_expression(expression):
     return CPSFunctionCallExpression(
         metadata=expression.metadata,
@@ -178,6 +180,7 @@ def convert_variable_expression(expression):
 
 def convert_expression(expression):
     return {
+        normalization.NormalBuiltinExpression: convert_builtin_expression,
         normalization.NormalFunctionCallExpression: convert_function_call_expression,
         normalization.NormalIfElseExpression: convert_if_else_expression,
         normalization.NormalIntegerLiteralExpression: convert_integer_literal_expression,
@@ -211,13 +214,6 @@ def convert_if_else_expression(statement):
         else_statement_list=else_statement_list,
     )
 
-def convert_list_append_statement(statement):
-    return CPSListAppendStatement(
-        list_expression=convert_expression(statement.list_expression),
-        item_expression=convert_expression(statement.item_expression),
-    )
-
-
 def convert_push_statement(statement):
     return CPSPushStatement(
         expression=convert_expression(statement.expression),
@@ -233,7 +229,6 @@ def convert_statement(statement):
     return {
         normalization.NormalAssignmentStatement: convert_assignment_statement,
         normalization.NormalExpressionStatement: convert_expression_statement,
-        normalization.NormalListAppendStatement: convert_list_append_statement,
         normalization.NormalPushStatement: convert_push_statement,
         normalization.NormalVariableInitializationStatement: convert_variable_initialization_statement,
     }[type(statement)](statement)