diff options
Diffstat (limited to 'vere/pkg/noun/jets/k.h')
-rw-r--r-- | vere/pkg/noun/jets/k.h | 185 |
1 files changed, 185 insertions, 0 deletions
diff --git a/vere/pkg/noun/jets/k.h b/vere/pkg/noun/jets/k.h new file mode 100644 index 0000000..27733fb --- /dev/null +++ b/vere/pkg/noun/jets/k.h @@ -0,0 +1,185 @@ +/// @file + +#ifndef U3_JETS_K_H +#define U3_JETS_K_H + +#include "types.h" + + /** Tier 1. + **/ + u3_noun u3ka_add(u3_noun a, u3_noun b); + u3_noun u3ka_dec(u3_atom a); + u3_noun u3ka_div(u3_noun a, u3_noun b); + u3_noun u3ka_sub(u3_noun a, u3_noun b); + u3_noun u3ka_max(u3_noun a, u3_noun b); + u3_noun u3ka_min(u3_noun a, u3_noun b); + u3_noun u3ka_mod(u3_noun a, u3_noun b); + u3_noun u3ka_mul(u3_noun a, u3_noun b); + u3_noun u3ka_gth(u3_noun a, u3_noun b); + u3_noun u3ka_lte(u3_noun a, u3_noun b); + + /** Tier 2. + **/ + u3_noun u3kb_lent(u3_noun a); + u3_noun u3kb_weld(u3_noun a, u3_noun b); + u3_noun u3kb_flop(u3_noun a); + +/* u3kc: tier 3 functions +*/ + /* u3kc_bex(): binary exponent. + */ + u3_noun + u3kc_bex(u3_atom); + + /* u3kc_con(): binary loobean conjunction. + */ + u3_noun + u3kc_con(u3_noun a, + u3_noun b); + + /* u3kc_mix(): binary xor. + */ + u3_noun + u3kc_mix(u3_atom a, u3_atom b); + + /* u3kc_lsh(): left shift. + */ + u3_noun + u3kc_lsh(u3_noun a, u3_noun b, u3_noun c); + + /* u3kc_rsh(): right shift. + */ + u3_noun + u3kc_rsh(u3_noun a, u3_noun b, u3_noun c); + + /* u3kc_rep(): assemble single. + */ + u3_noun + u3kc_rep(u3_atom a, + u3_atom b, + u3_noun c); + + /* u3kc_rip(): disassemble. + */ + u3_noun + u3kc_rip(u3_atom a, + u3_atom b, + u3_atom c); + + /* u3kc_rev(): reverse block order, accounting for leading zeroes. + */ + u3_noun + u3kc_rev(u3_atom boz, u3_atom len, u3_atom dat); + + /* u3kc_swp(): reverse block order. + */ + u3_noun + u3kc_swp(u3_atom a, u3_atom b); + +/* u3kd: tier 4 functions +*/ + /* u3kdb_get(): map get for key `b` in map `a` with u3_none. + */ + u3_weak + u3kdb_get(u3_noun a, u3_noun b); + + /* u3kdb_got(): map get for key `b` in map `a` with bail. + */ + u3_noun + u3kdb_got(u3_noun a, u3_noun b); + + /* u3kdb_put(): map put for key `b`, value `c` in map `a`. + */ + u3_weak + u3kdb_put(u3_noun a, u3_noun b, u3_noun c); + + /* u3kdb_del(): map del for key `b` + */ + u3_weak + u3kdb_del(u3_noun a, u3_noun b); + + /* u3kdb_has(): test for get. + */ + u3_noun + u3kdb_has(u3_noun a, u3_noun b); + + /* u3kdb_gas(): list to map. + */ + u3_noun + u3kdb_gas(u3_noun a, u3_noun b); + + /* u3kdb_uni(): map union. + */ + u3_noun + u3kdb_uni(u3_noun a, u3_noun b); + + /* u3kdi_gas(): list to map. + */ + u3_noun + u3kdi_gas(u3_noun a, u3_noun b); + + /* u3kdi_has(): test for presence. + */ + u3_noun + u3kdi_has(u3_noun a, u3_noun b); + + /* u3kdi_tap(): map/set convert to list. (solves by_tap also.) + */ + u3_noun + u3kdi_tap(u3_noun a); + + /* u3kdi_put(): put in set. + */ + u3_weak + u3kdi_put(u3_noun a, u3_noun b); + + /* u3kdi_uni(): set union. + */ + u3_noun + u3kdi_uni(u3_noun a, u3_noun b); + +# define u3kdb_tap(a) u3kdi_tap(a) + +/* u3ke: tier 5 functions +*/ + /* u3ke_cue(): expand saved pill. + */ + u3_noun + u3ke_cue(u3_atom a); + + /* u3ke_jam(): pack noun as atom. + */ + u3_atom + u3ke_jam(u3_noun a); + + /* u3ke_trip(): atom to tape. + */ + u3_noun + u3ke_trip(u3_noun a); + + /* u3ke_json_de(): parse JSON from cord. + */ + u3_noun + u3ke_json_de(u3_atom); + + /* u3ke_json_en(): serialize JSON to cord. + */ + u3_atom + u3ke_json_en(u3_noun); + + /* u3kf_fork(): build %fork span. + */ + u3_noun + u3kf_fork(u3_noun yed); + + /* u3kz_fork(): build %fork span. + */ + u3_noun + u3kz_fork(u3_noun yed); + + /* u3kfu_repo(): + */ + u3_noun + u3kfu_repo(u3_noun, u3_noun); + +#endif /* ifndef U3_JETS_K_H */ |