1 /* j/6/mint.c 2 ** 3 */ 4 #include "all.h" 5 6 /* logic 7 */ 8 static u3_noun 9 _mint_in(u3_noun, u3_noun, u3_noun, u3_noun); 10 11 static u3_noun _mint_bean()12 _mint_bean() 13 { 14 return u3kf_fork(u3nt(u3nq(c3__atom, 'f', u3_nul, 0), 15 u3nq(c3__atom, 'f', u3_nul, 1), 16 u3_nul)); 17 } 18 19 static u3_noun _mint_vet(u3_noun van)20 _mint_vet(u3_noun van) 21 { 22 // u3_noun vet = u3j_hook(u3k(van), "vet"); 23 u3_noun vet = u3r_at(u3qfu_van_vet, van); 24 25 switch ( vet ) { 26 case c3n: 27 case c3y: return vet; 28 default: return u3m_bail(c3__fail); 29 } 30 } 31 32 static u3_noun _mint_core(u3_noun pac,u3_noun con)33 _mint_core(u3_noun pac, 34 u3_noun con) 35 { 36 if ( (c3__void == pac) ) { 37 return c3__void; 38 } else { 39 return u3nt(c3__core, pac, con); 40 } 41 } 42 43 static u3_noun _mint_cond(u3_noun pex,u3_noun yom,u3_noun woq)44 _mint_cond(u3_noun pex, 45 u3_noun yom, 46 u3_noun woq) 47 { 48 if ( 1 == u3h(pex) ) { 49 if ( 0 == u3t(pex) ) { 50 u3z(pex); 51 u3z(woq); 52 53 return yom; 54 } 55 else if ( 1 == u3t(pex) ) { 56 u3z(pex); 57 u3z(yom); 58 59 return woq; 60 } 61 } 62 return u3nq(6, pex, yom, woq); 63 } 64 65 static u3_noun _mint_corn(u3_noun van,u3_noun sut,u3_noun gen)66 _mint_corn(u3_noun van, 67 u3_noun sut, 68 u3_noun gen) 69 { 70 u3_noun mil = _mint_in(van, sut, c3__noun, gen); 71 u3_noun fol = u3k(u3t(mil)); 72 73 u3z(mil); 74 return fol; 75 } 76 77 static u3_noun _mint_nice(u3_noun van,u3_noun gol,u3_noun typ)78 _mint_nice(u3_noun van, 79 u3_noun gol, 80 u3_noun typ) 81 { 82 if ( (c3y == _mint_vet(van)) && 83 (c3n == u3qfu_nest(van, gol, c3y, typ)) ) 84 { 85 // u3_noun dun = u3qfu_dunq(van, "need", gol); 86 // u3_noun niz = u3qfu_dunq(van, "have", typ); 87 88 // u3t_push(u3nc(c3__mean, dun)); 89 // u3t_push(u3nc(c3__mean, niz)); 90 91 return u3m_error("mint-nice"); 92 } 93 else return typ; 94 } 95 96 static u3_noun _mint_coke(u3_noun nug)97 _mint_coke(u3_noun nug) 98 { 99 if ( 0 == u3h(nug) ) { 100 return u3k(u3t(nug)); 101 } 102 else if ( 10 == u3h(nug) ) { 103 return _mint_coke(u3t(u3t(nug))); 104 } 105 else { 106 return u3m_error("mint-coke"); 107 } 108 } 109 110 static u3_noun _mint_brew(u3_noun van,u3_noun sut,u3_noun tov,u3_noun gen)111 _mint_brew(u3_noun van, 112 u3_noun sut, 113 u3_noun tov, 114 u3_noun gen) 115 { 116 u3_noun von; 117 118 switch ( tov ) { 119 default: return u3m_bail(c3__fail); 120 case c3y: 121 von = u3k(van); break; 122 case c3n: 123 von = u3i_molt(u3k(van), u3qfu_van_vet, c3n, 0); break; 124 } 125 { 126 u3_noun mil = u3qfu_mint(von, sut, c3__noun, gen); 127 u3_noun fol = u3k(u3t(mil)); 128 129 u3z(mil); 130 u3z(von); 131 return fol; 132 } 133 } 134 135 static u3_noun _mint_harp(u3_noun van,u3_noun sut,u3_noun dab)136 _mint_harp(u3_noun van, 137 u3_noun sut, 138 u3_noun dab) 139 { 140 if ( (u3_nul == dab) ) { 141 return 0; 142 } 143 else { 144 u3_noun n_dab, l_dab, r_dab; 145 146 u3r_trel(dab, &n_dab, &l_dab, &r_dab); 147 if ( c3n == u3du(n_dab) ) { 148 return u3m_bail(c3__fail); 149 } 150 else { 151 u3_noun qqn_dab = u3t(u3t(n_dab)); 152 u3_noun vad; 153 154 switch ( u3h(qqn_dab) ) { 155 default: return u3m_bail(c3__exit); 156 case c3__ash: { 157 vad = _mint_brew(van, sut, c3y, u3t(qqn_dab)); 158 break; 159 } 160 case c3__elm: { 161 vad = _mint_brew(van, sut, c3n, u3t(qqn_dab)); 162 break; 163 } 164 } 165 166 if ( (u3_nul == l_dab) && (u3_nul == r_dab) ) { 167 return vad; 168 } 169 else if ( (u3_nul == l_dab) ) { 170 return u3nc(vad, _mint_harp(van, sut, r_dab)); 171 } 172 else if ( (u3_nul == r_dab) ) { 173 return u3nc(vad, _mint_harp(van, sut, l_dab)); 174 } 175 else { 176 return u3nt(vad, 177 _mint_harp(van, sut, l_dab), 178 _mint_harp(van, sut, r_dab)); 179 } 180 } 181 } 182 } 183 184 static u3_noun _mint_hope(u3_noun van,u3_noun sut,u3_noun dom)185 _mint_hope(u3_noun van, 186 u3_noun sut, 187 u3_noun dom) 188 { 189 if ( (u3_nul == dom) ) { 190 return 0; 191 } 192 else { 193 u3_noun n_dom, l_dom, r_dom; 194 195 u3r_trel(dom, &n_dom, &l_dom, &r_dom); 196 if ( c3n == u3du(n_dom) ) { 197 return u3m_bail(c3__fail); 198 } 199 else { 200 u3_noun qqn_dom = u3t(u3t(n_dom)); 201 u3_noun dov; 202 203 dov = _mint_harp(van, sut, qqn_dom); 204 205 if ( (u3_nul == l_dom) && (u3_nul == r_dom) ) { 206 return dov; 207 } 208 else if ( (u3_nul == l_dom) ) { 209 return u3nc(dov, _mint_hope(van, sut, r_dom)); 210 } 211 else if ( (u3_nul == r_dom) ) { 212 return u3nc(dov, _mint_hope(van, sut, l_dom)); 213 } 214 else { 215 return u3nt(dov, 216 _mint_hope(van, sut, l_dom), 217 _mint_hope(van, sut, r_dom)); 218 } 219 } 220 } 221 } 222 223 static u3_noun _mint_grow(u3_noun van,u3_noun sut,u3_noun gol,u3_atom mel,u3_noun ruf,u3_noun wan,u3_noun dom)224 _mint_grow(u3_noun van, 225 u3_noun sut, 226 u3_noun gol, 227 u3_atom mel, 228 u3_noun ruf, 229 u3_noun wan, 230 u3_noun dom) 231 { 232 u3_noun dan = _mint_in(van, sut, c3__noun, ruf); 233 u3_noun p_dan = u3h(dan); 234 u3_noun q_dan = u3t(dan); 235 u3_noun toc = _mint_core(u3k(p_dan), 236 u3nq(c3__gold, 237 u3k(p_dan), 238 u3k(wan), 239 u3nc(u3_nul, 240 u3k(dom)))); 241 u3_noun dez = _mint_hope(van, toc, dom); 242 u3_noun zod = u3nc(1, dez); 243 u3_noun cot = _mint_core(u3k(p_dan), 244 u3nq(mel, 245 u3k(p_dan), 246 u3k(wan), 247 u3nc(u3k(dez), 248 u3k(dom)))); 249 u3_noun ret = u3nc(_mint_nice(van, gol, cot), 250 u3qf_cons(zod, q_dan)); 251 252 u3z(zod); 253 u3z(toc); 254 u3z(dan); 255 256 return ret; 257 } 258 259 static u3_noun _mint_loc(u3_noun van,u3_noun loc)260 _mint_loc(u3_noun van, 261 u3_noun loc) 262 { 263 u3_noun mol = u3nc('o', u3k(loc)); 264 u3_noun sho = u3j_hook(u3k(van), "show"); 265 u3_noun ret = u3i_molt(u3k(sho), u3x_sam, u3k(mol), 0); 266 267 u3z(mol); 268 u3z(sho); 269 270 return ret; 271 } 272 273 #if 1 274 static u3_noun _mint_cnts(u3_noun van,u3_noun sut,u3_noun gol,u3_noun hyp,u3_noun rig)275 _mint_cnts(u3_noun van, 276 u3_noun sut, 277 u3_noun gol, 278 u3_noun hyp, 279 u3_noun rig) 280 { 281 u3_noun von = u3i_molt(u3k(van), u3x_sam, u3k(sut), 0); 282 u3_noun gat = u3j_hook(von, "emin"); 283 284 return u3n_kick_on(u3i_molt(gat, 285 u3x_sam_2, 286 u3k(gol), 287 u3x_sam_6, 288 u3k(hyp), 289 u3x_sam_7, 290 u3k(rig), 291 0)); 292 } 293 #else 294 static u3_noun _mint_edit(u3_noun van,u3_noun sut,u3_noun mew,u3_noun p_lar,u3_noun rag,u3_noun hej)295 _mint_edit(u3_noun van, 296 u3_noun sut, 297 u3_noun mew, 298 u3_noun p_lar, 299 u3_noun rag, 300 u3_noun hej) 301 { 302 while ( 1 ) { 303 if ( c3n == u3du(mew) ) { 304 u3_noun gim = u3qfu_fire(van, sut, rag); 305 u3_noun fol = u3qf_hike(p_lar, hej); 306 307 u3z(rag); 308 u3z(hej); 309 310 return u3nc(gim, fol); 311 } else { 312 u3_noun i_mew = u3h(mew); 313 u3_noun t_mew = u3t(mew); 314 u3_noun pi_mew = u3h(i_mew); 315 u3_noun qi_mew = u3t(i_mew); 316 u3_noun zil = u3qfu_mint(van, sut, c3__noun, qi_mew); 317 u3_noun p_zil = u3h(zil); 318 u3_noun q_zil = u3t(zil); 319 u3_noun wip = u3qfu_toss(van, sut, pi_mew, p_zil, rag); 320 321 u3z(rag); 322 rag = u3k(u3t(wip)); 323 324 hej = u3nc(u3nc(u3k(u3h(wip)), 325 u3k(q_zil)), 326 hej); 327 328 u3z(zil); 329 u3z(wip); 330 331 mew = t_mew; 332 } 333 } 334 } 335 static u3_noun _mint_cnts_old(u3_noun van,u3_noun sut,u3_noun gol,u3_noun hyp,u3_noun rig)336 _mint_cnts_old(u3_noun van, 337 u3_noun sut, 338 u3_noun gol, 339 u3_noun hyp, 340 u3_noun rig) 341 { 342 u3_noun lar = u3qfu_seek(van, sut, c3__read, hyp); 343 u3_noun p_lar = u3h(lar); 344 u3_noun q_lar = u3t(lar); 345 u3_noun pq_lar = u3h(q_lar); 346 u3_noun qq_lar = u3t(q_lar); 347 u3_noun mew = rig; 348 u3_noun yom = _mint_edit(van, sut, mew, p_lar, u3k(qq_lar), u3_nul); 349 u3_noun p_yom = u3h(yom); 350 u3_noun q_yom = u3t(yom); 351 u3_noun ret = u3nc(_mint_nice(van, gol, u3k(p_yom)), 352 (0 == pq_lar) ? u3k(q_yom) 353 : u3nt(9, u3k(pq_lar), u3k(q_yom))); 354 355 u3z(yom); 356 u3z(lar); 357 358 return ret; 359 } 360 #endif 361 362 # define _mint_used() 363 364 static u3_noun _mint_in(u3_noun van,u3_noun sut,u3_noun gol,u3_noun gen)365 _mint_in(u3_noun van, 366 u3_noun sut, 367 u3_noun gol, 368 u3_noun gen) 369 { 370 u3_noun p_gen, q_gen, r_gen; 371 u3_noun ret; 372 373 if ( (c3__void == sut) && 374 !((c3y == u3du(gen)) && (c3__dbug == u3h(gen))) ) 375 { 376 if ( (c3n == _mint_vet(van)) 377 || ((c3y == u3du(gen)) && 378 ((c3__zpfs == u3h(gen)) || 379 (c3__zpsk == u3h(gen)) || 380 (c3__lost == u3h(gen)) || 381 (c3__fail == u3h(gen)) || 382 (c3__zpzp == u3h(gen)))) ) 383 { 384 return u3nt(c3__void, 0, 0); 385 } 386 else { 387 return u3m_error("mint-vain"); 388 } 389 } 390 391 if ( c3n == u3du(gen) ) { 392 u3_noun fab = u3r_at(u3qfu_van_fab, van); 393 u3_noun ter = u3r_at(u3x_con_3, van); 394 u3_noun rex = (c3n == fab) ? u3qfp_nepo(ter, gen) 395 : u3qfp_open(ter, gen); 396 397 ret = _mint_in(van, sut, gol, rex); 398 u3z(rex); 399 400 return ret; 401 } 402 else if ( c3y == u3du(u3h(gen)) ) { 403 _mint_used(); 404 { 405 u3_noun hed = _mint_in(van, sut, c3__noun, u3h(gen)); 406 u3_noun tal = _mint_in(van, sut, c3__noun, u3t(gen)); 407 u3_noun typ = u3qf_cell(u3h(hed), u3h(tal)); 408 409 ret = u3nc(_mint_nice(van, gol, typ), 410 u3qf_cons(u3t(hed), 411 u3t(tal))); 412 413 u3z(hed); 414 u3z(tal); 415 416 return ret; 417 } 418 } else switch ( u3h(gen) ) { 419 default: { 420 u3_noun fab = u3r_at(u3qfu_van_fab, van); 421 u3_noun ter = u3r_at(u3x_con_3, van); 422 u3_noun rex = (c3n == fab) ? u3qfp_nepo(ter, gen) 423 : u3qfp_open(ter, gen); 424 425 if ( c3y == u3r_sing(rex, gen) ) { 426 #if 1 427 u3_noun zix = u3qfu_shep(van, "gene", 'q', u3k(gen)); 428 429 u3t_push(u3nc(c3__mean, zix)); 430 return u3m_error("mint-open"); 431 #else 432 u3_err("h", u3h(gen)); 433 return u3m_bail(c3__fail); 434 #endif 435 } 436 ret = _mint_in(van, sut, gol, rex); 437 u3z(rex); 438 439 return ret; 440 } 441 442 case c3__fits: u3x_cell(u3t(gen), &p_gen, &q_gen); 443 _mint_used(); 444 { 445 u3_noun wam = u3qfu_play(van, sut, p_gen); 446 u3_noun dok = u3nc(c3__wing, u3k(q_gen)); 447 u3_noun vol = _mint_corn(van, sut, dok); 448 u3_noun axe = _mint_coke(vol); 449 450 ret = u3nc(_mint_nice(van, gol, _mint_bean()), 451 u3qfu_fish(van, wam, axe)); 452 453 u3z(axe); 454 u3z(vol); 455 u3z(wam); 456 u3z(dok); 457 458 return ret; 459 } 460 461 case c3__wtcl: u3x_trel(u3t(gen), &p_gen, &q_gen, &r_gen); 462 _mint_used(); 463 { 464 u3_noun bol = _mint_bean(); 465 u3_noun nor = _mint_in(van, sut, bol, p_gen); 466 u3_noun fex = u3qfu_gain(van, sut, p_gen); 467 u3_noun wux = u3qfu_lose(van, sut, p_gen); 468 u3_noun duy = (c3__void == fex) 469 ? ( (c3__void == wux) 470 ? u3nc(0, 0) 471 : u3nc(1, 1) ) 472 : ( (c3__void == wux) 473 ? u3nc(1, 0) 474 : u3k(u3t(nor)) ); 475 u3_noun hiq = _mint_in(van, fex, gol, q_gen); 476 u3_noun ran = _mint_in(van, wux, gol, r_gen); 477 478 ret = u3nc(u3qf_forq(u3h(hiq), 479 u3h(ran)), 480 _mint_cond(duy, 481 u3k(u3t(hiq)), 482 u3k(u3t(ran)))); 483 484 u3z(ran); 485 u3z(hiq); 486 u3z(nor); 487 u3z(wux); 488 u3z(fex); 489 u3z(bol); 490 491 return ret; 492 } 493 494 case c3__clhp: u3x_cell(u3t(gen), &p_gen, &q_gen); 495 _mint_used(); 496 { 497 u3_noun hed = _mint_in(van, sut, c3__noun, p_gen); 498 u3_noun tal = _mint_in(van, sut, c3__noun, q_gen); 499 u3_noun typ = u3qf_cell(u3h(hed), u3h(tal)); 500 501 ret = u3nc(_mint_nice(van, gol, typ), 502 u3qf_cons(u3t(hed), 503 u3t(tal))); 504 505 u3z(hed); 506 u3z(tal); 507 508 return ret; 509 } 510 511 case c3__dtts: u3x_cell(u3t(gen), &p_gen, &q_gen); 512 _mint_used(); 513 { 514 u3_noun typ = _mint_nice(van, gol, _mint_bean()); 515 u3_noun one = _mint_in(van, sut, c3__noun, p_gen); 516 u3_noun two = _mint_in(van, sut, c3__noun, q_gen); 517 u3_noun ret; 518 519 if ( (c3y == _mint_vet(van)) && 520 (c3n == u3qfu_nest(van, u3h(one), c3n, u3h(two))) && 521 (c3n == u3qfu_nest(van, u3h(two), c3y, u3h(one))) ) 522 { 523 return u3m_error("nest"); 524 } 525 ret = u3nc(typ, u3nt(5, u3k(u3t(one)), u3k(u3t(two)))); 526 u3z(one); 527 u3z(two); 528 529 return ret; 530 } 531 532 case c3__dtwt: p_gen = u3t(gen); 533 _mint_used(); 534 { 535 u3_noun typ = _mint_nice(van, gol, _mint_bean()); 536 537 return u3nc(typ, 538 u3nc(3, _mint_corn(van, sut, p_gen))); 539 } 540 541 case c3__dtkt: u3x_cell(u3t(gen), &p_gen, &q_gen); 542 _mint_used(); 543 { 544 u3_noun nog = u3nc(c3__bunt, u3k(p_gen)); 545 u3_noun nef = _mint_in(van, sut, gol, nog); 546 u3_noun viz = _mint_in(van, sut, c3__noun, q_gen); 547 548 ret = u3nc(u3k(u3h(nef)), 549 u3nt(11, u3nc(1, u3nc(151, u3k(u3h(nef)))), u3k(u3t(viz)))); 550 551 u3z(viz); 552 u3z(nef); 553 u3z(nog); 554 return ret; 555 } 556 557 case c3__dtls: p_gen = u3t(gen); 558 _mint_used(); 559 { 560 u3_noun tom = u3nt(c3__atom, u3_blip, u3_nul); 561 u3_noun sam = _mint_in(van, sut, tom, p_gen); 562 563 ret = u3nc(_mint_nice(van, gol, tom), 564 u3nc(4, u3k(u3t(sam)))); 565 566 u3z(sam); 567 return ret; 568 } 569 570 case c3__rock: u3x_cell(u3t(gen), &p_gen, &q_gen); 571 _mint_used(); 572 { 573 u3_noun typ = u3qfu_play(van, sut, gen); 574 u3_noun ret = u3nc(_mint_nice(van, gol, typ), 575 u3nc(1, u3k(q_gen))); 576 577 return ret; 578 } 579 580 case c3__dttr: u3x_cell(u3t(gen), &p_gen, &q_gen); 581 _mint_used(); 582 { 583 u3_noun one = _mint_corn(van, sut, p_gen); 584 u3_noun two = _mint_corn(van, sut, q_gen); 585 586 return u3nc(_mint_nice(van, gol, c3__noun), 587 u3nt(2, one, two)); 588 } 589 590 case c3__sand: u3x_cell(u3t(gen), &p_gen, &q_gen); 591 _mint_used(); 592 { 593 u3_noun typ = u3qfu_play(van, sut, gen); 594 u3_noun ret = u3nc(_mint_nice(van, gol, typ), 595 u3nc(1, u3k(q_gen))); 596 597 return ret; 598 } 599 600 case c3__hand: 601 _mint_used(); 602 { 603 return u3k(u3t(gen)); 604 } 605 606 case c3__ktbr: p_gen = u3t(gen); 607 _mint_used(); 608 { 609 u3_noun ryd = _mint_in(van, sut, gol, p_gen); 610 u3_noun tyf = u3qfu_wrap(van, u3h(ryd), c3__iron); 611 u3_noun pro = u3nc(tyf, u3k(u3t(ryd))); 612 613 u3z(ryd); 614 return pro; 615 } 616 617 case c3__ktpm: p_gen = u3t(gen); 618 _mint_used(); 619 { 620 u3_noun ryd = _mint_in(van, sut, gol, p_gen); 621 u3_noun tyf = u3qfu_wrap(van, u3h(ryd), c3__zinc); 622 u3_noun pro = u3nc(tyf, u3k(u3t(ryd))); 623 624 u3z(ryd); 625 return pro; 626 } 627 628 case c3__ktwt: p_gen = u3t(gen); 629 _mint_used(); 630 { 631 u3_noun ryd = _mint_in(van, sut, gol, p_gen); 632 u3_noun tyf = u3qfu_wrap(van, u3h(ryd), c3__lead); 633 u3_noun pro = u3nc(tyf, u3k(u3t(ryd))); 634 635 u3z(ryd); 636 return pro; 637 } 638 639 case c3__help: u3x_cell(u3t(gen), &p_gen, &q_gen); 640 _mint_used(); 641 { 642 u3_noun hum = _mint_in(van, sut, gol, q_gen); 643 644 u3_noun ret = u3nc(u3qf_help(p_gen, u3h(hum)), 645 u3k(u3t(hum))); 646 u3z(hum); 647 return ret; 648 } 649 650 case c3__docs: u3x_cell(u3t(gen), &p_gen, &q_gen); 651 _mint_used(); 652 { 653 u3_noun hep = u3nc(c3__docs, u3k(p_gen)); 654 u3_noun hum = _mint_in(van, sut, gol, q_gen); 655 656 u3_noun ret = u3nc(u3qf_help(hep, u3h(hum)), 657 u3k(u3t(hum))); 658 659 u3z(hep); 660 u3z(hum); 661 return ret; 662 } 663 664 case c3__ktts: u3x_cell(u3t(gen), &p_gen, &q_gen); 665 _mint_used(); 666 { 667 u3_noun vat = _mint_in(van, sut, gol, q_gen); 668 669 ret = u3nc(u3qfu_conk(van, u3h(vat), p_gen), 670 u3k(u3t(vat))); 671 672 u3z(vat); 673 return ret; 674 } 675 676 case c3__tune: p_gen = u3t(gen); 677 _mint_used(); 678 { 679 return u3nc(u3qf_face(p_gen, sut), u3nc(0, 1)); 680 } 681 682 case c3__ktsg: p_gen = u3t(gen); 683 _mint_used(); 684 { 685 u3_noun nef = _mint_in(van, sut, gol, p_gen); 686 u3_noun p_nef = u3h(nef); 687 u3_noun q_nef = u3t(nef); 688 u3_noun fom; 689 690 { 691 u3_noun cag = u3qfu_burn(van, sut); 692 u3_noun wim = u3n_nock_an(cag, u3k(q_nef)); 693 694 if ( 0 == u3h(wim) ) { 695 fom = u3nc(1, u3k(u3t(wim))); 696 } else { 697 fom = u3k(q_nef); 698 } 699 u3z(wim); 700 } 701 ret = u3nc(u3k(p_nef), fom); 702 703 u3z(nef); 704 return ret; 705 } 706 707 case c3__ktls: u3x_cell(u3t(gen), &p_gen, &q_gen); 708 _mint_used(); 709 { 710 u3_noun huz = u3qfu_play(van, sut, p_gen); 711 u3_noun hif = _mint_nice(van, gol, huz); 712 u3_noun zel = _mint_in(van, sut, hif, q_gen); 713 u3_noun ret = u3nc(hif, u3k(u3t(zel))); 714 715 u3z(zel); 716 return ret; 717 } 718 719 case c3__tsgr: u3x_cell(u3t(gen), &p_gen, &q_gen); 720 _mint_used(); 721 { 722 u3_noun fid = _mint_in(van, sut, c3__noun, p_gen); 723 u3_noun p_fid = u3h(fid); 724 u3_noun q_fid = u3t(fid); 725 u3_noun dov = _mint_in(van, p_fid, gol, q_gen); 726 u3_noun p_dov = u3h(dov); 727 u3_noun q_dov = u3t(dov); 728 729 ret = u3nc(u3k(p_dov), 730 u3qf_comb(q_fid, q_dov)); 731 732 u3z(fid); 733 u3z(dov); 734 return ret; 735 } 736 737 case c3__tstr: u3x_trel(u3t(gen), &p_gen, &q_gen, &r_gen); 738 _mint_used(); 739 { 740 u3_noun boc = u3qfu_buss(van, sut, p_gen, q_gen); 741 u3_noun ret = _mint_in(van, boc, gol, r_gen); 742 743 u3z(boc); 744 return ret; 745 } 746 747 case c3__tscm: u3x_cell(u3t(gen), &p_gen, &q_gen); 748 _mint_used(); 749 { 750 u3_noun boc = u3qfu_busk(van, sut, p_gen); 751 u3_noun ret = _mint_in(van, boc, gol, q_gen); 752 753 u3z(boc); 754 return ret; 755 } 756 757 case c3__cnts: u3x_cell(u3t(gen), &p_gen, &q_gen); 758 _mint_used(); 759 { 760 return _mint_cnts(van, sut, gol, p_gen, q_gen); 761 } 762 763 case c3__brcn: u3x_cell(u3t(gen), &p_gen, &q_gen); 764 _mint_used(); 765 { 766 u3_noun ruf = u3nc(u3_nul, 1); 767 768 ret = _mint_grow(van, sut, gol, c3__gold, ruf, p_gen, q_gen); 769 u3z(ruf); 770 771 return ret; 772 } 773 774 case c3__sgzp: u3x_cell(u3t(gen), &p_gen, &q_gen); 775 _mint_used(); 776 { 777 u3_noun typ = u3qfu_play(van, sut, p_gen); 778 u3_noun dug = u3qfu_duck(van, typ); 779 780 u3t_push(u3nc(c3__mean, dug)); 781 { 782 ret = _mint_in(van, sut, gol, q_gen); 783 } 784 u3t_drop(); 785 786 u3z(typ); 787 return ret; 788 } 789 790 case c3__sggr: u3x_cell(u3t(gen), &p_gen, &q_gen); 791 _mint_used(); 792 { 793 u3_noun hum = _mint_in(van, sut, gol, q_gen); 794 u3_noun bez; 795 796 if ( c3y == u3ud(p_gen) ) { 797 bez = u3k(p_gen); 798 } else { 799 bez = u3nc(u3k(u3h(p_gen)), 800 _mint_corn(van, sut, u3t(p_gen))); 801 } 802 ret = u3nc(u3k(u3h(hum)), 803 u3nt(10, bez, u3k(u3t(hum)))); 804 805 u3z(hum); 806 return ret; 807 } 808 809 case c3__zpts: p_gen = u3t(gen); 810 _mint_used(); 811 { 812 u3_noun von = u3i_molt(u3k(van), u3qfu_van_vet, c3n, 0); 813 u3_noun sev = _mint_corn(von, sut, p_gen); 814 815 u3z(von); 816 return u3nc(c3__noun, u3nc(1, sev)); 817 } 818 819 case c3__ktcn: p_gen = u3t(gen); 820 _mint_used(); 821 { 822 u3_noun von = u3i_molt(u3k(van), u3qfu_van_fab, c3n, 0); 823 u3_noun ret = _mint_in(von, sut, gol, p_gen); 824 825 u3z(von); 826 return ret; 827 } 828 829 case c3__cold: p_gen = u3t(gen); 830 _mint_used(); 831 { 832 833 c3_m fun_m = 144 + c3__blow; 834 u3_noun vrf = u3r_at(u3qfu_van_vrf, van); 835 u3_noun pro = u3z_find_4(fun_m, vrf, sut, gol, p_gen); 836 837 if ( u3_none != pro ) { 838 return pro; 839 } 840 else { 841 u3_noun von = u3i_molt(u3k(van), u3x_sam, u3k(sut), 0); 842 u3_noun gat = u3j_hook(von, "blow"); 843 u3_noun pro; 844 845 pro = u3n_kick_on(u3i_molt(gat, 846 u3x_sam_2, 847 u3k(gol), 848 u3x_sam_3, 849 u3k(p_gen), 850 0)); 851 852 return u3z_save_4(fun_m, vrf, sut, gol, p_gen, pro); 853 } 854 } 855 856 case c3__zpcm: u3x_cell(u3t(gen), &p_gen, &q_gen); 857 _mint_used(); 858 { 859 return u3nc(_mint_nice(van, 860 gol, 861 u3qfu_play(van, sut, p_gen)), 862 u3nc(1, u3k(q_gen))); 863 } 864 865 case c3__dbug: u3x_cell(u3t(gen), &p_gen, &q_gen); 866 { 867 u3t_push(u3nc(c3__mean, _mint_loc(van, p_gen))); 868 { 869 u3_noun hum = _mint_in(van, sut, gol, q_gen); 870 u3_noun bez = u3nt(c3__spot, 1, u3k(p_gen)); 871 872 ret = u3nc(u3k(u3h(hum)), u3nt(10, bez, u3k(u3t(hum)))); 873 u3z(hum); 874 } 875 u3t_drop(); 876 return ret; 877 } 878 879 case c3__zpsm: 880 case c3__zpmc: u3x_cell(u3t(gen), &p_gen, &q_gen); 881 _mint_used(); 882 { 883 u3_noun vos = _mint_in(van, sut, c3__noun, q_gen); 884 u3_noun zur = u3qfu_play(van, sut, p_gen); 885 u3_noun p_vos = u3h(vos); 886 u3_noun q_vos = u3t(vos); 887 u3_noun waz = u3nc(1, u3k(p_vos)); 888 u3_noun sif = u3k(zur); 889 u3_noun cig = u3qf_cell(sif, p_vos); 890 u3_noun ret; 891 892 ret = u3nc(_mint_nice(van, gol, cig), 893 u3qf_cons(waz, q_vos)); 894 895 u3z(waz); 896 u3z(zur); 897 u3z(sif); 898 u3z(vos); 899 900 return ret; 901 } 902 903 case c3__lost: p_gen = u3t(gen); 904 _mint_used(); 905 { 906 if ( c3y == _mint_vet(van) ) { 907 u3_noun zur = u3qfu_play(van, sut, p_gen); 908 u3_noun dun = u3qfu_dunq(van, "lost", zur); 909 910 u3t_push(u3nc(c3__mean, dun)); 911 return u3m_error("mint-lost"); 912 } 913 else { 914 return u3nt(c3__void, 0, 0); 915 } 916 } 917 918 case c3__fail: 919 case c3__zpzp: 920 _mint_used(); 921 { 922 return u3nt(c3__void, 0, 0); 923 } 924 } 925 } 926 927 static u3_noun _cqfu_mint(u3_noun van,u3_noun sut,u3_noun gol,u3_noun gen)928 _cqfu_mint(u3_noun van, 929 u3_noun sut, 930 u3_noun gol, 931 u3_noun gen) 932 { 933 return _mint_in(van, sut, gol, gen); 934 } 935 936 /* boilerplate 937 */ 938 u3_noun u3wfu_mint(u3_noun cor)939 u3wfu_mint(u3_noun cor) 940 { 941 u3_noun sut, gol, gen, van; 942 943 if ( (c3n == u3r_mean(cor, u3x_sam_2, &gol, 944 u3x_sam_3, &gen, 945 u3x_con, &van, 946 0)) || 947 (u3_none == (sut = u3r_at(u3x_sam, van))) ) 948 { 949 return u3m_bail(c3__fail); 950 } else { 951 return _cqfu_mint(van, sut, gol, gen); 952 } 953 } 954 955 u3_noun u3qfu_mint(u3_noun van,u3_noun sut,u3_noun gol,u3_noun gen)956 u3qfu_mint(u3_noun van, 957 u3_noun sut, 958 u3_noun gol, 959 u3_noun gen) 960 { 961 c3_m fun_m = 144 + c3__mint; 962 u3_noun vrf = u3r_at(u3qfu_van_vrf, van); 963 u3_noun pro = u3z_find_4(fun_m, vrf, sut, gol, gen); 964 965 if ( u3_none != pro ) { 966 return pro; 967 } 968 else { 969 pro = _cqfu_mint(van, sut, gol, gen); 970 971 return u3z_save_4(fun_m, vrf, sut, gol, gen, pro); 972 } 973 } 974