summaryrefslogtreecommitdiff
path: root/vere/pkg/noun/jets/k.h
diff options
context:
space:
mode:
Diffstat (limited to 'vere/pkg/noun/jets/k.h')
-rw-r--r--vere/pkg/noun/jets/k.h185
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 */