projects
/
fur
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Some minor refactoring and added a (currently trivial) normalization step
[fur]
/
transformation.py
diff --git
a/transformation.py
b/transformation.py
index
b75b3a0
..
98398f8
100644
(file)
--- a/
transformation.py
+++ b/
transformation.py
@@
-221,10
+221,15
@@
def transform_function_call_expression(accumulators, function_call):
raise Exception()
raise Exception()
+def transform_expression_statement(accumulators, statement):
+ return {
+ parsing.FurFunctionCallExpression: transform_function_call_expression,
+ }[type(statement.expression)](accumulators, statement.expression)
+
def transform_statement(accumulators, statement):
return {
parsing.FurAssignmentStatement: transform_assignment_statement,
def transform_statement(accumulators, statement):
return {
parsing.FurAssignmentStatement: transform_assignment_statement,
- parsing.Fur
FunctionCallExpression: transform_function_call_expression
,
+ parsing.Fur
ExpressionStatement: transform_expression_statement
,
}[type(statement)](accumulators, statement)
}[type(statement)](accumulators, statement)
@@
-244,19
+249,19
@@
def transform(program):
string_literal_list=[],
)
string_literal_list=[],
)
-
c_statements
= [
+
statement_list
= [
transform_statement(accumulators, statement) for statement in program.statement_list
]
transform_statement(accumulators, statement) for statement in program.statement_list
]
- standard_librar
ies
= set()
+ standard_librar
y_set
= set()
for builtin in accumulators.builtin_set:
for standard_library in BUILTINS[builtin]:
for builtin in accumulators.builtin_set:
for standard_library in BUILTINS[builtin]:
- standard_librar
ies
.add(standard_library)
+ standard_librar
y_set
.add(standard_library)
return CProgram(
builtin_set=accumulators.builtin_set,
return CProgram(
builtin_set=accumulators.builtin_set,
- statements=
c_statements
,
- standard_libraries=standard_librar
ies
,
+ statements=
statement_list
,
+ standard_libraries=standard_librar
y_set
,
string_literal_list=accumulators.string_literal_list,
symbol_list=accumulators.symbol_list,
)
string_literal_list=accumulators.string_literal_list,
symbol_list=accumulators.symbol_list,
)