comparison string.rhope @ 105:43cc42df26cc

Various compiler improvements
author Mike Pavone <pavone@retrodev.com>
date Tue, 24 Aug 2010 23:22:17 -0400
parents f51c4c17457c
children 439db471f595
comparison
equal deleted inserted replaced
103:7428aa5d6ade 105:43cc42df26cc
541 541
542 _Flatten@String[string,dest,offset,count:out] 542 _Flatten@String[string,dest,offset,count:out]
543 { 543 {
544 If[count] 544 If[count]
545 { 545 {
546 out <- [string]_Flatten[[dest]Append[ [[string]Buffer >>]Index[offset] ], [offset]+[1i32], [count]-[1i32]] 546 out <- [_internal_array_copychunk[[string]Buffer >>, offset, dest, [dest]Length, count]]Length <<[[[dest]Length]+[count]]
547 }{ 547 }{
548 out <- dest 548 out <- dest
549 } 549 }
550 } 550 }
551 551
559 out <- [[string]Source >>]_Flatten[dest, [[string]Offset >>]+[offset], count] 559 out <- [[string]Source >>]_Flatten[dest, [[string]Offset >>]+[offset], count]
560 } 560 }
561 561
562 Flatten@String Slice[string:out] 562 Flatten@String Slice[string:out]
563 { 563 {
564 out <- [[Build[String()]]Buffer <<[ [[string]Source >>]_Flatten[Array[], [string]Offset >>, [string]ByteLen >>] ] 564 If[[string]ByteLen >>]
565 ]Length <<[[string]Length >>] 565 {
566 out <- [[Build[String()]]Buffer <<[ [[string]Source >>]_Flatten[_internal_array_allocnaked[[string]ByteLen >>, UInt8()], [string]Offset >>, [string]ByteLen >>] ]
567 ]Length <<[[string]Length >>]
568 }{
569 out <- ""
570 }
566 } 571 }
567 572
568 Print@String Slice[string:out] 573 Print@String Slice[string:out]
569 { 574 {
570 out <- Print[Flatten[string]] 575 out <- Print[Flatten[string]]
663 } 668 }
664 } 669 }
665 670
666 Flatten@String Cat[string:out] 671 Flatten@String Cat[string:out]
667 { 672 {
668 out <- [[Build[String()] 673 If[[string]ByteLen >>]
669 ]Buffer << [ 674 {
670 [[string]Right >>]_Flatten[ 675 out <- [[Build[String()]
671 [[string]Left >>]_Flatten[Array[], 0i32, [[string]Left >>]Byte Length], 676 ]Buffer << [
672 0i32, [[string]Right >>]Byte Length]] 677 [[string]Right >>]_Flatten[
673 ]Length << [[string]Length >>] 678 [[string]Left >>]_Flatten[_internal_array_allocnaked[[string]ByteLen >>, UInt8()], 0i32, [[string]Left >>]Byte Length],
679 0i32, [[string]Right >>]Byte Length]]
680 ]Length << [[string]Length >>]
681 }{
682 out <- ""
683 }
674 } 684 }
675 685
676 Print@String Cat[string:out] 686 Print@String Cat[string:out]
677 { 687 {
678 out <- Print[Flatten[string]] 688 out <- Print[Flatten[string]]