2 Object user${{name}}$implementation(
3 EnvironmentPool* environmentPool,
4 Environment* environment,
7 const unsigned long line,
10 environment = Environment_construct(environmentPool, environment);
12 StackSnapshot stackSnapshot = Stack_takeSnapshot(stack);
17 fprintf(stderr, "\tin {{name}} on line %zu\n", line);
19 Stack_rewind(stack, stackSnapshot);
20 Environment_setLive(environment, false);
22 longjmp(parentJump, 1);
25 Object result = builtin$nil;
27 {% for argument_name in argument_name_list|reverse %}
28 Environment_set(environment, "{{ argument_name }}", Stack_pop(stack));
31 {% for statement in statement_list %}
35 // TODO Set the environment back to the parent environment
36 Environment_setLive(environment, false);