+def generate_function_definition(definition):
+ template = ENV.get_template('function_definition.c')
+ return template.render(
+ name=definition.name,
+ index=definition.index,
+ argument_name_list=definition.argument_name_list,
+ statement_list=list(generate_statement(s) for s in definition.statement_list),
+ )
+ return definition
+
+C_ESCAPES = {
+ '"': r'\"',
+}
+
+def escape_character(ch):
+ return C_ESCAPES.get(ch, ch)
+
+def escape_string_literal(string_literal):
+ return ''.join(escape_character(ch) for ch in string_literal)
+