Author: pmichaud
Date: Sat Apr 14 07:33:25 2007
New Revision: 18191

Added:
   trunk/t/compilers/pge/perl6regex/rx_syntax
Modified:
   trunk/MANIFEST
   trunk/compilers/pge/PGE/Perl6Regex.pir
   trunk/t/compilers/pge/perl6regex/01-regex.t

Log:
[pge]:
* Migrate p6regex syntax.t test to perl6regex rx_syntax.


Modified: trunk/MANIFEST
==============================================================================
--- trunk/MANIFEST      (original)
+++ trunk/MANIFEST      Sat Apr 14 07:33:25 2007
@@ -2762,6 +2762,7 @@
 t/compilers/pge/perl6regex/rx_metachars                     []
 t/compilers/pge/perl6regex/rx_modifiers                     []
 t/compilers/pge/perl6regex/rx_subrules                      []
+t/compilers/pge/perl6regex/rx_syntax                        []
 t/compilers/pge/pge-hs.t                                    []
 t/compilers/pge/pge.t                                       []
 t/compilers/pge/pge_examples.t                              []

Modified: trunk/compilers/pge/PGE/Perl6Regex.pir
==============================================================================
--- trunk/compilers/pge/PGE/Perl6Regex.pir      (original)
+++ trunk/compilers/pge/PGE/Perl6Regex.pir      Sat Apr 14 07:33:25 2007
@@ -410,6 +410,7 @@
     concat charlist, $S1
     unless isbracketed goto scan_xdo_end
     if $S0 == ']' goto scan_xdo_end
+    if $S0 == '' goto err_missing_bracket
     if $S0 != ',' goto err_bracketed
     if isnegated goto err_negated_brackets
     inc pos
@@ -422,6 +423,8 @@
 
   err_reserved_metachar:
     parse_error(mob, pos, 'Alphanumeric metacharacters are reserved')
+  err_missing_bracket:
+    parse_error(mob, pos, 'Missing close bracket for \\x[...] or \\o[...]')
   err_bracketed:
     parse_error(mob, pos, 'Invalid digit in \\x[...] or \\o[...]')
   err_negated_brackets:

Modified: trunk/t/compilers/pge/perl6regex/01-regex.t
==============================================================================
--- trunk/t/compilers/pge/perl6regex/01-regex.t (original)
+++ trunk/t/compilers/pge/perl6regex/01-regex.t Sat Apr 14 07:33:25 2007
@@ -79,6 +79,7 @@
     push test_files, 'rx_lookarounds'
     push test_files, 'rx_captures'
     push test_files, 'rx_modifiers'
+    push test_files, 'rx_syntax'
 
     .local pmc interp     # a handle to our interpreter object.
                interp = getinterp

Added: trunk/t/compilers/pge/perl6regex/rx_syntax
==============================================================================
--- (empty file)
+++ trunk/t/compilers/pge/perl6regex/rx_syntax  Sat Apr 14 07:33:25 2007
@@ -0,0 +1,28 @@
+##  syntax errors
+
+{{             abcdef          /Missing closing braces/        unterminated 
closure
+\1             abcdef          /reserved/                      back references
+\x[            abcdef          /Missing close bracket/         unterminated 
\x[..]
+\X[            abcdef          /Missing close bracket/         unterminated 
\X[..]
+
+* abc          abcdef          /Quantifier follows nothing/    bare * at start
+  * abc                abcdef          /Quantifier follows nothing/    bare * 
after ws
+[*|a]          abcdef          /Quantifier follows nothing/    bare * after [
+[ *|a]         abcdef          /Quantifier follows nothing/    bare * after 
[+sp
+[a|*]          abcdef          /Quantifier follows nothing/    bare * after |
+[a| *]         abcdef          /Quantifier follows nothing/    bare * after 
|+sp
+
++ abc          abcdef          /Quantifier follows nothing/    bare + at start
+  + abc                abcdef          /Quantifier follows nothing/    bare + 
after ws
+[+|a]          abcdef          /Quantifier follows nothing/    bare + after [
+[ +|a]         abcdef          /Quantifier follows nothing/    bare + after 
[+sp
+[a|+]          abcdef          /Quantifier follows nothing/    bare + after |
+[a| +]         abcdef          /Quantifier follows nothing/    bare + after 
|+sp
+
+? abc          abcdef          /Quantifier follows nothing/    bare ? at start
+  ? abc                abcdef          /Quantifier follows nothing/    bare ? 
after ws
+[?|a]          abcdef          /Quantifier follows nothing/    bare ? after [
+[ ?|a]         abcdef          /Quantifier follows nothing/    bare ? after 
[+sp
+[a|?]          abcdef          /Quantifier follows nothing/    bare ? after |
+[a| ?]         abcdef          /Quantifier follows nothing/    bare ? after 
|+sp
+

Reply via email to