jets: Rest of +ob that we're going to jet, and make +po callable.

All of the +ob jets that we need from the parsing jet are done.
Also changed how +po works to case based lookup tables so we can
call this code from other jets. (Also, linear search on every
syllable in a @p is kinda bad.)
This commit is contained in:
Elliot Glaysher 2020-04-28 12:47:03 -07:00
parent ff86cbf12b
commit 91badd6376
6 changed files with 917 additions and 28 deletions

View File

@ -70,6 +70,11 @@
u3_noun u3qc_swp(u3_atom, u3_atom);
u3_noun u3qc_sqt(u3_atom);
u3_noun u3qc_po_ind(u3_atom);
u3_noun u3qc_po_ins(u3_atom);
u3_noun u3qc_ob_fynd(u3_atom);
/** Tier 4.
**/
u3_noun u3qdb_bif(u3_noun, u3_noun);

View File

@ -76,6 +76,7 @@
u3_noun u3wcp_tos(u3_noun);
u3_noun u3wcp_tod(u3_noun);
u3_noun u3wc_ob_fynd(u3_noun);
u3_noun u3wc_ob_feis(u3_noun);
u3_noun u3wc_ob_tail(u3_noun);
u3_noun u3wc_ob_fee(u3_noun);

View File

@ -349,3 +349,42 @@ u3wc_ob_feis(u3_noun cor)
return u3qc_ob_feis(m);
}
}
u3_noun
u3qc_ob_fynd(u3_atom cry)
{
c3_d BIGGEST_PLANET = 0xffffffffULL;
c3_d SMALLEST_MOON = 0x100000000ULL;
c3_d BIGGEST_MOON = 0xffffffffffffffffULL;
c3_d MOON_MASK = 0xffffffff00000000ULL;
if (c3y == u3qa_gte(cry, 0x10000) &&
c3y == u3qa_lte(cry, u3i_chubs(1, &BIGGEST_PLANET))) {
return u3qa_add(0x10000, u3qc_ob_tail(u3qa_sub(cry, 0x10000)));
}
if (c3y == u3qa_gte(cry, u3i_chubs(1, &SMALLEST_MOON)) &&
c3y == u3qa_lte(cry, u3i_chubs(1, &BIGGEST_MOON))) {
u3_atom lo = u3qc_dis(cry, u3i_chubs(1, &BIGGEST_PLANET));
u3_atom hi = u3qc_dis(cry, u3i_chubs(1, &MOON_MASK));
return u3qc_con(hi, u3qc_ob_fynd(lo));
}
return cry;
}
u3_noun
u3wc_ob_fynd(u3_noun cor)
{
u3_noun m;
if ( (c3n == u3r_mean(cor, u3x_sam, &m, 0)) ||
(c3n == u3ud(m)) )
{
return u3m_bail(c3__exit);
}
else {
return u3qc_ob_fynd(m);
}
}

View File

