diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/lisp/ao_lisp.h | 32 | ||||
| -rw-r--r-- | src/lisp/ao_lisp_make_builtin | 17 | 
2 files changed, 23 insertions, 26 deletions
| diff --git a/src/lisp/ao_lisp.h b/src/lisp/ao_lisp.h index 341996c0..77a94cf1 100644 --- a/src/lisp/ao_lisp.h +++ b/src/lisp/ao_lisp.h @@ -59,33 +59,13 @@ extern uint8_t ao_lisp_const[AO_LISP_POOL_CONST] __attribute__((aligned(4)));  #define _ao_lisp_bool_true	_bool(1)  #define _ao_lisp_bool_false	_bool(0) -#define _ao_lisp_atom_quote	_atom(quote) -#define _ao_lisp_atom_set 	_atom(set) -#define _ao_lisp_atom_setq 	_atom(setq) -#define _ao_lisp_atom_car 	_atom(car) -#define _ao_lisp_atom_cdr	_atom(cdr) -#define _ao_lisp_atom_cons	_atom(cons) -#define _ao_lisp_atom_last	_atom(last) -#define _ao_lisp_atom_length	_atom(length) -#define _ao_lisp_atom_cond	_atom(cond) -#define _ao_lisp_atom_else	_atom(else) -#define _ao_lisp_atom_lambda	_atom(lambda) -#define _ao_lisp_atom_led	_atom(led) -#define _ao_lisp_atom_delay	_atom(delay) -#define _ao_lisp_atom_pack	_atom(pack) -#define _ao_lisp_atom_unpack	_atom(unpack) -#define _ao_lisp_atom_flush	_atom(flush) -#define _ao_lisp_atom_eval	_atom(eval) -#define _ao_lisp_atom_read	_atom(read) +  #define _ao_lisp_atom_eof	_atom(eof) -#define _ao_lisp_atom_save	_atom(save) -#define _ao_lisp_atom_restore	_atom(restore) -#define _ao_lisp_atom_call2fcc	_atom(call/cc) -#define _ao_lisp_atom_collect	_atom(collect) -#define _ao_lisp_atom_symbolp   _atom(symbol?) -#define _ao_lisp_atom_builtin   _atom(builtin?) -#define _ao_lisp_atom_symbolp   _atom(symbol?) -#define _ao_lisp_atom_symbolp   _atom(symbol?) +#define _ao_lisp_atom_else	_atom(else) + +#define AO_LISP_BUILTIN_ATOMS +#include "ao_lisp_builtin.h" +  #else  #include "ao_lisp_const.h"  #ifndef AO_LISP_POOL 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);  	}  } | 
