X-Git-Url: https://code.kerkeslager.com/?p=fur;a=blobdiff_plain;f=transformation.py;h=98398f8fb51fe7e37a5f9dc07e3f2d7928403a2a;hp=b75b3a0fa522df7d504c814896e05be635bc03ef;hb=ce4ef136c1e6585c3e780932f3411b71a78c272b;hpb=f4f13322a77eaf87328a4279c766228bb7391978 diff --git a/transformation.py b/transformation.py index b75b3a0..98398f8 100644 --- a/transformation.py +++ b/transformation.py @@ -221,10 +221,15 @@ def transform_function_call_expression(accumulators, function_call): 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, - parsing.FurFunctionCallExpression: transform_function_call_expression, + parsing.FurExpressionStatement: transform_expression_statement, }[type(statement)](accumulators, statement) @@ -244,19 +249,19 @@ def transform(program): string_literal_list=[], ) - c_statements = [ + statement_list = [ transform_statement(accumulators, statement) for statement in program.statement_list ] - standard_libraries = set() + standard_library_set = set() for builtin in accumulators.builtin_set: for standard_library in BUILTINS[builtin]: - standard_libraries.add(standard_library) + standard_library_set.add(standard_library) return CProgram( builtin_set=accumulators.builtin_set, - statements=c_statements, - standard_libraries=standard_libraries, + statements=statement_list, + standard_libraries=standard_library_set, string_literal_list=accumulators.string_literal_list, symbol_list=accumulators.symbol_list, )