Changeset 1830
- Timestamp:
- Jan 19, 2006, 4:03:25 AM (15 years ago)
- Location:
- to-imperative/trunk/library
- Files:
-
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
to-imperative/trunk/library/List/List.cc
r1778 r1830 31 31 static Expr _c_4; 32 32 33 RF_FUNC (Deparen_m_Term, (RF_ARG _ve_xpr;;), (RF_RES _v_res1;;)) 34 _v_res1 = _ve_xpr; 33 RF_FUNC (Deparen_m_Term, (RF_ARG _v_arg1;;), (RF_RES _v_res1;;)) 34 { 35 { 36 if (_v_arg1.symbol_at (0)) 37 { 38 goto _block1__branch1; 39 } 40 Expr _v_deref__arg1 (_v_arg1, 0); 41 uintptr_t _v_len1 = _v_deref__arg1.get_len (); 42 uintptr_t _v_len2 = 0; 43 if ((_v_len1 < _v_len2)) 44 { 45 goto _block1__branch1; 46 } 47 uintptr_t _v_len__xpr = (_v_len1 - _v_len2); 48 Expr _ve_xpr (_v_deref__arg1, 0, _v_len__xpr); 49 _v_res1 = _ve_xpr; 50 goto _block1; 51 } 52 _block1__branch1: {} 53 _v_res1 = _v_arg1; 54 } 55 _block1: {} 35 56 RF_END 36 57 … … 58 79 if ((_v_len1 < _v_len2)) 59 80 { 60 RF_ ERROR (Expr::create<Word>("List") + Expr::create<Word>("Zip") +unexpected_fail);81 RF_FUNC_ERROR (unexpected_fail); 61 82 } 62 83 uintptr_t _v_len__rest2 = (_v_len1 - _v_len2); … … 65 86 if ((_v_len3 < _v_len4)) 66 87 { 67 RF_ ERROR (Expr::create<Word>("List") + Expr::create<Word>("Zip") +unexpected_fail);88 RF_FUNC_ERROR (unexpected_fail); 68 89 } 69 90 uintptr_t _v_len__rest1 = (_v_len3 - _v_len4); … … 97 118 if ((_v_len1 < _v_len2)) 98 119 { 99 RF_ ERROR (Expr::create<Word>("List") + Expr::create<Word>("Map") +unexpected_fail);120 RF_FUNC_ERROR (unexpected_fail); 100 121 } 101 122 uintptr_t _v_len__rest = (_v_len1 - _v_len2); … … 105 126 if (!RF_CALL (Apply::Apply, (_vs_Fname, (_ve_Fargs + _vt_item)), _v_Apply1)) 106 127 { 107 RF_ ERROR (Expr::create<Word>("List") + Expr::create<Word>("Map") +unexpected_fail);128 RF_FUNC_ERROR (unexpected_fail); 108 129 } 109 130 _ve_new_m_list = (_ve_new_m_list + _v_Apply1); … … 131 152 if ((_v_len1 < _v_len2)) 132 153 { 133 RF_ ERROR (Expr::create<Word>("List") + Expr::create<Word>("Filter") +unexpected_fail);154 RF_FUNC_ERROR (unexpected_fail); 134 155 } 135 156 uintptr_t _v_len__rest = (_v_len1 - _v_len2); … … 149 170 goto _block2__branch1; 150 171 } 151 uintptr_t _v_len___e__e_tmp_m_Listrf_m_3 3_m_41 = (_v_len3 - _v_len4);152 Expr _ve__e__e_tmp_m_Listrf_m_3 3_m_41 (_v_Apply1, 0, _v_len___e__e_tmp_m_Listrf_m_33_m_41);172 uintptr_t _v_len___e__e_tmp_m_Listrf_m_36_m_41 = (_v_len3 - _v_len4); 173 Expr _ve__e__e_tmp_m_Listrf_m_36_m_41 (_v_Apply1, 0, _v_len___e__e_tmp_m_Listrf_m_36_m_41); 153 174 _ve_new_m_list = (_ve_new_m_list + _vt_item); 154 175 _v_list__1 = _ve_rest; … … 183 204 if ((_v_len1 < _v_len2)) 184 205 { 185 RF_ ERROR (Expr::create<Word>("List") + Expr::create<Word>("Split") +unexpected_fail);206 RF_FUNC_ERROR (unexpected_fail); 186 207 } 187 208 uintptr_t _v_len__rest = (_v_len1 - _v_len2); … … 201 222 goto _block2__branch1; 202 223 } 203 uintptr_t _v_len___e__e_tmp_m_Listrf_m_4 4_m_41 = (_v_len3 - _v_len4);204 Expr _ve__e__e_tmp_m_Listrf_m_4 4_m_41 (_v_Apply1, 0, _v_len___e__e_tmp_m_Listrf_m_44_m_41);224 uintptr_t _v_len___e__e_tmp_m_Listrf_m_47_m_41 = (_v_len3 - _v_len4); 225 Expr _ve__e__e_tmp_m_Listrf_m_47_m_41 (_v_Apply1, 0, _v_len___e__e_tmp_m_Listrf_m_47_m_41); 205 226 _ve_true_m_list = (_ve_true_m_list + _vt_item); 206 227 _v_list__1 = _ve_rest; … … 221 242 RF_RETFAIL; 222 243 } 223 lsplit (_ve_list, 0, _ve__e__e_tmp_m_Listrf_m_5 3_m_13, _v_lsplit__list);244 lsplit (_ve_list, 0, _ve__e__e_tmp_m_Listrf_m_56_m_13, _v_lsplit__list); 224 245 for ( ; ; iter(_ve_list)++) 225 246 { … … 235 256 RF_RETFAIL; 236 257 } 237 uintptr_t _v_len___e__e_tmp_m_Listrf_m_5 3_m_22 = (_v_len1 - _v_len2);258 uintptr_t _v_len___e__e_tmp_m_Listrf_m_56_m_22 = (_v_len1 - _v_len2); 238 259 if (!_vt_item.term_eq (_v_lsplit__list, 0)) 239 260 { 240 261 goto _continue1; 241 262 } 242 Expr _ve__e__e_tmp_m_Listrf_m_5 3_m_22 (_v_lsplit__list, 1, _v_len___e__e_tmp_m_Listrf_m_53_m_22);263 Expr _ve__e__e_tmp_m_Listrf_m_56_m_22 (_v_lsplit__list, 1, _v_len___e__e_tmp_m_Listrf_m_56_m_22); 243 264 goto _exit1; 244 265 } … … 251 272 if (!RF_CALL (Access::L, (_vs_num, _ve_list), _v_res1)) 252 273 { 253 RF_ ERROR (Expr::create<Word>("List") + Expr::create<Word>("Get-Elem") +unexpected_fail);274 RF_FUNC_ERROR (unexpected_fail); 254 275 } 255 276 RF_END … … 273 294 if ((_v_len1 < _v_len2)) 274 295 { 275 RF_ ERROR (Expr::create<Word>("List") + Expr::create<Word>("Foldr") +unexpected_fail);296 RF_FUNC_ERROR (unexpected_fail); 276 297 } 277 298 uintptr_t _v_len__something = (_v_len1 - _v_len2); … … 280 301 if (!RF_CALL (Apply::Apply, (_vs_Fname, (_ve_Fargs + _vt_last + _v_value__1)), _v_value__1)) 281 302 { 282 RF_ ERROR (Expr::create<Word>("List") + Expr::create<Word>("Foldr") +unexpected_fail);303 RF_FUNC_ERROR (unexpected_fail); 283 304 } 284 305 _v_list__1 = _ve_something; … … 336 357 if ((_v_arg1.get_len () != 0)) 337 358 { 338 RF_ ERROR (Expr::create<Word>("List") + Expr::create<Word>("Reverse") +unexpected_fail);359 RF_FUNC_ERROR (unexpected_fail); 339 360 } 340 361 _v_res1 = empty; 341 362 } 342 363 _block1: {} 364 RF_END 365 366 RF_FUNC (Intersperse, (RF_ARG _ve_sep, _ve_list;;), (RF_RES _v_res1;;)) 367 Expr _ve_new_m_list (empty); 368 Expr _v_list__1 (_ve_list); 369 for ( ; ; ) 370 { 371 { 372 if ((_v_list__1.get_len () != 0)) 373 { 374 goto _iter1; 375 } 376 _v_res1 = _ve_new_m_list; 377 goto _exit__iter1; 378 } 379 _iter1: {} 380 { 381 { 382 uintptr_t _v_len1 = _v_list__1.get_len (); 383 uintptr_t _v_len2 = 1; 384 if ((_v_len1 < (_v_len2 + 1))) 385 { 386 goto _block1__branch1; 387 } 388 uintptr_t _v_len__2 = (_v_len1 - _v_len2); 389 Expr _vt_1 (_v_list__1, 0, 1); 390 Expr _vv_2 (_v_list__1, 1, _v_len__2); 391 _ve_new_m_list = (_ve_new_m_list + _vt_1 + _ve_sep); 392 _v_list__1 = _vv_2; 393 goto _block1; 394 } 395 _block1__branch1: {} 396 _ve_new_m_list = (_ve_new_m_list + _v_list__1); 397 _v_list__1 = empty; 398 } 399 _block1: {} 400 } 401 _exit__iter1: {} 343 402 RF_END 344 403 … … 361 420 if ((_v_len1 < _v_len2)) 362 421 { 363 RF_ ERROR (Expr::create<Word>("List") + Expr::create<Word>("Nub") +unexpected_fail);422 RF_FUNC_ERROR (unexpected_fail); 364 423 } 365 424 uintptr_t _v_len__rest = (_v_len1 - _v_len2); … … 372 431 goto _block2__branch1; 373 432 } 374 lsplit (_ve_selected, 0, _ve__e__e_tmp_m_Listrf_m_ 83_m_21, _v_lsplit__selected);433 lsplit (_ve_selected, 0, _ve__e__e_tmp_m_Listrf_m_95_m_21, _v_lsplit__selected); 375 434 for ( ; ; iter(_ve_selected)++) 376 435 { … … 386 445 goto _block2__branch1; 387 446 } 388 uintptr_t _v_len___e__e_tmp_m_Listrf_m_ 83_m_28 = (_v_len3 - _v_len4);447 uintptr_t _v_len___e__e_tmp_m_Listrf_m_95_m_28 = (_v_len3 - _v_len4); 389 448 if (!_vt_erm.term_eq (_v_lsplit__selected, 0)) 390 449 { 391 450 goto _continue1; 392 451 } 393 Expr _ve__e__e_tmp_m_Listrf_m_ 83_m_28 (_v_lsplit__selected, 1, _v_len___e__e_tmp_m_Listrf_m_83_m_28);452 Expr _ve__e__e_tmp_m_Listrf_m_95_m_28 (_v_lsplit__selected, 1, _v_len___e__e_tmp_m_Listrf_m_95_m_28); 394 453 _v_expr__1 = _ve_rest; 395 454 goto _exit1; … … 488 547 if ((_v_len1 < _v_len2)) 489 548 { 490 RF_ ERROR (Expr::create<Word>("List") + Expr::create<Word>("Or") +unexpected_fail);549 RF_FUNC_ERROR (unexpected_fail); 491 550 } 492 551 uintptr_t _v_len__rest = (_v_len1 - _v_len2); … … 499 558 goto _block2__branch1; 500 559 } 501 lsplit (_v_list1__1, 0, _ve__e__e_tmp_m_Listrf_m_1 08_m_20, _v_lsplit__list1__1);560 lsplit (_v_list1__1, 0, _ve__e__e_tmp_m_Listrf_m_120_m_20, _v_lsplit__list1__1); 502 561 for ( ; ; iter(_v_list1__1)++) 503 562 { … … 513 572 goto _block2__branch1; 514 573 } 515 uintptr_t _v_len___e__e_tmp_m_Listrf_m_1 08_m_27 = (_v_len3 - _v_len4);574 uintptr_t _v_len___e__e_tmp_m_Listrf_m_120_m_27 = (_v_len3 - _v_len4); 516 575 if (!_vt_erm.term_eq (_v_lsplit__list1__1, 0)) 517 576 { 518 577 goto _continue1; 519 578 } 520 Expr _ve__e__e_tmp_m_Listrf_m_1 08_m_27 (_v_lsplit__list1__1, 1, _v_len___e__e_tmp_m_Listrf_m_108_m_27);579 Expr _ve__e__e_tmp_m_Listrf_m_120_m_27 (_v_lsplit__list1__1, 1, _v_len___e__e_tmp_m_Listrf_m_120_m_27); 521 580 _v_list2__1 = _ve_rest; 522 581 goto _exit1; … … 554 613 if ((_v_len1 < _v_len2)) 555 614 { 556 RF_ ERROR (Expr::create<Word>("List") + Expr::create<Word>("And") +unexpected_fail);615 RF_FUNC_ERROR (unexpected_fail); 557 616 } 558 617 uintptr_t _v_len__rest = (_v_len1 - _v_len2); … … 565 624 goto _block2__branch1; 566 625 } 567 lsplit (_ve_list2, 0, _ve__e__e_tmp_m_Listrf_m_1 22_m_20, _v_lsplit__list2);626 lsplit (_ve_list2, 0, _ve__e__e_tmp_m_Listrf_m_134_m_20, _v_lsplit__list2); 568 627 for ( ; ; iter(_ve_list2)++) 569 628 { … … 579 638 goto _block2__branch1; 580 639 } 581 uintptr_t _v_len___e__e_tmp_m_Listrf_m_1 22_m_27 = (_v_len3 - _v_len4);640 uintptr_t _v_len___e__e_tmp_m_Listrf_m_134_m_27 = (_v_len3 - _v_len4); 582 641 if (!_vt_erm.term_eq (_v_lsplit__list2, 0)) 583 642 { 584 643 goto _continue1; 585 644 } 586 Expr _ve__e__e_tmp_m_Listrf_m_1 22_m_27 (_v_lsplit__list2, 1, _v_len___e__e_tmp_m_Listrf_m_122_m_27);645 Expr _ve__e__e_tmp_m_Listrf_m_134_m_27 (_v_lsplit__list2, 1, _v_len___e__e_tmp_m_Listrf_m_134_m_27); 587 646 _v_list1__1 = _ve_rest; 588 647 _ve_and = (_ve_and + _vt_erm); … … 620 679 if ((_v_len1 < _v_len2)) 621 680 { 622 RF_ ERROR (Expr::create<Word>("List") + Expr::create<Word>("Sub") +unexpected_fail);681 RF_FUNC_ERROR (unexpected_fail); 623 682 } 624 683 uintptr_t _v_len__rest = (_v_len1 - _v_len2); … … 631 690 goto _block2__branch1; 632 691 } 633 lsplit (_ve_list2, 0, _ve__e__e_tmp_m_Listrf_m_1 36_m_20, _v_lsplit__list2);692 lsplit (_ve_list2, 0, _ve__e__e_tmp_m_Listrf_m_148_m_20, _v_lsplit__list2); 634 693 for ( ; ; iter(_ve_list2)++) 635 694 { … … 645 704 goto _block2__branch1; 646 705 } 647 uintptr_t _v_len___e__e_tmp_m_Listrf_m_1 36_m_27 = (_v_len3 - _v_len4);706 uintptr_t _v_len___e__e_tmp_m_Listrf_m_148_m_27 = (_v_len3 - _v_len4); 648 707 if (!_vt_erm.term_eq (_v_lsplit__list2, 0)) 649 708 { 650 709 goto _continue1; 651 710 } 652 Expr _ve__e__e_tmp_m_Listrf_m_1 36_m_27 (_v_lsplit__list2, 1, _v_len___e__e_tmp_m_Listrf_m_136_m_27);711 Expr _ve__e__e_tmp_m_Listrf_m_148_m_27 (_v_lsplit__list2, 1, _v_len___e__e_tmp_m_Listrf_m_148_m_27); 653 712 _v_list1__1 = _ve_rest; 654 713 goto _exit1; … … 684 743 RF_ERROR (_c_4); 685 744 } 686 if (_v_arg1.symbol_at (0)) 687 { 688 RF_ERROR (_c_4); 689 } 690 Expr _v_deref__arg1 (_v_arg1, 0); 691 uintptr_t _v_len1 = _v_deref__arg1.get_len (); 692 uintptr_t _v_len2 = 0; 693 if ((_v_len1 < _v_len2)) 694 { 695 RF_ERROR (_c_4); 696 } 697 uintptr_t _v_len__stub1 = (_v_len1 - _v_len2); 698 Expr _v_stub1 (_v_deref__arg1, 0, _v_len__stub1); 745 Expr _v_stub1 (_v_arg1, 0, 1); 699 746 RF_TAILCALL (Deparen_m_Term, _v_stub1, _v_res1); 700 747 RF_END -
to-imperative/trunk/library/List/List.hh
r1703 r1830 34 34 RF_DECL (Reverse); 35 35 36 RF_DECL (Intersperse); 37 36 38 RF_DECL (Nub); 37 39 -
to-imperative/trunk/library/List/refal/List.rf
r1703 r1830 5 5 $use Apply Access Arithm; 6 6 7 $func Deparen-Term (expr) = expr; 8 Deparen-Term (expr) = expr; 7 $func Deparen-Term term = expr; 8 Deparen-Term { 9 (expr) = expr; 10 term = term; 11 }; 9 12 10 13 $func Paren-Term term = (term); … … 78 81 }; 79 82 83 Intersperse (e.sep) e.list = 84 (/*e.new-list*/) e.list $iter { 85 e.list : t1 v2 = 86 (e.new-list t1 e.sep) v2; 87 (e.new-list e.list); 88 } :: (e.new-list) e.list, 89 e.list : /*empty*/ = 90 e.new-list; 91 80 92 Nub e.expr = 81 93 e.expr () $iter { -
to-imperative/trunk/library/List/refal/List.rfi
r1703 r1830 25 25 $func Reverse e.list = e.rev-list; 26 26 27 $func Intersperse (e.sep) e.list = e.new-list; 28 27 29 $func Nub e.expr = e.selected; 28 30 -
to-imperative/trunk/library/include/refal-plus/List.rfi
r1703 r1830 25 25 $func Reverse e.list = e.rev-list; 26 26 27 $func Intersperse (e.sep) e.list = e.new-list; 28 27 29 $func Nub e.expr = e.selected; 28 30 -
to-imperative/trunk/library/include/refal/List.hh
r1703 r1830 34 34 RF_DECL (Reverse); 35 35 36 RF_DECL (Intersperse); 37 36 38 RF_DECL (Nub); 37 39
Note: See TracChangeset
for help on using the changeset viewer.