summaryrefslogtreecommitdiff
path: root/src/lisp/ao_lisp_make_builtin
diff options
context:
space:
mode:
authorKeith Packard <keithp@keithp.com>2017-11-17 08:04:28 -0800
committerKeith Packard <keithp@keithp.com>2017-11-17 08:04:28 -0800
commit5b6f4b5de89a2bb0d63442e2651cf8d2ee0f4b10 (patch)
treeb7a2a65c3a40df38d6cf18cb42284f2b78e5ee6e /src/lisp/ao_lisp_make_builtin
parentcd9152973f29f4e775569f5acbbe8fab2d93d170 (diff)
altos/lisp: Generate built-in lambda atoms for const creation
Signed-off-by: Keith Packard <keithp@keithp.com>
Diffstat (limited to 'src/lisp/ao_lisp_make_builtin')
-rw-r--r--src/lisp/ao_lisp_make_builtin17
1 files changed, 17 insertions, 0 deletions
diff --git a/src/lisp/ao_lisp_make_builtin b/src/lisp/ao_lisp_make_builtin
index b7b17cf4..ddc9a0b3 100644
--- a/src/lisp/ao_lisp_make_builtin
+++ b/src/lisp/ao_lisp_make_builtin
@@ -142,6 +142,22 @@ dump_consts(builtin_t[*] builtins) {
printf("#endif /* AO_LISP_BUILTIN_CONSTS */\n");
}
+void
+dump_atoms(builtin_t[*] builtins) {
+ printf("#ifdef AO_LISP_BUILTIN_ATOMS\n");
+ printf("#undef AO_LISP_BUILTIN_ATOMS\n");
+ for (int i = 0; i < dim(builtins); i++) {
+ 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("#endif /* AO_LISP_BUILTIN_ATOMS */\n");
+}
+
void main() {
if (dim(argv) < 2) {
File::fprintf(stderr, "usage: %s <file>\n", argv[0]);
@@ -155,6 +171,7 @@ void main() {
dump_funcs(builtins);
dump_decls(builtins);
dump_consts(builtins);
+ dump_atoms(builtins);
}
}