changeset 871:152b952da3e3

emit Gearef
author anatofuz <anatofuz@cr.ie.u-ryukyu.ac.jp>
date Sat, 23 Jan 2021 15:55:49 +0900
parents 40437e1bd11b
children d9b2def9c904
files src/parallel_execution/generate_stub.pl
diffstat 1 files changed, 16 insertions(+), 6 deletions(-) [+]
line wrap: on
line diff
--- a/src/parallel_execution/generate_stub.pl	Sat Jan 23 15:34:47 2021 +0900
+++ b/src/parallel_execution/generate_stub.pl	Sat Jan 23 15:55:49 2021 +0900
@@ -5,6 +5,7 @@
 use Getopt::Long;
 use File::Path qw/make_path/;
 use File::Basename qw/basename dirname/;
+#use DDP { deparse => 1};
 
 use FindBin;
 use lib "$FindBin::Bin/lib";
@@ -728,7 +729,6 @@
                 if (!$args){
                     $newArgs = "struct Context *${context_name}";
                 }
-                #p $args;
                 while($args) {
                     if ($args =~ s/(^\s*,\s*)//) {
                         $newArgs .= $1;
@@ -871,6 +871,16 @@
                       print $fd "${prev}${context_name}\->task->data[${context_name}\->task->odg+$i] = (union Data*)$dataGears[$inputCount+$i];\n";
                   }
                 }
+
+                my $parsed = {
+                   prev    => $prev,
+                   next    => $instance,
+                   method  => $method,
+                   tmpArgs => $args,
+                };
+                my ($gen_line, ) = generateInterfaceMeta($_, $codeGearName, $filename, $parsed, \%filename2EachCodeGearArgs, \%localVarType, "${context_name}->task");
+                print $fd $gen_line;
+
                 my $putTask = << "EOFEOF";
                 ${prev}element = &ALLOCATE(${context_name}, Element)->Element;
                 ${prev}element->data = (union Data*)${context_name}\->task;
@@ -890,8 +900,8 @@
                    method  => $3,
                    tmpArgs => $4,
                 };
-                #my ($line, $currentCodeGearName, $filename, $fd, $localVarType, $parsed, $filename2args) = @_;
-                print $fd generateInterfaceMeta($_, $codeGearName, $filename, $parsed, \%filename2EachCodeGearArgs, \%localVarType);
+                my @gen_lines  = generateInterfaceMeta($_, $codeGearName, $filename, $parsed, \%filename2EachCodeGearArgs, \%localVarType, $context_name);
+                print $fd join "\n", @gen_lines;
                 next;
             } elsif(/^(.*)par goto (\w+)\((.*)\);/) {
                 debug_print("generateDataGear",__LINE__, $_) if $opt_debug;
@@ -1198,7 +1208,7 @@
 }
 
 sub generateInterfaceMeta {
-  my ($line, $currentCodeGearName, $filename, $parsed, $filename2args, $localVarType) = @_;
+  my ($line, $currentCodeGearName, $filename, $parsed, $filename2args, $localVarType, $context_name) = @_;
 
   my $return_line;
 
@@ -1314,6 +1324,6 @@
       }
       $i++;
   }
-  $return_line .= "${prev}goto meta(${context_name}, $next->$method);\n";
-  return $return_line;
+  my $goto_meta = "${prev}goto meta(${context_name}, $next->$method);\n";
+  return ($return_line, $goto_meta);
 }