@ -3,6 +3,820 @@
*/
#include "all.h"
static u3_noun
find_prefix(char one, char two, char three) {
switch (one) {
case 'b': switch (two) {
case 'a': switch (three) {
case 'c': return u3nc(0, 238);
case 'l': return u3nc(0, 107);
case 'n': return u3nc(0, 92);
case 'r': return u3nc(0, 183);
case 't': return u3nc(0, 172);
default: return 0;
}
case 'i': switch (three) {
case 'c': return u3nc(0, 56);
case 'd': return u3nc(0, 106);
case 'l': return u3nc(0, 144);
case 'n': return u3nc(0, 2);
case 's': return u3nc(0, 60);
case 't': return u3nc(0, 182);
default: return 0;
}
case 'o': switch (three) {
case 'l': return u3nc(0, 45);
case 'n': return u3nc(0, 244);
case 'r': return u3nc(0, 188);
case 's': return u3nc(0, 171);
case 't': return u3nc(0, 98);
default: return 0;
}
default: return 0;
}
case 'd': switch (two) {
case 'a': switch (three) {
case 'b': return u3nc(0, 181);
case 'c': return u3nc(0, 117);
case 'l': return u3nc(0, 37);
case 'n': return u3nc(0, 234);
case 'p': return u3nc(0, 66);
case 'r': return u3nc(0, 23);
case 's': return u3nc(0, 61);
case 't': return u3nc(0, 215);
case 'v': return u3nc(0, 105);
default: return 0;
}
case 'i': switch (three) {
case 'b': return u3nc(0, 179);
case 'f': return u3nc(0, 57);
case 'g': return u3nc(0, 193);
case 'l': return u3nc(0, 49);
case 'n': return u3nc(0, 217);
case 'r': return u3nc(0, 11);
case 's': return u3nc(0, 129);
case 'v': return u3nc(0, 116);
default: return 0;
}
case 'o': switch (three) {
case 'c': return u3nc(0, 146);
case 'l': return u3nc(0, 102);
case 'n': return u3nc(0, 233);
case 'p': return u3nc(0, 18);
case 'r': return u3nc(0, 24);
case 's': return u3nc(0, 187);
case 't': return u3nc(0, 47);
case 'v': return u3nc(0, 236);
case 'z': return u3nc(0, 0);
default: return 0;
}
default: return 0;
}
case 'f': switch (two) {
case 'a': switch (three) {
case 'b': return u3nc(0, 120);
case 'd': return u3nc(0, 206);
case 'l': return u3nc(0, 152);
case 'm': return u3nc(0, 214);
case 'n': return u3nc(0, 158);
case 's': return u3nc(0, 195);
default: return 0;
}
case 'i': switch (three) {
case 'd': return u3nc(0, 8);
case 'g': return u3nc(0, 138);
case 'l': return u3nc(0, 194);
case 'n': return u3nc(0, 90);
case 'p': return u3nc(0, 255);
case 'r': return u3nc(0, 169);
case 't': return u3nc(0, 226);
default: return 0;
}
case 'o': switch (three) {
case 'd': return u3nc(0, 247);
case 'g': return u3nc(0, 20);
case 'l': return u3nc(0, 27);
case 'n': return u3nc(0, 91);
case 'p': return u3nc(0, 213);
case 'r': return u3nc(0, 50);
case 's': return u3nc(0, 46);
case 't': return u3nc(0, 221);
default: return 0;
}
default: return 0;
}
case 'h': switch (two) {
case 'a': switch (three) {
case 'b': return u3nc(0, 209);
case 'c': return u3nc(0, 174);
case 'd': return u3nc(0, 145);
case 'l': return u3nc(0, 203);
case 'n': return u3nc(0, 41);
case 'p': return u3nc(0, 156);
case 'r': return u3nc(0, 198);
case 's': return u3nc(0, 170);
case 't': return u3nc(0, 218);
case 'v': return u3nc(0, 176);
default: return 0;
}
case 'i': switch (three) {
case 'd': return u3nc(0, 7);
case 'l': return u3nc(0, 190);
case 'n': return u3nc(0, 200);
default: return 0;
}
case 'o': switch (three) {
case 'b': return u3nc(0, 197);
case 'c': return u3nc(0, 223);
case 'd': return u3nc(0, 26);
case 'l': return u3nc(0, 32);
case 'p': return u3nc(0, 22);
case 's': return u3nc(0, 180);
default: return 0;
}
default: return 0;
}
case 'l': switch (two) {
case 'a': switch (three) {
case 'b': return u3nc(0, 161);
case 'c': return u3nc(0, 34);
case 'd': return u3nc(0, 235);
case 'g': return u3nc(0, 205);
case 'n': return u3nc(0, 232);
case 'p': return u3nc(0, 240);
case 'r': return u3nc(0, 225);
case 's': return u3nc(0, 128);
case 't': return u3nc(0, 134);
case 'v': return u3nc(0, 252);
default: return 0;
}
case 'i': switch (three) {
case 'b': return u3nc(0, 39);
case 'd': return u3nc(0, 21);
case 'g': return u3nc(0, 111);
case 'n': return u3nc(0, 178);
case 's': return u3nc(0, 9);
case 't': return u3nc(0, 5);
case 'v': return u3nc(0, 36);
default: return 0;
}
case 'o': switch (three) {
case 'c': return u3nc(0, 69);
case 'd': return u3nc(0, 186);
case 'm': return u3nc(0, 166);
case 'n': return u3nc(0, 135);
case 'p': return u3nc(0, 63);
case 'r': return u3nc(0, 25);
case 's': return u3nc(0, 48);
default: return 0;
}
default: return 0;
}
case 'm': switch (two) {
case 'a': switch (three) {
case 'c': return u3nc(0, 191);
case 'g': return u3nc(0, 103);
case 'l': return u3nc(0, 110);
case 'p': return u3nc(0, 130);
case 'r': return u3nc(0, 1);
case 's': return u3nc(0, 202);
case 't': return u3nc(0, 253);
default: return 0;
}
case 'i': switch (three) {
case 'c': return u3nc(0, 157);
case 'd': return u3nc(0, 62);
case 'g': return u3nc(0, 199);
case 'l': return u3nc(0, 212);
case 'n': return u3nc(0, 79);
case 'p': return u3nc(0, 254);
case 'r': return u3nc(0, 31);
case 's': return u3nc(0, 126);
case 't': return u3nc(0, 196);
default: return 0;
}
case 'o': switch (three) {
case 'c': return u3nc(0, 148);
case 'd': return u3nc(0, 19);
case 'g': return u3nc(0, 162);
case 'l': return u3nc(0, 67);
case 'n': return u3nc(0, 122);
case 'p': return u3nc(0, 208);
case 'r': return u3nc(0, 93);
case 's': return u3nc(0, 231);
case 't': return u3nc(0, 82);
default: return 0;
}
default: return 0;
}
case 'n': switch (two) {
case 'a': switch (three) {
case 'c': return u3nc(0, 219);
case 'l': return u3nc(0, 230);
case 'm': return u3nc(0, 243);
case 'p': return u3nc(0, 87);
case 'r': return u3nc(0, 65);
case 't': return u3nc(0, 77);
case 'v': return u3nc(0, 137);
default: return 0;
}
case 'i': switch (three) {
case 'b': return u3nc(0, 140);
case 'd': return u3nc(0, 72);
case 'l': return u3nc(0, 210);
case 'm': return u3nc(0, 224);
case 's': return u3nc(0, 124);
default: return 0;
}
case 'o': switch (three) {
case 'c': return u3nc(0, 250);
case 'd': return u3nc(0, 136);
case 'l': return u3nc(0, 216);
case 'm': return u3nc(0, 139);
case 'p': return u3nc(0, 88);
case 'r': return u3nc(0, 97);
case 's': return u3nc(0, 211);
case 'v': return u3nc(0, 70);
default: return 0;
}
default: return 0;
}
case 'p': switch (two) {
case 'a': switch (three) {
case 'c': return u3nc(0, 149);
case 'd': return u3nc(0, 114);
case 'g': return u3nc(0, 141);
case 'l': return u3nc(0, 127);
case 'n': return u3nc(0, 78);
case 'r': return u3nc(0, 185);
case 's': return u3nc(0, 33);
case 't': return u3nc(0, 159);
default: return 0;
}
case 'i': switch (three) {
case 'c': return u3nc(0, 104);
case 'd': return u3nc(0, 43);
case 'l': return u3nc(0, 51);
case 'n': return u3nc(0, 165);
case 't': return u3nc(0, 242);
default: return 0;
}
case 'o': switch (three) {
case 'c': return u3nc(0, 173);
case 'd': return u3nc(0, 81);
case 'l': return u3nc(0, 239);
case 'n': return u3nc(0, 248);
case 's': return u3nc(0, 86);
default: return 0;
}
default: return 0;
}
case 'r': switch (two) {
case 'a': switch (three) {
case 'b': return u3nc(0, 131);
case 'c': return u3nc(0, 184);
case 'd': return u3nc(0, 201);
case 'g': return u3nc(0, 204);
case 'l': return u3nc(0, 143);
case 'm': return u3nc(0, 52);
case 'n': return u3nc(0, 123);
case 'p': return u3nc(0, 228);
case 'v': return u3nc(0, 150);
default: return 0;
}
case 'i': switch (three) {
case 'b': return u3nc(0, 222);
case 'c': return u3nc(0, 167);
case 'd': return u3nc(0, 147);
case 'g': return u3nc(0, 16);
case 'l': return u3nc(0, 64);
case 'n': return u3nc(0, 28);
case 'p': return u3nc(0, 151);
case 's': return u3nc(0, 220);
case 't': return u3nc(0, 80);
case 'v': return u3nc(0, 237);
default: return 0;
}
case 'o': switch (three) {
case 'c': return u3nc(0, 58);
case 'l': return u3nc(0, 133);
case 'n': return u3nc(0, 96);
case 'p': return u3nc(0, 75);
case 's': return u3nc(0, 245);
case 'v': return u3nc(0, 35);
default: return 0;
}
default: return 0;
}
case 's': switch (two) {
case 'a': switch (three) {
case 'b': return u3nc(0, 13);
case 'l': return u3nc(0, 115);
case 'm': return u3nc(0, 4);
case 'n': return u3nc(0, 68);
case 'p': return u3nc(0, 177);
case 'r': return u3nc(0, 229);
case 't': return u3nc(0, 38);
case 'v': return u3nc(0, 85);
default: return 0;
}
case 'i': switch (three) {
case 'b': return u3nc(0, 15);
case 'c': return u3nc(0, 74);
case 'd': return u3nc(0, 119);
case 'g': return u3nc(0, 6);
case 'l': return u3nc(0, 30);
case 'm': return u3nc(0, 163);
case 'p': return u3nc(0, 95);
case 't': return u3nc(0, 71);
case 'v': return u3nc(0, 112);
default: return 0;
}
case 'o': switch (three) {
case 'c': return u3nc(0, 100);
case 'g': return u3nc(0, 10);
case 'l': return u3nc(0, 17);
case 'm': return u3nc(0, 89);
case 'n': return u3nc(0, 164);
case 'p': return u3nc(0, 142);
case 'r': return u3nc(0, 251);
case 'v': return u3nc(0, 249);
default: return 0;
}
default: return 0;
}
case 't': switch (two) {
case 'a': switch (three) {
case 'b': return u3nc(0, 40);
case 'c': return u3nc(0, 160);
case 'd': return u3nc(0, 55);
case 'g': return u3nc(0, 113);
case 'l': return u3nc(0, 241);
case 'm': return u3nc(0, 83);
case 'n': return u3nc(0, 118);
case 'p': return u3nc(0, 168);
case 'r': return u3nc(0, 121);
case 's': return u3nc(0, 109);
default: return 0;
}
case 'i': switch (three) {
case 'c': return u3nc(0, 42);
case 'd': return u3nc(0, 175);
case 'l': return u3nc(0, 154);
case 'm': return u3nc(0, 108);
case 'n': return u3nc(0, 155);
case 'p': return u3nc(0, 73);
case 'r': return u3nc(0, 53);
default: return 0;
}
case 'o': switch (three) {
case 'b': return u3nc(0, 132);
case 'c': return u3nc(0, 189);
case 'd': return u3nc(0, 153);
case 'g': return u3nc(0, 29);
case 'l': return u3nc(0, 84);
case 'm': return u3nc(0, 192);
case 'n': return u3nc(0, 246);
case 'p': return u3nc(0, 207);
case 'r': return u3nc(0, 44);
default: return 0;
}
default: return 0;
}
case 'w': switch (two) {
case 'a': switch (three) {
case 'c': return u3nc(0, 12);
case 'l': return u3nc(0, 227);
case 'n': return u3nc(0, 3);
case 't': return u3nc(0, 101);
default: return 0;
}
case 'i': switch (three) {
case 'c': return u3nc(0, 99);
case 'd': return u3nc(0, 59);
case 'n': return u3nc(0, 54);
case 's': return u3nc(0, 14);
case 't': return u3nc(0, 76);
default: return 0;
}
case 'o': switch (three) {
case 'l': return u3nc(0, 125);
case 'r': return u3nc(0, 94);
default: return 0;
}
default: return 0;
}
default: return 0;
}
}
static u3_noun
find_suffix(char one, char two, char three) {
switch (one) {
case 'b': switch (two) {
case 'e': switch (three) {
case 'c': return u3nc(0, 238);
case 'l': return u3nc(0, 107);
case 'n': return u3nc(0, 92);
case 'p': return u3nc(0, 183);
case 'r': return u3nc(0, 172);
case 's': return u3nc(0, 56);
case 't': return u3nc(0, 106);
case 'x': return u3nc(0, 144);
default: return 0;
}
case 'u': switch (three) {
case 'd': return u3nc(0, 2);
case 'r': return u3nc(0, 60);
case 's': return u3nc(0, 182);
default: return 0;
}
case 'y': switch (three) {
case 'l': return u3nc(0, 176);
case 'n': return u3nc(0, 45);
case 'r': return u3nc(0, 244);
case 't': return u3nc(0, 188);
default: return 0;
}
default: return 0;
}
case 'd': switch (two) {
case 'e': switch (three) {
case 'b': return u3nc(0, 171);
case 'c': return u3nc(0, 98);
case 'f': return u3nc(0, 181);
case 'g': return u3nc(0, 117);
case 'l': return u3nc(0, 37);
case 'm': return u3nc(0, 234);
case 'n': return u3nc(0, 66);
case 'p': return u3nc(0, 23);
case 'r': return u3nc(0, 61);
case 's': return u3nc(0, 215);
case 't': return u3nc(0, 105);
case 'v': return u3nc(0, 179);
case 'x': return u3nc(0, 57);
default: return 0;
}
case 'u': switch (three) {
case 'c': return u3nc(0, 193);
case 'l': return u3nc(0, 49);
case 'n': return u3nc(0, 217);
case 'r': return u3nc(0, 11);
case 's': return u3nc(0, 129);
case 't': return u3nc(0, 116);
case 'x': return u3nc(0, 146);
default: return 0;
}
case 'y': switch (three) {
case 'l': return u3nc(0, 102);
case 'n': return u3nc(0, 233);
case 'r': return u3nc(0, 18);
case 's': return u3nc(0, 24);
case 't': return u3nc(0, 187);
default: return 0;
}
default: return 0;
}
case 'f': switch (two) {
case 'e': switch (three) {
case 'b': return u3nc(0, 47);
case 'd': return u3nc(0, 236);
case 'l': return u3nc(0, 120);
case 'n': return u3nc(0, 206);
case 'p': return u3nc(0, 152);
case 'r': return u3nc(0, 158);
case 's': return u3nc(0, 255);
case 't': return u3nc(0, 214);
case 'x': return u3nc(0, 195);
default: return 0;
}
case 'u': switch (three) {
case 'l': return u3nc(0, 8);
case 'n': return u3nc(0, 138);
case 'r': return u3nc(0, 194);
case 's': return u3nc(0, 90);
default: return 0;
}
case 'y': switch (three) {
case 'l': return u3nc(0, 169);
case 'n': return u3nc(0, 226);
case 'r': return u3nc(0, 247);
default: return 0;
}
default: return 0;
}
case 'h': switch (two) {
case 'e': switch (three) {
case 'b': return u3nc(0, 20);
case 'c': return u3nc(0, 27);
case 'p': return u3nc(0, 91);
case 's': return u3nc(0, 213);
case 't': return u3nc(0, 50);
case 'x': return u3nc(0, 46);
default: return 0;
}
case 'u': switch (three) {
case 'l': return u3nc(0, 221);
case 's': return u3nc(0, 209);
case 't': return u3nc(0, 174);
default: return 0;
}
default: return 0;
}
case 'l': switch (two) {
case 'e': switch (three) {
case 'b': return u3nc(0, 145);
case 'c': return u3nc(0, 203);
case 'd': return u3nc(0, 41);
case 'g': return u3nc(0, 156);
case 'n': return u3nc(0, 198);
case 'p': return u3nc(0, 170);
case 'r': return u3nc(0, 218);
case 't': return u3nc(0, 7);
case 'v': return u3nc(0, 190);
case 'x': return u3nc(0, 200);
default: return 0;
}
case 'u': switch (three) {
case 'c': return u3nc(0, 197);
case 'd': return u3nc(0, 223);
case 'g': return u3nc(0, 26);
case 'n': return u3nc(0, 32);
case 'p': return u3nc(0, 22);
case 'r': return u3nc(0, 180);
case 's': return u3nc(0, 161);
case 't': return u3nc(0, 34);
case 'x': return u3nc(0, 235);
default: return 0;
}
case 'y': switch (three) {
case 'd': return u3nc(0, 205);
case 'n': return u3nc(0, 232);
case 'r': return u3nc(0, 240);
case 's': return u3nc(0, 225);
case 't': return u3nc(0, 128);
case 'x': return u3nc(0, 134);
default: return 0;
}
default: return 0;
}
case 'm': switch (two) {
case 'e': switch (three) {
case 'b': return u3nc(0, 114);
case 'c': return u3nc(0, 141);
case 'd': return u3nc(0, 127);
case 'g': return u3nc(0, 78);
case 'l': return u3nc(0, 185);
case 'p': return u3nc(0, 33);
case 'r': return u3nc(0, 159);
case 's': return u3nc(0, 104);
case 't': return u3nc(0, 43);
case 'v': return u3nc(0, 51);
case 'x': return u3nc(0, 165);
default: return 0;
}
case 'u': switch (three) {
case 'd': return u3nc(0, 242);
case 'g': return u3nc(0, 173);
case 'l': return u3nc(0, 81);
case 'n': return u3nc(0, 239);
case 'r': return u3nc(0, 248);
case 's': return u3nc(0, 93);
case 't': return u3nc(0, 86);
default: return 0;
}
case 'y': switch (three) {
case 'l': return u3nc(0, 191);
case 'n': return u3nc(0, 103);
case 'r': return u3nc(0, 110);
default: return 0;
}
default: return 0;
}
case 'n': switch (two) {
case 'e': switch (three) {
case 'b': return u3nc(0, 130);
case 'c': return u3nc(0, 1);
case 'd': return u3nc(0, 202);
case 'l': return u3nc(0, 253);
case 'm': return u3nc(0, 157);
case 'p': return u3nc(0, 62);
case 'r': return u3nc(0, 199);
case 's': return u3nc(0, 212);
case 't': return u3nc(0, 79);
case 'v': return u3nc(0, 254);
case 'x': return u3nc(0, 31);
default: return 0;
}
case 'u': switch (three) {
case 'b': return u3nc(0, 126);
case 'l': return u3nc(0, 196);
case 'm': return u3nc(0, 148);
case 'p': return u3nc(0, 19);
case 's': return u3nc(0, 162);
case 't': return u3nc(0, 67);
case 'x': return u3nc(0, 122);
default: return 0;
}
case 'y': switch (three) {
case 'd': return u3nc(0, 208);
case 'l': return u3nc(0, 231);
case 'm': return u3nc(0, 82);
case 'r': return u3nc(0, 219);
case 's': return u3nc(0, 230);
case 't': return u3nc(0, 243);
case 'x': return u3nc(0, 87);
default: return 0;
}
default: return 0;
}
case 'p': switch (two) {
case 'e': switch (three) {
case 'c': return u3nc(0, 252);
case 'd': return u3nc(0, 39);
case 'g': return u3nc(0, 21);
case 'l': return u3nc(0, 111);
case 'm': return u3nc(0, 178);
case 'n': return u3nc(0, 9);
case 'r': return u3nc(0, 5);
case 's': return u3nc(0, 36);
case 't': return u3nc(0, 69);
case 'x': return u3nc(0, 186);
default: return 0;
}
case 'u': switch (three) {
case 'b': return u3nc(0, 166);
case 'n': return u3nc(0, 135);
case 'r': return u3nc(0, 63);
case 't': return u3nc(0, 25);
default: return 0;
}
case 'y': switch (three) {
case 'l': return u3nc(0, 48);
case 'x': return u3nc(0, 149);
default: return 0;
}
default: return 0;
}
case 'r': switch (two) {
case 'e': switch (three) {
case 'b': return u3nc(0, 65);
case 'c': return u3nc(0, 77);
case 'd': return u3nc(0, 137);
case 'f': return u3nc(0, 140);
case 'g': return u3nc(0, 72);
case 'l': return u3nc(0, 210);
case 'm': return u3nc(0, 224);
case 'n': return u3nc(0, 124);
case 'p': return u3nc(0, 250);
case 's': return u3nc(0, 136);
case 't': return u3nc(0, 216);
case 'v': return u3nc(0, 139);
case 'x': return u3nc(0, 88);
default: return 0;
}
case 'u': switch (three) {
case 'c': return u3nc(0, 97);
case 'd': return u3nc(0, 211);
case 'l': return u3nc(0, 70);
case 'm': return u3nc(0, 131);
case 'n': return u3nc(0, 184);
case 'p': return u3nc(0, 201);
case 's': return u3nc(0, 143);
case 't': return u3nc(0, 52);
case 'x': return u3nc(0, 123);
default: return 0;
}
case 'y': switch (three) {
case 'c': return u3nc(0, 228);
case 'd': return u3nc(0, 204);
case 'g': return u3nc(0, 150);
case 'l': return u3nc(0, 222);
case 'm': return u3nc(0, 167);
case 'n': return u3nc(0, 147);
case 'p': return u3nc(0, 16);
case 's': return u3nc(0, 64);
case 't': return u3nc(0, 28);
case 'x': return u3nc(0, 151);
default: return 0;
}
default: return 0;
}
case 's': switch (two) {
case 'e': switch (three) {
case 'b': return u3nc(0, 220);
case 'c': return u3nc(0, 80);
case 'd': return u3nc(0, 237);
case 'f': return u3nc(0, 58);
case 'g': return u3nc(0, 133);
case 'l': return u3nc(0, 96);
case 'm': return u3nc(0, 75);
case 'n': return u3nc(0, 245);
case 'p': return u3nc(0, 35);
case 'r': return u3nc(0, 13);
case 't': return u3nc(0, 115);
case 'v': return u3nc(0, 4);
default: return 0;
}
case 'u': switch (three) {
case 'b': return u3nc(0, 68);
case 'd': return u3nc(0, 177);
case 'g': return u3nc(0, 229);
case 'l': return u3nc(0, 38);
case 'm': return u3nc(0, 85);
case 'n': return u3nc(0, 15);
case 'p': return u3nc(0, 74);
case 'r': return u3nc(0, 119);
case 't': return u3nc(0, 6);
default: return 0;
}
case 'y': switch (three) {
case 'd': return u3nc(0, 30);
case 'l': return u3nc(0, 163);
case 'm': return u3nc(0, 95);
case 'n': return u3nc(0, 71);
case 'p': return u3nc(0, 112);
case 'r': return u3nc(0, 100);
case 't': return u3nc(0, 10);
case 'x': return u3nc(0, 17);
default: return 0;
}
default: return 0;
}
case 't': switch (two) {
case 'e': switch (three) {
case 'b': return u3nc(0, 89);
case 'c': return u3nc(0, 164);
case 'd': return u3nc(0, 142);
case 'g': return u3nc(0, 251);
case 'l': return u3nc(0, 249);
case 'm': return u3nc(0, 40);
case 'n': return u3nc(0, 160);
case 'p': return u3nc(0, 55);
case 'r': return u3nc(0, 113);
case 's': return u3nc(0, 241);
case 'v': return u3nc(0, 83);
case 'x': return u3nc(0, 118);
default: return 0;
}
case 'u': switch (three) {
case 'c': return u3nc(0, 168);
case 'd': return u3nc(0, 121);
case 'g': return u3nc(0, 109);
case 'l': return u3nc(0, 42);
case 'n': return u3nc(0, 175);
case 's': return u3nc(0, 154);
case 'x': return u3nc(0, 108);
default: return 0;
}
case 'y': switch (three) {
case 'c': return u3nc(0, 155);
case 'd': return u3nc(0, 73);
case 'l': return u3nc(0, 53);
case 'n': return u3nc(0, 132);
case 'p': return u3nc(0, 189);
case 'r': return u3nc(0, 153);
case 'v': return u3nc(0, 29);
default: return 0;
}
default: return 0;
}
case 'w': switch (two) {
case 'e': switch (three) {
case 'b': return u3nc(0, 84);
case 'd': return u3nc(0, 192);
case 'g': return u3nc(0, 246);
case 'l': return u3nc(0, 207);
case 'n': return u3nc(0, 44);
case 'p': return u3nc(0, 12);
case 'r': return u3nc(0, 227);
case 's': return u3nc(0, 3);
case 't': return u3nc(0, 101);
case 'x': return u3nc(0, 99);
default: return 0;
}
case 'y': switch (three) {
case 'c': return u3nc(0, 59);
case 'd': return u3nc(0, 54);
case 'l': return u3nc(0, 14);
case 'n': return u3nc(0, 76);
case 't': return u3nc(0, 125);
case 'x': return u3nc(0, 94);
default: return 0;
}
default: return 0;
}
case 'z': switch (two) {
case 'o': switch (three) {
case 'd': return u3nc(0, 0);
default: return 0;
}
default: return 0;
}
default: return 0;
}
}
// good old linear search
//
@ -32,36 +846,51 @@
}
}
u3_noun
u3wcp_ins(u3_noun cor)
{
u3_noun x, a, buf;
u3_noun
u3qc_po_ins(u3_noun a)
{
c3_y byt_y[3];
u3r_bytes(0, 3, byt_y, a);
if ( (c3n == u3r_mean(cor, u3x_sam, &a, u3x_con_sam, &x, 0)) ||
(c3n == u3du(x)) ||
(c3n == u3ud(buf = u3h(x))) ||
(c3n == u3ud(a)) )
{
return u3m_bail(c3__exit);
} else {
return _po_find(buf, a);
}
}
u3_noun
u3wcp_ind(u3_noun cor)
{
u3_noun x, a, buf;
return find_prefix(byt_y[0], byt_y[1], byt_y[2]);
}
if ( (c3n == u3r_mean(cor, u3x_sam, &a, u3x_con_sam, &x, 0)) ||
(c3n == u3du(x)) ||
(c3n == u3ud(buf = u3t(x))) ||
(c3n == u3ud(a)) )
{
return u3m_bail(c3__exit);
} else {
return _po_find(buf, a);
}
u3_noun
u3wcp_ins(u3_noun cor)
{
u3_noun a;
if ( (c3n == u3r_mean(cor, u3x_sam, &a, 0)) ||
(c3n == u3ud(a)) )
{
return u3m_bail(c3__exit);
} else {
return u3qc_po_ins(a);
}
}
u3_noun
u3qc_po_ind(u3_noun a)
{
c3_y byt_y[3];
u3r_bytes(0, 3, byt_y, a);
return find_suffix(byt_y[0], byt_y[1], byt_y[2]);
}
u3_noun
u3wcp_ind(u3_noun cor)
{
u3_noun a;
if ( (c3n == u3r_mean(cor, u3x_sam, &a, 0)) ||
(c3n == u3ud(a)) )
{
return u3m_bail(c3__exit);
} else {
return u3qc_po_ind(a);
}
}
u3_noun
u3wcp_tos(u3_noun cor)

View File

@ -61,6 +61,19 @@
// pulls the tables out of the sample, so we can't just reuse it from other
// jets.
/* u3_noun */
/* _parse_p(u3_noun txt) { */
/* // The current parsing text code for @p in hoon is kinda nuts. it parses */
/* // arbitrary lowercase ascii characters and then does a linear walk through */
/* // the */
/* // Run the result through the scrambler to resolve the textual name to the */
/* // number. */
/* return u3nc(0, u3qc_ob_fynd(raw)); */
/* } */
u3_noun
_parse_tas(u3_noun txt) {
// For any symbol which matches, txt will return itself as a

View File

@ -924,6 +924,7 @@ static c3_c* _141_tri__cofl_ha[] = {
};
static u3j_harm _141_tri__ob_fynd_a[] = {{".2", u3wc_ob_fynd}, {}};
static u3j_harm _141_tri__ob_feis_a[] = {{".2", u3wc_ob_feis}, {}};
static u3j_harm _141_tri__ob_tail_a[] = {{".2", u3wc_ob_tail}, {}};
static u3j_harm _141_tri__ob_fee_a[] = {{".2", u3wc_ob_fee}, {}};
@ -932,7 +933,8 @@ static u3j_harm _141_tri__ob_fe_a[] = {{".2", u3wc_ob_fe}, {}};
static u3j_harm _141_tri__ob_fen_a[] = {{".2", u3wc_ob_fen}, {}};
static u3j_harm _141_tri__ob_eff_a[] = {{".2", u3wc_ob_eff}, {}};
static u3j_core _141_tri__ob_d[] =
{ { "feis", 7, _141_tri__ob_feis_a, 0, 0 },
{ { "fynd", 7, _141_tri__ob_fynd_a, 0, 0 },
{ "feis", 7, _141_tri__ob_feis_a, 0, 0 },
{ "tail", 7, _141_tri__ob_tail_a, 0, 0 },
{ "fee", 7, _141_tri__ob_fee_a, 0, 0 },
{ "feen", 7, _141_tri__ob_feen_a, 0, 0 },