Author: pmichaud
Date: Thu Nov  3 12:56:44 2005
New Revision: 9759

Modified:
   trunk/runtime/parrot/library/PGE/Glob.pir
   trunk/t/library/pge.t
Log:
Fixed PGE::Glob for new underlying structures, updated tests
in t/library/pge.t.


Modified: trunk/runtime/parrot/library/PGE/Glob.pir
==============================================================================
--- trunk/runtime/parrot/library/PGE/Glob.pir   (original)
+++ trunk/runtime/parrot/library/PGE/Glob.pir   Thu Nov  3 12:56:44 2005
@@ -176,10 +176,10 @@ Parse alternations of the form {a,b,c} w
     $S0 = substr pattern, pos, 1
     if $S0 == "!" goto negate
     if $S0 == "^" goto negate
-    exp["charmatch"] = "if"
+    exp["isnegated"] = 0
     goto first_bracket
   negate:
-    exp["charmatch"] = "unless"
+    exp["isnegated"] = 1
     inc pos
   first_bracket:
     $S0 = substr pattern, pos, 1
@@ -212,7 +212,7 @@ Parse alternations of the form {a,b,c} w
   end_class:
     inc pos
     lex["pos"] = pos
-    exp["charlist"] = charclass
+    exp["value"] = charclass
   end:
     .return (exp)
 .end  

Modified: trunk/t/library/pge.t
==============================================================================
--- trunk/t/library/pge.t       (original)
+++ trunk/t/library/pge.t       Thu Nov  3 12:56:44 2005
@@ -14,7 +14,7 @@ t/library/pge.t - Grammar Engine tests
 
 use strict;
 
-use Parrot::Test tests => 9;
+use Parrot::Test tests => 19;
 use Parrot::Test::PGE;
 
 # 1-6
@@ -26,100 +26,19 @@ pgeglob_is  ('ana', '?n?*', "glob wildca
 pgeglob_isnt('an', '?n?*', "glob wildcards");
 
 # 7
-pir_output_is(<<'CODE', <<'OUT', "Glob, character classes");
+pgeglob_is  ('orange','[go]range','glob enumerated characters');
+pgeglob_is  ('grange','[go]range','glob enumerated characters');
+pgeglob_isnt('ggrange','[go]range','glob enumerated characters');
+pgeglob_isnt('borange','[go]range','glob enumerated characters');
+pgeglob_isnt('arange','[go]range','glob enumerated characters');
+pgeglob_is  ('a','[^0-9]','glob enumerated characters');
+pgeglob_isnt('4','[^0-9]','glob enumerated characters');
+pgeglob_isnt('0','[^0-9]','glob enumerated characters');
+pgeglob_isnt('9','[^0-9]','glob enumerated characters');
+pgeglob_isnt('4a','[^0-9]','glob enumerated characters');
+pgeglob_isnt('aa','[^0-9]','glob enumerated characters');
 
-.sub _main
-  load_bytecode "library/PGE.pbc"
-  load_bytecode "library/PGE/Glob.pir"
-
-  .local pmc rule
-  $P0 = find_global "PGE", "glob"
-  (rule, $P1, $P2) = $P0("[go]range")
-
-  $P1 = rule("orange")
-  if $P1 goto ok1
-  print "not "
-ok1:
-  print "ok1\n"
-
-  $P1 = rule("grange")
-  if $P1 goto ok2
-  print "not "
-ok2:
-  print "ok2\n"
-
-  $P1 = rule("ggrange")
-  unless $P1 goto ok3
-  print "not "
-ok3:
-  print "ok3\n"
-
-  $P1 = rule("borange")
-  unless $P1 goto ok4
-  print "not "
-ok4:
-  print "ok4\n"
-
-  $P1 = rule("arange")
-  unless $P1 goto ok5
-  print "not "
-ok5:
-  print "ok5\n"
-
-  (rule, $P1, $P2) = $P0("[^0-9]")
-
-  $P1 = rule("a")
-  if $P1 goto ok6
-  print "not "
-ok6:
-  print "ok6\n"
-
-  $P1 = rule("4")
-  unless $P1 goto ok7
-  print "not "
-ok7:
-  print "ok7\n"
-
-  $P1 = rule("0")
-  unless $P1 goto ok8
-  print "not "
-ok8:
-  print "ok8\n"
-
-  $P1 = rule("9")
-  unless $P1 goto ok9
-  print "not "
-ok9:
-  print "ok9\n"
-
-  $P1 = rule("4a")
-  unless $P1 goto ok10
-  print "not "
-ok10:
-  print "ok10\n"
-
-  $P1 = rule("aa")
-  unless $P1 goto ok11
-  print "not "
-ok11:
-  print "ok11\n"
-
-.end
-CODE
-ok1
-ok2
-ok3
-ok4
-ok5
-ok6
-ok7
-ok8
-ok9
-ok10
-ok11
-OUT
-
-# 8
+# 18
 pir_output_is(<<'CODE', <<'OUT', "Glob, alternate");
 
 .sub _main
@@ -213,7 +132,7 @@ ok10
 ok11
 OUT
 
-# 9
+# 19
 pir_output_is(<<'CODE', <<'OUT', "This made Parrot m4 fail");
 
 .sub 'test' :main

Reply via email to