]> gitweb.factorcode.org Git - factor.git/blob - native/primitives.c
e963313916a6d1a4fd1cfe095647a167db4d60b4
[factor.git] / native / primitives.c
1 #include "factor.h"
2
3 XT primitives[] = {
4         undefined,
5         call,
6         primitive_execute,
7         primitive_call,
8         primitive_ifte,
9         primitive_consp,
10         primitive_cons,
11         primitive_car,
12         primitive_cdr,
13         primitive_set_car,
14         primitive_set_cdr,
15         primitive_vectorp,
16         primitive_vector,
17         primitive_vector_length,
18         primitive_set_vector_length,
19         primitive_vector_nth,
20         primitive_set_vector_nth,
21         primitive_stringp,
22         primitive_string_length,
23         primitive_string_nth,
24         primitive_string_compare,
25         primitive_string_eq,
26         primitive_string_hashcode,
27         primitive_index_of,
28         primitive_substring,
29         primitive_sbufp,
30         primitive_sbuf,
31         primitive_sbuf_length,
32         primitive_set_sbuf_length,
33         primitive_sbuf_nth,
34         primitive_set_sbuf_nth,
35         primitive_sbuf_append,
36         primitive_sbuf_to_string,
37         primitive_numberp,
38         primitive_to_fixnum,
39         primitive_to_bignum,
40         primitive_to_integer,
41         primitive_to_float,
42         primitive_number_eq,
43         primitive_fixnump,
44         primitive_bignump,
45         primitive_ratiop,
46         primitive_numerator,
47         primitive_denominator,
48         primitive_floatp,
49         primitive_str_to_float,
50         primitive_float_to_str,
51         primitive_complexp,
52         primitive_real,
53         primitive_imaginary,
54         primitive_to_rect,
55         primitive_from_rect,
56         primitive_add,
57         primitive_subtract,
58         primitive_multiply,
59         primitive_divint,
60         primitive_divfloat,
61         primitive_divide,
62         primitive_mod,
63         primitive_divmod,
64         primitive_and,
65         primitive_or,
66         primitive_xor,
67         primitive_not,
68         primitive_shiftleft,
69         primitive_shiftright,
70         primitive_less,
71         primitive_lesseq,
72         primitive_greater,
73         primitive_greatereq,
74         primitive_wordp,
75         primitive_word,
76         primitive_word_primitive,
77         primitive_set_word_primitive,
78         primitive_word_parameter,
79         primitive_set_word_parameter,
80         primitive_word_plist,
81         primitive_set_word_plist,
82         primitive_drop,
83         primitive_dup,
84         primitive_swap,
85         primitive_over,
86         primitive_pick,
87         primitive_nip,
88         primitive_tuck,
89         primitive_rot,
90         primitive_to_r,
91         primitive_from_r,
92         primitive_eq,
93         primitive_getenv,
94         primitive_setenv,
95         primitive_open_file,
96         primitive_gc,
97         primitive_save_image,
98         primitive_datastack,
99         primitive_callstack,
100         primitive_set_datastack,
101         primitive_set_callstack,
102         primitive_handlep,
103         primitive_exit,
104         primitive_server_socket,
105         primitive_close_fd,
106         primitive_accept_fd,
107         primitive_read_line_fd_8,
108         primitive_write_fd_8,
109         primitive_flush_fd,
110         primitive_shutdown_fd,
111         primitive_room,
112         primitive_os_env,
113         primitive_millis,
114         primitive_init_random,
115         primitive_random_int
116 };
117
118 CELL primitive_to_xt(CELL primitive)
119 {
120         if(primitive < 0 || primitive >= PRIMITIVE_COUNT)
121                 general_error(ERROR_BAD_PRIMITIVE,tag_fixnum(primitive));
122
123         return (CELL)primitives[primitive];
124 }