diff --git a/src/classes/String.pir b/src/classes/String.pir index f1490ea..a946cab 100644 --- a/src/classes/String.pir +++ b/src/classes/String.pir @@ -480,6 +480,18 @@ Warning: Partial implementation. Look for TODO each_loop_done: .end +.sub 'each_char' :method + .param pmc block :named('!BLOCK') + .local pmc iterator, item + iterator = iter self + each_loop: + unless iterator goto each_loop_done + item = shift iterator + block(item) + goto each_loop + each_loop_done: +.end + =item perl() Returns a Perl representation of the Str. diff --git a/t/string/block.t b/t/string/block.t index 64abf1a..3159dc3 100644 --- a/t/string/block.t +++ b/t/string/block.t @@ -1,6 +1,6 @@ require 'Test' include Test -plan 6 +plan 7 s = String.new("ruby") isnt s, nil, '.new for String'