[svn:parrot] r37859 - in branches/p6strings: compilers/pge/PGE t/compilers/pge/perl6regex

pmichaud at svn.parrot.org pmichaud at svn.parrot.org
Wed Apr 1 22:05:59 UTC 2009


Author: pmichaud
Date: Wed Apr  1 22:05:58 2009
New Revision: 37859
URL: https://trac.parrot.org/parrot/changeset/37859

Log:
[pge]:  Fix bug in \c[digits] form of escapes, add tests.

Modified:
   branches/p6strings/compilers/pge/PGE/Perl6Regex.pir
   branches/p6strings/t/compilers/pge/perl6regex/rx_metachars

Modified: branches/p6strings/compilers/pge/PGE/Perl6Regex.pir
==============================================================================
--- branches/p6strings/compilers/pge/PGE/Perl6Regex.pir	Wed Apr  1 21:40:03 2009	(r37858)
+++ branches/p6strings/compilers/pge/PGE/Perl6Regex.pir	Wed Apr  1 22:05:58 2009	(r37859)
@@ -204,7 +204,7 @@
     decnum = 0
     if base != 10 goto scan_xco_char_digits
     unless isbracketed goto scan_xco_char_digits
-    $I0 = is_cclass .CCLASS_NUMERIC, $S0, pos
+    $I0 = is_cclass .CCLASS_NUMERIC, target, pos
     if $I0 goto scan_xco_char_digits
     ##  look up character by name
     .local int namepos

Modified: branches/p6strings/t/compilers/pge/perl6regex/rx_metachars
==============================================================================
--- branches/p6strings/t/compilers/pge/perl6regex/rx_metachars	Wed Apr  1 21:40:03 2009	(r37858)
+++ branches/p6strings/t/compilers/pge/perl6regex/rx_metachars	Wed Apr  1 22:05:58 2009	(r37859)
@@ -204,6 +204,27 @@
 c \X[0021] d		abc!def		n	not hex (\X[])
 c \X[0021]+ d		abc!!def	n	not hex (\X[])
 a \X[0021]+ f		abcdef		y	not hex (\X[])
+c \c33 d		abc!def	y	hex (\x)
+c \c33+ d		abc!!def	y	hex (\x)
+a \c33+ f		abcdef		n	hex (\x)
+b \c33 c		abc!def		n	hex (\x)
+c \c[33] d		abc!def		y	hex (\x[])
+c \c[33]+ d		abc!!def	y	hex (\x[])
+c \c[33,33] d		abc!!def	y	hex (\x[])
+a \c[33]+ f		abcdef		n	hex (\x[])
+b \c[33] c		abc!def		n	hex (\x[])
+\C33			a		y	not hex (\X)
+a \C33 c		abc		y	not hex (\X)
+\C33			''		n	not hex (\X)
+c \C33 d		abc!def		n	not hex (\X)
+c \C33+ d		abc!!def	n	not hex (\X)
+a \C33+ f		abcdef		y	not hex (\X)
+\C[33]			a		y	not hex (\X[])
+a \C[33] c		abc		y	not hex (\X[])
+\C[33]			''		n	not hex (\X[])
+c \C[33] d		abc!def		n	not hex (\X[])
+c \C[33]+ d		abc!!def	n	not hex (\X[])
+a \C[33]+ f		abcdef		y	not hex (\X[])
 c \o041 d		abc!def		y	octal (\o)
 c \o41+ d		abc!!def	y	octal (\o)
 a \o41+ f		abcdef		n	octal (\o)


More information about the parrot-commits mailing list