Author: pmichaud Date: Thu Jan 25 20:56:22 2007 New Revision: 16805 Modified: trunk/languages/perl6/src/builtins/string.pir
Log: [perl6]: Simple version of 'join' Modified: trunk/languages/perl6/src/builtins/string.pir ============================================================================== --- trunk/languages/perl6/src/builtins/string.pir (original) +++ trunk/languages/perl6/src/builtins/string.pir Thu Jan 25 20:56:22 2007 @@ -142,6 +142,43 @@ .end +=item join + +B<Note:> partial implementation only + +=cut + +.sub 'join' + .param pmc args :slurpy + .local pmc flatargs + .local string sep + + flatargs = new 'List' + sep = '' + unless args goto have_flatargs + $P0 = args[0] + $I0 = isa $P0, 'List' + if $I0 goto have_sep + $P0 = shift args + sep = $P0 + have_sep: + arg_loop: + unless args goto have_flatargs + $P0 = shift args + $I0 = isa $P0, 'List' + if $I0 goto arg_array + push flatargs, $P0 + goto arg_loop + arg_array: + $I0 = elements flatargs + splice flatargs, $P0, $I0, 0 + goto arg_loop + have_flatargs: + $S0 = join sep, flatargs + .return ($S0) +.end + + =item substr multi substr (Str $s, StrPos $start : StrPos $end, $replace)
