X-Git-Url: https://git.gag.com/?a=blobdiff_plain;f=src%2Flisp%2Fao_lisp_make_builtin;h=531e388d8627d165826d8f4cae08ed2c6aca4f88;hb=cf5729a0bae51172f12fc9ec4339d4e975a45fcc;hp=ddc9a0b37ec4210abbab150d0509656206dea56d;hpb=5b6f4b5de89a2bb0d63442e2651cf8d2ee0f4b10;p=fw%2Faltos diff --git a/src/lisp/ao_lisp_make_builtin b/src/lisp/ao_lisp_make_builtin index ddc9a0b3..531e388d 100644 --- a/src/lisp/ao_lisp_make_builtin +++ b/src/lisp/ao_lisp_make_builtin @@ -7,10 +7,12 @@ typedef struct { } builtin_t; string[string] type_map = { - "lambda" => "F_LAMBDA", + "lambda" => "LAMBDA", "nlambda" => "NLAMBDA", - "lexpr" => "F_LEXPR", + "lexpr" => "LEXPR", "macro" => "MACRO", + "f_lambda" => "F_LAMBDA", + "f_lexpr" => "F_LEXPR", }; string[*] @@ -67,8 +69,8 @@ dump_casename(builtin_t[*] builtins) { printf("static char *ao_lisp_builtin_name(enum ao_lisp_builtin_id b) {\n"); printf("\tswitch(b) {\n"); for (int i = 0; i < dim(builtins); i++) - printf("\tcase builtin_%s: return ao_lisp_poly_atom(_atom(%s))->name;\n", - builtins[i].c_name, builtins[i].c_name); + printf("\tcase builtin_%s: return ao_lisp_poly_atom(_atom(\"%s\"))->name;\n", + builtins[i].c_name, builtins[i].lisp_names[0]); printf("\tdefault: return \"???\";\n"); printf("\t}\n"); printf("}\n"); @@ -135,7 +137,9 @@ dump_consts(builtin_t[*] builtins) { for (int i = 0; i < dim(builtins); i++) { for (int j = 0; j < dim(builtins[i].lisp_names); j++) { printf ("\t{ .name = \"%s\", .args = AO_LISP_FUNC_%s, .func = builtin_%s },\n", - builtins[i].lisp_names[j], builtins[i].type, builtins[i].c_name); + builtins[i].lisp_names[j], + builtins[i].type, + builtins[i].c_name); } } printf("};\n"); @@ -150,9 +154,7 @@ dump_atoms(builtin_t[*] builtins) { for (int j = 0; j < dim(builtins[i].lisp_names); j++) { printf("#define _ao_lisp_atom_"); cify_lisp(builtins[i].lisp_names[j]); - printf(" _atom("); - cify_lisp(builtins[i].lisp_names[j]); - printf(")\n"); + printf(" _atom(\"%s\")\n", builtins[i].lisp_names[j]); } } printf("#endif /* AO_LISP_BUILTIN_ATOMS */\n");