cvsuser 04/03/06 06:53:39
Modified: docs/pmc iterator.pod
t/pmc iter.t
Log:
#27469 [PATCH] Use named constants in iterator.pod
this patch is just a little documentation update in 'docs/iterator.pod'.
Now named constants are used for setting up the iterator in the examples.
There was even a little bug, .ITERATE_FROM_END is no longer 3, but 4.
There is now also a PIR test in 't/pmc/iter.t'.
Courtesy of Bernhard Schmalhofer
Revision Changes Path
1.2 +7 -4 parrot/docs/pmc/iterator.pod
Index: iterator.pod
===================================================================
RCS file: /cvs/public/parrot/docs/pmc/iterator.pod,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -w -r1.1 -r1.2
--- iterator.pod 6 Jul 2003 15:22:38 -0000 1.1
+++ iterator.pod 6 Mar 2004 14:53:32 -0000 1.2
@@ -11,8 +11,9 @@
Iterate from the beginning of the aggregate:
+ .include "iterator.pasm"
new P0, .Iterator, P1 # setup iterator for aggregate P1
- set P0, 0 # reset iterator, begin at start
+ set P0, .ITERATE_FROM_START # reset iterator, begin at start
iter_loop:
unless P0, iter_end # while (entries) ...
shift P2, P0 # get entry
@@ -21,8 +22,9 @@
Iterate from the end of the aggregate (Array like classes only):
+ .include "iterator.pasm"
new P0, .Iterator, P1 # setup iterator for aggregate P1
- set P0, 3 # reset iterator, begin at end
+ set P0, .ITERATE_FROM_END # reset iterator, begin at end
iter_loop:
unless P0, iter_end # while (entries) ...
pop P2, P0 # get entry
@@ -32,8 +34,9 @@
=head2 Iterating over hashes
.include "datatypes.pasm" # type constants
+ .include "iterator.pasm"
new P0, .Iterator, P1 # setup iterator for hash P1
- set P0, 0 # reset iterator, begin at start
+ set P0, .ITERATE_FROM_START # reset iterator, begin at start
iter_loop:
unless P0, iter_end # while (entries) ...
shift S2, P0 # get key for next entry
1.11 +42 -4 parrot/t/pmc/iter.t
Index: iter.t
===================================================================
RCS file: /cvs/public/parrot/t/pmc/iter.t,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -w -r1.10 -r1.11
--- iter.t 22 Feb 2004 22:55:29 -0000 1.10
+++ iter.t 6 Mar 2004 14:53:38 -0000 1.11
@@ -1,14 +1,14 @@
#! perl -w
# Copyright: 2001-2003 The Perl Foundation. All Rights Reserved.
-# $Id: iter.t,v 1.10 2004/02/22 22:55:29 mikescott Exp $
+# $Id: iter.t,v 1.11 2004/03/06 14:53:38 leo Exp $
=head1 NAME
-t/pmc/iter.t - Iteratation
+t/pmc/iter.t - Iteration
=head1 SYNOPSIS
- % perl t/pmc/iter.t
+ % perl -I lib t/pmc/iter.t
=head1 DECSRIPTION
@@ -16,7 +16,7 @@
=cut
-use Parrot::Test tests => 9;
+use Parrot::Test tests => 10;
use Test::More qw(skip);
output_is(<<'CODE', <<'OUTPUT', "new iter");
new P2, .PerlArray
@@ -285,6 +285,44 @@
CODE
676665
ABC
+OUTPUT
+
+
+output_is(<< 'CODE', << 'OUTPUT', "PerlString iterator in PIR");
+##PIR##
+.include "iterator.pasm"
+.sub _main
+ .local pmc string_1
+ string_1 = new PerlString
+ string_1 = "abcd\x65\x66\x67"
+ print string_1
+ print "\n"
+
+ .local pmc iter_1
+ iter_1 = new Iterator, string_1
+ iter_1 = .ITERATE_FROM_START
+
+ .local int code_point_1
+ITER_LOOP:
+ unless iter_1 goto ITER_END
+ shift code_point_1, iter_1
+ print code_point_1
+ print "\n"
+ branch ITER_LOOP
+ITER_END:
+ print "reached end\n"
+ end
+.end
+CODE
+abcdefg
+97
+98
+99
+100
+101
+102
+103
+reached end
OUTPUT
SKIP: {