projects
/
fur
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Implement and/or, introducing jumps and labels
[fur]
/
conversion.py
diff --git
a/conversion.py
b/conversion.py
index
2b6ccbd
..
29a40d7
100644
(file)
--- a/
conversion.py
+++ b/
conversion.py
@@
-2,6
+2,13
@@
import collections
import normalization
import normalization
+CPSBuiltinExpression = collections.namedtuple(
+ 'CPSBuiltinExpression',
+ (
+ 'symbol',
+ ),
+)
+
CPSFunctionCallExpression = collections.namedtuple(
'CPSFunctionCallExpression',
(
CPSFunctionCallExpression = collections.namedtuple(
'CPSFunctionCallExpression',
(
@@
-101,14
+108,6
@@
CPSIfElseExpression = collections.namedtuple(
),
)
),
)
-CPSListAppendStatement = collections.namedtuple(
- 'CPSListAppendStatement',
- (
- 'list_expression',
- 'item_expression',
- ),
-)
-
CPSPushStatement = collections.namedtuple(
'CPSPushStatement',
(
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,
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 {
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,
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,
)
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),
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,
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)
normalization.NormalPushStatement: convert_push_statement,
normalization.NormalVariableInitializationStatement: convert_variable_initialization_statement,
}[type(statement)](statement)