aboutsummaryrefslogtreecommitdiffstats
path: root/src/bootstrap/primitives.h
diff options
context:
space:
mode:
authorBad Diode <bd@badd10de.dev>2021-10-22 09:59:31 +0200
committerBad Diode <bd@badd10de.dev>2021-10-22 09:59:31 +0200
commiteeff5e273f22aa28e81ab080e9ffdce85ac394b8 (patch)
tree71d11c76be7c0bb649099bb55e6181f9b7c6c8a8 /src/bootstrap/primitives.h
parent5bd694fc7071bfb76b9f65c89d253b2b4e18cf63 (diff)
downloadbdl-eeff5e273f22aa28e81ab080e9ffdce85ac394b8.tar.gz
bdl-eeff5e273f22aa28e81ab080e9ffdce85ac394b8.zip
Prepare skeleton for bytecode interpreter
Diffstat (limited to 'src/bootstrap/primitives.h')
-rw-r--r--src/bootstrap/primitives.h60
1 files changed, 0 insertions, 60 deletions
diff --git a/src/bootstrap/primitives.h b/src/bootstrap/primitives.h
deleted file mode 100644
index f874b17..0000000
--- a/src/bootstrap/primitives.h
+++ /dev/null
@@ -1,60 +0,0 @@
1#ifndef BDL_PRIMITIVES_H
2#define BDL_PRIMITIVES_H
3
4// Function evaluation.
5Object * eval(Environment *env, Object *root);
6
7// Evaluation functions.
8Object * proc_quote(Environment *env, Object *obj);
9Object * proc_eval(Environment *env, Object *obj);
10
11// Arithmetic.
12Object * proc_sum(Environment *env, Object *obj);
13Object * proc_sub(Environment *env, Object *obj);
14Object * proc_mul(Environment *env, Object *obj);
15Object * proc_div(Environment *env, Object *obj);
16Object * proc_mod(Environment *env, Object *obj);
17
18// Printing.
19Object * proc_display(Environment *env, Object *obj);
20Object * proc_print(Environment *env, Object *obj);
21Object * proc_newline(Environment *env, Object *obj);
22
23// Type checking.
24Object * proc_is_boolean(Environment *env, Object *obj);
25Object * proc_is_nil(Environment *env, Object *obj);
26Object * proc_is_symbol(Environment *env, Object *obj);
27Object * proc_is_string(Environment *env, Object *obj);
28Object * proc_is_fixnum(Environment *env, Object *obj);
29Object * proc_is_pair(Environment *env, Object *obj);
30Object * proc_is_procedure(Environment *env, Object *obj);
31Object * proc_is_error(Environment *env, Object *obj);
32
33// Logical operations.
34Object * proc_not(Environment *env, Object *obj);
35Object * proc_and(Environment *env, Object *obj);
36Object * proc_or(Environment *env, Object *obj);
37Object * proc_cond(Environment *env, Object *obj);
38Object * proc_num_less_than(Environment *env, Object *obj);
39Object * proc_num_greater_than(Environment *env, Object *obj);
40Object * proc_num_lesseq_than(Environment *env, Object *obj);
41Object * proc_num_greatereq_than(Environment *env, Object *obj);
42Object * proc_num_equal(Environment *env, Object *obj);
43Object * proc_equal(Environment *env, Object *obj);
44
45// List operations.
46Object * proc_car(Environment *env, Object *obj);
47Object * proc_cdr(Environment *env, Object *obj);
48Object * proc_cons(Environment *env, Object *obj);
49Object * proc_list(Environment *env, Object *obj);
50
51// Environment/variable manipulation.
52Object * proc_define(Environment *env, Object *obj);
53Object * proc_set(Environment *env, Object *obj);
54Object * proc_lambda(Environment *env, Object *obj);
55Object * proc_fun(Environment *env, Object *obj);
56
57// Runtinme configuration.
58Object * proc_supress_errors(Environment *env, Object *obj);
59
60#endif // BDL_PRIMITIVES_H