+def transform_structure_literal_expression(accumulators, expression):
+ return CStructureLiteralExpression(
+ field_count=expression.field_count,
+ symbol_list_variable=expression.symbol_list_variable,
+ value_list_variable=expression.value_list_variable,
+ )
+
+def transform_dot_expression(accumulators, expression):
+ try:
+ symbol_list_index = accumulators.symbol_list.index(expression.field)
+
+ except ValueError:
+ symbol_list_index = len(accumulators.symbol_list)
+ accumulators.symbol_list.append(expression.field)
+
+ return CDotExpression(
+ instance=transform_variable_expression(accumulators, expression.instance),
+ symbol=expression.field,
+ symbol_list_index=symbol_list_index,
+ )
+