]> gitweb.factorcode.org Git - factor.git/blob - native/primitives.c
i/o refactoring continues
[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_clone_sbuf,
38         primitive_sbuf_eq,
39         primitive_numberp,
40         primitive_to_fixnum,
41         primitive_to_bignum,
42         primitive_to_integer,
43         primitive_to_float,
44         primitive_number_eq,
45         primitive_fixnump,
46         primitive_bignump,
47         primitive_ratiop,
48         primitive_numerator,
49         primitive_denominator,
50         primitive_floatp,
51         primitive_str_to_float,
52         primitive_float_to_str,
53         primitive_float_to_bits,
54         primitive_complexp,
55         primitive_real,
56         primitive_imaginary,
57         primitive_to_rect,
58         primitive_from_rect,
59         primitive_add,
60         primitive_subtract,
61         primitive_multiply,
62         primitive_divint,
63         primitive_divfloat,
64         primitive_divide,
65         primitive_mod,
66         primitive_divmod,
67         primitive_and,
68         primitive_or,
69         primitive_xor,
70         primitive_not,
71         primitive_shiftleft,
72         primitive_shiftright,
73         primitive_less,
74         primitive_lesseq,
75         primitive_greater,
76         primitive_greatereq,
77         primitive_gcd,
78         primitive_facos,
79         primitive_fasin,
80         primitive_fatan,
81         primitive_fatan2,
82         primitive_fcos,
83         primitive_fexp,
84         primitive_fcosh,
85         primitive_flog,
86         primitive_fpow,
87         primitive_fsin,
88         primitive_fsinh,
89         primitive_fsqrt,
90         primitive_wordp,
91         primitive_word,
92         primitive_word_primitive,
93         primitive_set_word_primitive,
94         primitive_word_parameter,
95         primitive_set_word_parameter,
96         primitive_word_plist,
97         primitive_set_word_plist,
98         primitive_drop,
99         primitive_dup,
100         primitive_swap,
101         primitive_over,
102         primitive_pick,
103         primitive_nip,
104         primitive_tuck,
105         primitive_rot,
106         primitive_to_r,
107         primitive_from_r,
108         primitive_eq,
109         primitive_getenv,
110         primitive_setenv,
111         primitive_open_file,
112         primitive_gc,
113         primitive_save_image,
114         primitive_datastack,
115         primitive_callstack,
116         primitive_set_datastack,
117         primitive_set_callstack,
118         primitive_portp,
119         primitive_exit,
120         primitive_server_socket,
121         primitive_close_fd,
122         primitive_accept_fd,
123         primitive_can_read_line,
124         primitive_add_read_line_io_task,
125         primitive_read_line_fd_8,
126         primitive_can_write,
127         primitive_add_write_io_task,
128         primitive_write_fd_8,
129         primitive_next_io_task,
130         primitive_room,
131         primitive_os_env,
132         primitive_millis,
133         primitive_init_random,
134         primitive_random_int,
135         primitive_type_of,
136         primitive_size_of
137 };
138
139 CELL primitive_to_xt(CELL primitive)
140 {
141         if(primitive < 0 || primitive >= PRIMITIVE_COUNT)
142                 critical_error("Bad primitive number",primitive);
143
144         return (CELL)primitives[primitive];
145 }