Platon Technologies
not logged in Login Registration
EnglishSlovak
open source software development celebrating 10 years of open source development! Friday, October 16, 2026

Diff for libco/utils/copp between version 1.1 and 1.2

version 1.1, 2003/02/15 15:23:55 version 1.2, 2003/02/18 10:42:09
Line 21  sub addid {
Line 21  sub addid {
   
 sub meth {  sub meth {
         my $in = shift;          my $in = shift;
         $_ = $in;          $_ = $in; my %msg; my %fwd; my %tab;
         my %msg;  
         my %fwd;  
         my %tab;  
         while (s/CO_METH_INI$ws*\((.*?),(.*?)(?:,(.*?)|)\)//) {          while (s/CO_METH_INI$ws*\((.*?),(.*?)(?:,(.*?)|)\)//) {
                 my $o = $1;                  my $o = $1;
                 my $m = $2;                  my $m = $2;
Line 46  sub meth {
Line 43  sub meth {
                 $msg{$o} = "\tCO_MH_BEGIN;\n" unless ($msg{$o});                  $msg{$o} = "\tCO_MH_BEGIN;\n" unless ($msg{$o});
                 $msg{$o} .= "\tCO_MH_CASE (message, $m) {\n\t\treturn "                  $msg{$o} .= "\tCO_MH_CASE (message, $m) {\n\t\treturn "
                         ."${o}_$m (this, self, message, ap);\n\t}\n";                          ."${o}_$m (this, self, message, ap);\n\t}\n";
                 $fwd{$o} .= "co_v ${o}_$m ($o this, co self, co_id_t message, va_list ap);\n";                  $fwd{$o} .= "co_v ${o}_$m ($o this, co self, co_id_t message, va_list"
                 $tab{$o} .= "\t__my_id_add (COM ($m), \"$m\", ${o}_$m);\n";                          ." ap);\n";
         }                  $tab{$o} .= "\tco_meth_add (o -> __co_meth_ar, COM ($m),"
         while (s/CO_ATTR$ws*\((.*?), (.*?), (.*?)\)//) {                          ." (co_msg_h) ${o}_$m);\n";
                 my $o = $1;          }
                 my $t = $2;          my $o;
                 my $m = $3;          while (s/(CO_OBJECT|CO_ATTR)$ws*\((.*?)\)//) {
                 $o =~ s/^$ws+|$ws+$//g;                  my $match = $1;
                 $t =~ s/^$ws+|$ws+$//g;                  if ($match eq "CO_OBJECT") {
                 $m =~ s/^$ws+|$ws+$//g;                          $o = $2;
                 $msg{$o} = "\tCO_MH_BEGIN;\n" unless ($msg{$o});                  } else {
                 $msg{$o} .= "\tCO_MH_CASE (message, $m) {\n\t\tCO_RETURN (${t}_p, "                          my ($t, $m) = split /,/, $2;
                         ."&(this -> $m));\n\t}\n";                          #my $m = $2;
                 $fwd{$o} .= "co_v ${o}_$m (co this, co self, co_id_t message, va_list ap);\n";                          $o =~ s/^$ws+|$ws+$//g;
                           $t =~ s/^$ws+|$ws+$//g;
                           $m =~ s/^$ws+|$ws+$//g;
                           $msg{$o} = "\tCO_MH_BEGIN;\n" unless ($msg{$o});
                           $msg{$o} .= "\tCO_MH_CASE (message, $m) {\n\t\tCO_RETURN (${t}_p, "
                                   ."&(this -> $m));\n\t}\n";
                           #$fwd{$o} .= "co_v ${o}_$m (co this, co self, co_id_t message, va_list"
                           #       ." ap);\n";
                           $tab{$o} .= "\tco_meth_add (o -> __co_meth_ar, COM ($m),"
                                   ." (co_msg_h) ${o}_$m);\n";
                           $fwd{$o} .= "co_v ${o}_$m ($o this, co self, co_id_t message, va_list"
                                   ." ap)\n{\n\tCO_RETURN (${t}_p, &(this -> $m));\n}\n";
                   }
         }          }
         for (keys %msg) {          for (keys %msg) {
                 print OUT "\n";                  print OUT "\n";
                 print OUT $fwd{$_}."\n";                  print OUT $fwd{$_}."\n";
                 print OUT "static co_v ${_}_msg (co __this, co self, co_id_t message, va_list ap) {\n";                  print OUT "/* static co_v ${_}_msg (co __this, co self, co_id_t"
                           ." message, va_list ap) {\n";
                 print OUT "$_ this = __this;\n";                  print OUT "$_ this = __this;\n";
                 print OUT $msg{$_};                  print OUT $msg{$_};
                 if ($in =~ /CO_MSG_DEFAULT$ws*\($ws*$_$ws*,(.*?)\)/) {                  if ($in =~ /CO_MSG_DEFAULT$ws*\($ws*$_$ws*,(.*?)\)/) {
Line 72  sub meth {
Line 82  sub meth {
                                 ."($1, self, message, ap);\n\t}\n";                                  ."($1, self, message, ap);\n\t}\n";
                 }                  }
                 print OUT "\tCO_RETURN (int, 0xBAD0);\n";                  print OUT "\tCO_RETURN (int, 0xBAD0);\n";
                 print OUT "}\n";                  print OUT "} */\n";
                 print OUT "\n/*static void init_obj_type (void) {\n";                  print OUT "\nstatic void ${_}_meth_ar_init (co object) {\n";
                   print OUT "\tco_o_head_full o = object;\n";
                   print OUT "\to -> __co_meth_ar = co_meth_array_new ();\n";
                   print OUT "\tco_meth_add (o -> __co_meth_ar, COM (has_method),"
                           ." co_has_method);\n";
                 print OUT $tab{$_};                  print OUT $tab{$_};
                 print OUT "}*/\n\n";                  print OUT "}\n\n";
         }          }
         #return \%msg;          #return \%msg;
 }  }
Line 198  sub meta {
Line 212  sub meta {
         &append ($in, qr/\bCO_CNT$ws*\(.*?,.*?,.*?,(.*?)\)/, \@list, "M");          &append ($in, qr/\bCO_CNT$ws*\(.*?,.*?,.*?,(.*?)\)/, \@list, "M");
         &append ($in, qr/\bCO_M$ws*\(.*?,(.*?)[,)]/, \@list, "M");          &append ($in, qr/\bCO_M$ws*\(.*?,(.*?)[,)]/, \@list, "M");
         #&append ($in, qr/CO_ATTR$ws*\(.*?,(.*?)[,)]/, \@list, "M");          #&append ($in, qr/CO_ATTR$ws*\(.*?,(.*?)[,)]/, \@list, "M");
         &append ($in, qr/\bCO_ATTR$ws*\(.*?,.*?,(.*?)[,)]/, \@list, "M");          &append ($in, qr/\bCO_ATTR$ws*\(.*?,(.*?)[,)]/, \@list, "M");
         &append ($in, qr/\bCO_METH$ws*\(.*?,(.*?)[,)]/, \@list, "M");          &append ($in, qr/\bCO_METH$ws*\(.*?,(.*?)[,)]/, \@list, "M");
         &append ($in, qr/\bCO_METH$ws*\((.*?),/, \@list, "T");          &append ($in, qr/\bCO_METH$ws*\((.*?),/, \@list, "T");
         &append ($in, qr/\bCO_OBJECT$ws*\((.*?)\)/, \@list, "T");          &append ($in, qr/\bCO_OBJECT$ws*\((.*?)\)/, \@list, "T");
Line 218  sub meta {
Line 232  sub meta {
                 &append ($in, qr/\bM$ws*\(.*?,(.*?)[,)]/, \@list, "M");                  &append ($in, qr/\bM$ws*\(.*?,(.*?)[,)]/, \@list, "M");
                 &append ($in, qr/\bE$ws*\(.*?,(.*?)[,)]/, \@list, "E");                  &append ($in, qr/\bE$ws*\(.*?,(.*?)[,)]/, \@list, "E");
         }          }
           &addid (\@list, "Mhas_method"); # FIXME?
   
         print OUT "#include <co_object.h>\n";          print OUT "#include <co_object.h>\n";
         print OUT "#include <co_super.h>\n";          print OUT "#include <co_super.h>\n";

Legend:
Removed from v.1.1  
changed lines
  Added in v.1.2

Platon Group <platon@platon.org> http://platon.org/
Copyright © 2002-2006 Platon Group
Site powered by Metafox CMS
Go to Top