Add recursive calls, (function), #'
diff --git a/src/lisp/compiler.h b/src/lisp/compiler.h
index 07928d2..16cc35e 100644
--- a/src/lisp/compiler.h
+++ b/src/lisp/compiler.h
@@ -61,7 +61,11 @@
/// Parent environment, NULL if none (root).
struct local *parent;
- int num_vars;
+ /// Name that the current function should be referred to by, e.g. `recurse`
+ /// for a lambda.
+ char *current_function_name;
+
+ int num_vars, num_args;
/// Most recently defined variable
struct variable *first;
int npc;
@@ -95,7 +99,7 @@
*/
struct dasm_State *compile_function(value_t args, enum namespace namespace,
struct environment *env, struct local *local_out,
- struct local *local_parent, int *nargs);
+ struct local *local_parent, int *nargs, char *name);
void compile_variable(struct variable *v, dasm_State *Dst);