cvsuser     04/05/23 23:30:13

  Modified:    languages/perl6/P6C IMCC.pm Rules.pm
               languages/perl6/P6C/IMCC Binop.pm
               languages/perl6/P6C/IMCC/ExtRegex Adapter.pm
  Removed:     languages/perl6/P6C/IMCC rule.pm
  Log:
  Remove original regex implementation.
  
  Revision  Changes    Path
  1.36      +1 -34     parrot/languages/perl6/P6C/IMCC.pm
  
  Index: IMCC.pm
  ===================================================================
  RCS file: /cvs/public/parrot/languages/perl6/P6C/IMCC.pm,v
  retrieving revision 1.35
  retrieving revision 1.36
  diff -u -w -r1.35 -r1.36
  --- IMCC.pm   8 May 2004 16:44:58 -0000       1.35
  +++ IMCC.pm   24 May 2004 06:30:05 -0000      1.36
  @@ -1617,7 +1617,7 @@
   
       # Rules have a set of undeclared parameters.
   
  -    if ($x->is_rule && ! $ENV{ORIGINAL_REGEXES}) {
  +    if ($x->is_rule) {
           unshift(@params, P6C::Rules::rule_vars());
       }
   
  @@ -2192,7 +2192,6 @@
   =cut
   
   package P6C::rule;
  -use P6C::IMCC::rule;
   use P6C::IMCC ':all';
   require P6C::Util;
   
  @@ -2202,36 +2201,6 @@
       return $ret;
   }
   
  -sub orig_regex_val {
  -    my $x = shift;
  -    my $fail = genlabel 'match_failed';
  -    my $precode;
  -    my $rxstr = gentmp 'str';
  -    my $rxpos = gentmp 'int';
  -    my $isback = gentmp 'int';
  -    my $fake_back = genlabel 'XXX';
  -    code(<<END);
  -     restore $rxstr
  -     rx_popindex $rxpos, $fake_back
  -END
  -    $x->{ctx}{rx_pos} = $rxpos;
  -    $x->{ctx}{rx_thing} = $rxstr;
  -    $x->{ctx}{rx_fail} = $fail;
  -    my $ret = $x->{ctx}{rx_matchobj} = $x->prepare_match_object;
  -    my $back = P6C::IMCC::rule::rx_val($x);
  -    my $end = genlabel 'end';
  -    fixup_label($fake_back, $back);
  -    code(<<END);
  -     rx_pushindex $rxpos
  -     goto $end
  -$fail:
  -     $ret = new PerlUndef
  -     rx_pushmark
  -$end:
  -END
  -    return scalar_in_context($ret, $x->{ctx});
  -}
  -
   =item B<val()> : rule -> match obj
   
   Generate code defining a rule
  @@ -2257,8 +2226,6 @@
   =cut
   
   sub val {
  -    return orig_regex_val(@_) if $ENV{ORIGINAL_REGEXES};
  -
       my ($rule) = @_;
   
       # FIXME
  
  
  
  1.2       +0 -4      parrot/languages/perl6/P6C/Rules.pm
  
  Index: Rules.pm
  ===================================================================
  RCS file: /cvs/public/parrot/languages/perl6/P6C/Rules.pm,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -w -r1.1 -r1.2
  --- Rules.pm  29 Jan 2004 05:51:54 -0000      1.1
  +++ Rules.pm  24 May 2004 06:30:05 -0000      1.2
  @@ -38,8 +38,6 @@
   sub adjust_rule {
       my ($func) = @_;
   
  -    return if $ENV{ORIGINAL_REGEXES};
  -
       if (! defined($func->params)) {
           $func->params(new P6C::signature);
       }
  @@ -85,7 +83,6 @@
   
   sub adjust_call {
       my ($call) = @_;
  -    return if $ENV{ORIGINAL_REGEXES};
       my $args = $call->args;
   
       my $LIT = 'P6C::IMCC::ExtRegex::literal';
  @@ -93,7 +90,6 @@
                       ($LIT->new(type => 'IntList')), # stack -- HACK!! FIXME!!
                       ($LIT->new(type => 'str')), # input
                       ($LIT->new(type => 'int')) ); # pos
  -    $DB::single = 1 unless $args->isa('P6C::ValueList');
       die unless $args->isa('P6C::ValueList');
   #    if ($args->isa('P6C::ValueList')) {
           unshift @{ $args->vals }, @argvals;
  
  
  
  1.19      +0 -47     parrot/languages/perl6/P6C/IMCC/Binop.pm
  
  Index: Binop.pm
  ===================================================================
  RCS file: /cvs/public/parrot/languages/perl6/P6C/IMCC/Binop.pm,v
  retrieving revision 1.18
  retrieving revision 1.19
  diff -u -w -r1.18 -r1.19
  --- Binop.pm  23 May 2004 05:12:47 -0000      1.18
  +++ Binop.pm  24 May 2004 06:30:09 -0000      1.19
  @@ -338,51 +338,6 @@
       return scalar_in_context($res, $ctx);
   }
   
  -sub sm_expr_pattern_orig {
  -    my ($e, $r, $ctx) = @_;
  -    my $val = $e->val;
  -    my $begin = genlabel 'startre';
  -    my $adv = $r->{ctx}{rx_fail} = genlabel 'advance';
  -    my $str = $r->{ctx}{rx_thing} = gentmp 'str';
  -    my $pos = $r->{ctx}{rx_pos} = gentmp 'int';
  -    my $basepos = gentmp 'int';
  -    my $fail = genlabel 'rx_fail';
  -    my $end = genlabel 'rx_end';
  -    code(<<END);
  -     rx_clearstack           # XXX: good old non-reentrant engine.
  -     rx_initstack
  -     $str = $val
  -
  -     $pos = 0
  -     $basepos = 0
  -     goto $begin
  -$adv:
  -     $pos = $basepos
  -     rx_advance $str, $pos, $fail
  -     inc $basepos
  -$begin:
  -END
  -    my $ret = $r->{ctx}{rx_matchobj} = $r->prepare_match_object;
  -    $r->{ctx}{rx_pos} = $pos;
  -    $r->{ctx}{rx_thing} = $str;
  -    $r->{ctx}{rx_fail} = $adv;
  -    P6C::IMCC::rule::rx_val($r);
  -    code(<<END);
  -     goto $end
  -$fail:
  -     $ret = new PerlUndef
  -$end:
  -END
  -    if ($ctx->type eq 'bool') {
  -     my $itmp = gentmp 'int';
  -     code(<<END);
  -     $itmp = defined $ret
  -END
  -     return primitive_in_context($itmp, 'int', $ctx);
  -    }
  -    return scalar_in_context($ret, $ctx);
  -}
  -
   =head1 sm_expr_pattern($expr,$R,$ctx)
   
   Generate code to match the string $expr against the regex $R.
  @@ -391,8 +346,6 @@
   
   my $namespace_ctr = 0;
   sub sm_expr_pattern {
  -    return &sm_expr_pattern_orig if $ENV{ORIGINAL_REGEXES};
  -
       my ($expr, $R, $ctx) = @_;
   
       my $namespace = "regex".++$namespace_ctr;
  
  
  
  1.3       +8 -4      parrot/languages/perl6/P6C/IMCC/ExtRegex/Adapter.pm
  
  Index: Adapter.pm
  ===================================================================
  RCS file: /cvs/public/parrot/languages/perl6/P6C/IMCC/ExtRegex/Adapter.pm,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -w -r1.2 -r1.3
  --- Adapter.pm        29 Apr 2004 07:01:15 -0000      1.2
  +++ Adapter.pm        24 May 2004 06:30:13 -0000      1.3
  @@ -117,10 +117,9 @@
       my ($self, $tree, $ctx) = @_;
       my $atom = $tree->atom;
   
  +
       my $R;
  -    if (UNIVERSAL::can($atom, 'rx_val')) {
  -        $R = $self->convert($atom);
  -    } elsif (ref($atom) eq 'ARRAY') {
  +    if (ref($atom) eq 'ARRAY') {
           # Codeblock
           $R = op('code' => [ $atom, $ctx ]);
       } elsif (UNIVERSAL::can($atom, 'type') && $atom->type eq 'PerlArray') {
  @@ -128,8 +127,13 @@
       } elsif ($atom->isa('P6C::sv_literal') && is_string($atom->type)) {
           $R = $self->convert_sv_literal($atom, $ctx);
       } else {
  +        my ($stem) = ref($atom) =~ /^P6C::(\w+)$/;
  +        if (defined($stem) && $self->can("convert_$stem")) {
  +            $R = $self->convert($atom);
  +        } else {
           $R = op('string' => [ $atom, $ctx ]);
       }
  +    }
   
       if ($tree->capture) {
           return op('group' => [ $R, ++$PAREN ]); # FIXME!!!
  
  
  

Reply via email to