3120fb96d9a17e6d26866ed40f712e3fe7e69695
[fur] / templates / function_definition.c
1
2 Object user${{name}}$implementation(EnvironmentPool* environmentPool, Environment* parent, size_t argc, Object* args)
3 {
4   assert(argc == {{ argument_name_list|length }});
5
6   Environment* environment = EnvironmentPool_allocate(environmentPool);
7   Environment_initialize(environment, parent);
8
9   {% for argument_name in argument_name_list %}
10   Environment_set(environment, "{{ argument_name }}", args[{{ loop.index0 }}]);
11   {% endfor %}
12
13   {% for statement in statement_list[:-1] %}
14   {{ statement }}
15   {% endfor %}
16
17   Object result = {{ statement_list[-1] }}
18
19   Environment_setLive(environment, false);
20   return result;
21 }