Author: pmichaud
Date: Fri Oct  5 00:47:26 2007
New Revision: 21884

Modified:
   branches/pdd15oo/compilers/pge/PGE/Exp.pir
   branches/pdd15oo/compilers/pge/PGE/P6Regex.pir
   branches/pdd15oo/compilers/pge/PGE/Regex.pir

Log:
[pge]:
* Getting a bit closer by turning rule subs into rule methods.


Modified: branches/pdd15oo/compilers/pge/PGE/Exp.pir
==============================================================================
--- branches/pdd15oo/compilers/pge/PGE/Exp.pir  (original)
+++ branches/pdd15oo/compilers/pge/PGE/Exp.pir  Fri Oct  5 00:47:26 2007
@@ -133,13 +133,13 @@
     .local string returnop
     returnop = '.yield'
     code.emit(<<"        CODE", name, .INTERPINFO_CURRENT_SUB)
-      .sub '%0'
-          .param pmc mob
+      .sub '%0' :method
           .param pmc adverbs   :slurpy :named
           .const .Sub corou = '%0_corou'
+          .local pmc mob
           $P0 = corou
           $P0 = clone $P0
-          mob = $P0(mob, adverbs)
+          mob = $P0(self, adverbs)
           .return (mob)
       .end
       .sub '%0_corou'
@@ -159,14 +159,13 @@
     ##   Initial code for a rule that cannot be backtracked into.
     returnop = '.return'
     code.emit(<<"        CODE", name)
-      .sub '%0'
-          .param pmc mob          :unique_reg
+      .sub '%0' :method
           .param pmc adverbs      :unique_reg :slurpy :named
           .local string target    :unique_reg
-          .local pmc mfrom, mpos  :unique_reg
+          .local pmc mob, mfrom, mpos  :unique_reg
           .local int cpos, iscont :unique_reg
-          $P0 = get_global ['PGE'], 'Match'
-          (mob, cpos, target, mfrom, mpos, iscont) = $P0.'new'(mob, adverbs 
:flat :named)
+          $P0 = get_hll_global ['PGE'], 'Match'
+          (mob, cpos, target, mfrom, mpos, iscont) = $P0.'new'(self, adverbs 
:flat :named)
         CODE
 
   code_body:

Modified: branches/pdd15oo/compilers/pge/PGE/P6Regex.pir
==============================================================================
--- branches/pdd15oo/compilers/pge/PGE/P6Regex.pir      (original)
+++ branches/pdd15oo/compilers/pge/PGE/P6Regex.pir      Fri Oct  5 00:47:26 2007
@@ -133,8 +133,7 @@
 
 .namespace [ 'PGE::Grammar' ]
 
-.sub 'regex'
-    .param pmc mob
+.sub 'regex' :method
     .param pmc adverbs         :slurpy :named
 
     .local string stop
@@ -145,7 +144,7 @@
 
     stop = adverbs['stop']
     push stopstack, stop
-    match = optable.'parse'(mob, 'stop'=>stop)
+    match = optable.'parse'(self, 'stop'=>stop)
     $S0 = pop stopstack
 
     .return (match)

Modified: branches/pdd15oo/compilers/pge/PGE/Regex.pir
==============================================================================
--- branches/pdd15oo/compilers/pge/PGE/Regex.pir        (original)
+++ branches/pdd15oo/compilers/pge/PGE/Regex.pir        Fri Oct  5 00:47:26 2007
@@ -33,15 +33,14 @@
 
 =cut
 
-.sub 'ident'
-    .param pmc mob
+.sub 'ident' :method
     .param pmc adverbs         :slurpy :named
     .local string target
-    .local pmc mfrom, mpos
+    .local pmc mob, mfrom, mpos
     .local int pos, lastpos
 
     $P0 = get_hll_global ['PGE'], 'Match'
-    (mob, pos, target) = $P0.'new'(mob)
+    (mob, pos, target) = $P0.'new'(self)
 
     lastpos = length target
     $S0 = substr target, pos, 1
@@ -62,11 +61,11 @@
 
 =cut
 
-.sub "null"
-    .param pmc mob
+.sub "null" :method
+    .local pmc mob
     .local int pos
     $P0 = get_hll_global ['PGE'], 'Match'
-    (mob, pos) = $P0.'new'(mob)
+    (mob, pos) = $P0.'new'(self)
     mob.'to'(pos)
     .return (mob)
 .end
@@ -268,17 +267,16 @@
 
 =cut
 
-.sub "ws"
-    .param pmc mob
+.sub "ws" :method
     .local string target
-    .local pmc mfrom, mpos
+    .local pmc mob, mfrom, mpos
     .local int rep, pos, lastpos
     .local string nextchars
     .const .Sub corou = "ws_corou"
     nextchars = ""
   ws_1:
     $P0 = get_hll_global ['PGE'], 'Match'
-    (mob, pos, target, mfrom, mpos) = $P0.'new'(mob)
+    (mob, pos, target, mfrom, mpos) = $P0.'new'(self)
     lastpos = length target
     pos = mfrom
     if pos >= lastpos goto found

Reply via email to