From 043a96a6b7cf55f7ef58fb5ebf8ad87b7d50b571 Mon Sep 17 00:00:00 2001 From: Bad Diode Date: Mon, 18 Oct 2021 12:31:20 +0200 Subject: Add header files for all modules --- src/bootstrap/primitives.h | 60 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 60 insertions(+) create mode 100644 src/bootstrap/primitives.h (limited to 'src/bootstrap/primitives.h') diff --git a/src/bootstrap/primitives.h b/src/bootstrap/primitives.h new file mode 100644 index 0000000..f874b17 --- /dev/null +++ b/src/bootstrap/primitives.h @@ -0,0 +1,60 @@ +#ifndef BDL_PRIMITIVES_H +#define BDL_PRIMITIVES_H + +// Function evaluation. +Object * eval(Environment *env, Object *root); + +// Evaluation functions. +Object * proc_quote(Environment *env, Object *obj); +Object * proc_eval(Environment *env, Object *obj); + +// Arithmetic. +Object * proc_sum(Environment *env, Object *obj); +Object * proc_sub(Environment *env, Object *obj); +Object * proc_mul(Environment *env, Object *obj); +Object * proc_div(Environment *env, Object *obj); +Object * proc_mod(Environment *env, Object *obj); + +// Printing. +Object * proc_display(Environment *env, Object *obj); +Object * proc_print(Environment *env, Object *obj); +Object * proc_newline(Environment *env, Object *obj); + +// Type checking. +Object * proc_is_boolean(Environment *env, Object *obj); +Object * proc_is_nil(Environment *env, Object *obj); +Object * proc_is_symbol(Environment *env, Object *obj); +Object * proc_is_string(Environment *env, Object *obj); +Object * proc_is_fixnum(Environment *env, Object *obj); +Object * proc_is_pair(Environment *env, Object *obj); +Object * proc_is_procedure(Environment *env, Object *obj); +Object * proc_is_error(Environment *env, Object *obj); + +// Logical operations. +Object * proc_not(Environment *env, Object *obj); +Object * proc_and(Environment *env, Object *obj); +Object * proc_or(Environment *env, Object *obj); +Object * proc_cond(Environment *env, Object *obj); +Object * proc_num_less_than(Environment *env, Object *obj); +Object * proc_num_greater_than(Environment *env, Object *obj); +Object * proc_num_lesseq_than(Environment *env, Object *obj); +Object * proc_num_greatereq_than(Environment *env, Object *obj); +Object * proc_num_equal(Environment *env, Object *obj); +Object * proc_equal(Environment *env, Object *obj); + +// List operations. +Object * proc_car(Environment *env, Object *obj); +Object * proc_cdr(Environment *env, Object *obj); +Object * proc_cons(Environment *env, Object *obj); +Object * proc_list(Environment *env, Object *obj); + +// Environment/variable manipulation. +Object * proc_define(Environment *env, Object *obj); +Object * proc_set(Environment *env, Object *obj); +Object * proc_lambda(Environment *env, Object *obj); +Object * proc_fun(Environment *env, Object *obj); + +// Runtinme configuration. +Object * proc_supress_errors(Environment *env, Object *obj); + +#endif // BDL_PRIMITIVES_H -- cgit v1.2.1