annotate src/parallel_execution/generate_stub.pl @ 254:edb3aff688d0

fix generator CLI
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Fri, 27 Jan 2017 10:10:09 +0900
parents ebc13549394c
children 79bbe2c63fb0
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
194
081607dcf893 create generate_stub.pl
mir3636
parents:
diff changeset
1 #!/usr/bin/perl
081607dcf893 create generate_stub.pl
mir3636
parents:
diff changeset
2
250
8a8963ce9858 fix generate_stub
mir3636
parents: 249
diff changeset
3 use strict;
254
edb3aff688d0 fix generator CLI
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 253
diff changeset
4 use Getopt::Std;
250
8a8963ce9858 fix generate_stub
mir3636
parents: 249
diff changeset
5
194
081607dcf893 create generate_stub.pl
mir3636
parents:
diff changeset
6 # interface.cbc
081607dcf893 create generate_stub.pl
mir3636
parents:
diff changeset
7 # typedef struct Worker {
081607dcf893 create generate_stub.pl
mir3636
parents:
diff changeset
8 # int id;
081607dcf893 create generate_stub.pl
mir3636
parents:
diff changeset
9 # struct Context* contexts;
081607dcf893 create generate_stub.pl
mir3636
parents:
diff changeset
10 # enum Code execute;
081607dcf893 create generate_stub.pl
mir3636
parents:
diff changeset
11 # enum Code taskSend;
081607dcf893 create generate_stub.pl
mir3636
parents:
diff changeset
12 # enum Code taskRecive;
081607dcf893 create generate_stub.pl
mir3636
parents:
diff changeset
13 # enum Code shutdown;
081607dcf893 create generate_stub.pl
mir3636
parents:
diff changeset
14 # struct Queue* tasks;
081607dcf893 create generate_stub.pl
mir3636
parents:
diff changeset
15 # } Worker;
081607dcf893 create generate_stub.pl
mir3636
parents:
diff changeset
16
254
edb3aff688d0 fix generator CLI
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 253
diff changeset
17 our($opt_o,$opt_h);
edb3aff688d0 fix generator CLI
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 253
diff changeset
18 getopts('o:h');
edb3aff688d0 fix generator CLI
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 253
diff changeset
19
edb3aff688d0 fix generator CLI
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 253
diff changeset
20 for my $fn (@ARGV) {
249
afa1e02e4386 fix generate stub
mir3636
parents: 243
diff changeset
21 &getDataGear($fn);
afa1e02e4386 fix generate stub
mir3636
parents: 243
diff changeset
22 &generateDataGear($fn);
194
081607dcf893 create generate_stub.pl
mir3636
parents:
diff changeset
23 }
081607dcf893 create generate_stub.pl
mir3636
parents:
diff changeset
24
250
8a8963ce9858 fix generate_stub
mir3636
parents: 249
diff changeset
25 my %var;
8a8963ce9858 fix generate_stub
mir3636
parents: 249
diff changeset
26 my %type;
8a8963ce9858 fix generate_stub
mir3636
parents: 249
diff changeset
27 my %code;
8a8963ce9858 fix generate_stub
mir3636
parents: 249
diff changeset
28 my %dataGearVar;
8a8963ce9858 fix generate_stub
mir3636
parents: 249
diff changeset
29 my %dataGear;
8a8963ce9858 fix generate_stub
mir3636
parents: 249
diff changeset
30 my %dataGearName;
253
ebc13549394c generate stubArgs
mir3636
parents: 252
diff changeset
31 my $implementation;
ebc13549394c generate stubArgs
mir3636
parents: 252
diff changeset
32 my $interface;
250
8a8963ce9858 fix generate_stub
mir3636
parents: 249
diff changeset
33
194
081607dcf893 create generate_stub.pl
mir3636
parents:
diff changeset
34 sub getDataGear {
081607dcf893 create generate_stub.pl
mir3636
parents:
diff changeset
35 my ($filename) = @_;
253
ebc13549394c generate stubArgs
mir3636
parents: 252
diff changeset
36 my ($codeGearName, $name, $inTypedef);
194
081607dcf893 create generate_stub.pl
mir3636
parents:
diff changeset
37 open my $fd,"<",$filename or die("can't open $filename $!");
081607dcf893 create generate_stub.pl
mir3636
parents:
diff changeset
38 while (<$fd>) {
081607dcf893 create generate_stub.pl
mir3636
parents:
diff changeset
39 if (! $inTypedef) {
081607dcf893 create generate_stub.pl
mir3636
parents:
diff changeset
40 if (/^typedef struct (\w+) {/) {
081607dcf893 create generate_stub.pl
mir3636
parents:
diff changeset
41 $inTypedef = 1;
081607dcf893 create generate_stub.pl
mir3636
parents:
diff changeset
42 $name = $1;
081607dcf893 create generate_stub.pl
mir3636
parents:
diff changeset
43 $dataGear{$name} = $_;
253
ebc13549394c generate stubArgs
mir3636
parents: 252
diff changeset
44 $code{$name} = [];
249
afa1e02e4386 fix generate stub
mir3636
parents: 243
diff changeset
45 } elsif (/^(\w+)\* create(\w+)\(/) {
afa1e02e4386 fix generate stub
mir3636
parents: 243
diff changeset
46 if (defined $interface) {
afa1e02e4386 fix generate stub
mir3636
parents: 243
diff changeset
47 die "duplicate interface $interface\n";
afa1e02e4386 fix generate stub
mir3636
parents: 243
diff changeset
48 }
afa1e02e4386 fix generate stub
mir3636
parents: 243
diff changeset
49 $interface = $1;
250
8a8963ce9858 fix generate_stub
mir3636
parents: 249
diff changeset
50 $implementation = $2;
8a8963ce9858 fix generate_stub
mir3636
parents: 249
diff changeset
51 if ( -f "$interface.cbc") {
8a8963ce9858 fix generate_stub
mir3636
parents: 249
diff changeset
52 &getDataGear("$interface.cbc");
8a8963ce9858 fix generate_stub
mir3636
parents: 249
diff changeset
53 }
226
68c03e7057d9 get arg
mir3636
parents: 201
diff changeset
54 }
194
081607dcf893 create generate_stub.pl
mir3636
parents:
diff changeset
55 next;
081607dcf893 create generate_stub.pl
mir3636
parents:
diff changeset
56 }
249
afa1e02e4386 fix generate stub
mir3636
parents: 243
diff changeset
57 # gather type name and type
194
081607dcf893 create generate_stub.pl
mir3636
parents:
diff changeset
58 $dataGear{$name} .= $_;
195
bd96dffaa76a generate_stub
mir3636
parents: 194
diff changeset
59 if (/(\w+);$/ and !/^} (\w+)/) {
250
8a8963ce9858 fix generate_stub
mir3636
parents: 249
diff changeset
60 my $tmp = $1 . "\n";
200
207aff30ed34 fix generate_stub.pl
mir3636
parents: 195
diff changeset
61 if (/{/) {
207aff30ed34 fix generate_stub.pl
mir3636
parents: 195
diff changeset
62 $tmp = "{" . $';
201
mir3636
parents: 200
diff changeset
63 $tmp =~ s/;$//;
200
207aff30ed34 fix generate_stub.pl
mir3636
parents: 195
diff changeset
64 }
207aff30ed34 fix generate_stub.pl
mir3636
parents: 195
diff changeset
65 $var{$name} .= $tmp;
195
bd96dffaa76a generate_stub
mir3636
parents: 194
diff changeset
66 $tmp = $`;
bd96dffaa76a generate_stub
mir3636
parents: 194
diff changeset
67 $tmp =~ s/^\s*//;
bd96dffaa76a generate_stub
mir3636
parents: 194
diff changeset
68 $type{$name} .= $tmp . "\n";
250
8a8963ce9858 fix generate_stub
mir3636
parents: 249
diff changeset
69 } elsif (/\_\_code (\w+)\(/) {
8a8963ce9858 fix generate_stub
mir3636
parents: 249
diff changeset
70 push $code{$name}, $1;
8a8963ce9858 fix generate_stub
mir3636
parents: 249
diff changeset
71 }
194
081607dcf893 create generate_stub.pl
mir3636
parents:
diff changeset
72 if (/^}/) {
081607dcf893 create generate_stub.pl
mir3636
parents:
diff changeset
73 $inTypedef = 0;
081607dcf893 create generate_stub.pl
mir3636
parents:
diff changeset
74 }
081607dcf893 create generate_stub.pl
mir3636
parents:
diff changeset
75 }
081607dcf893 create generate_stub.pl
mir3636
parents:
diff changeset
76 }
081607dcf893 create generate_stub.pl
mir3636
parents:
diff changeset
77
250
8a8963ce9858 fix generate_stub
mir3636
parents: 249
diff changeset
78 sub generateStub {
251
0ab52d6e2fd9 fix sub generateStub
mir3636
parents: 250
diff changeset
79 my($fd,$prevCodeGearName,$dataGearName) = @_;
250
8a8963ce9858 fix generate_stub
mir3636
parents: 249
diff changeset
80 print $fd "__code ", $prevCodeGearName ,"_stub (struct Context* context) {\n";
251
0ab52d6e2fd9 fix sub generateStub
mir3636
parents: 250
diff changeset
81 print $fd $dataGearName;
250
8a8963ce9858 fix generate_stub
mir3636
parents: 249
diff changeset
82 print $fd "\n} \n\n";
251
0ab52d6e2fd9 fix sub generateStub
mir3636
parents: 250
diff changeset
83 return 1;
250
8a8963ce9858 fix generate_stub
mir3636
parents: 249
diff changeset
84 }
8a8963ce9858 fix generate_stub
mir3636
parents: 249
diff changeset
85
253
ebc13549394c generate stubArgs
mir3636
parents: 252
diff changeset
86 sub generateStubArgs {
ebc13549394c generate stubArgs
mir3636
parents: 252
diff changeset
87 my($codeGearName, $varName, $typeName, $typeField, $interface) = @_;
ebc13549394c generate stubArgs
mir3636
parents: 252
diff changeset
88 push @{$dataGearVar{$codeGearName}},$varName;
ebc13549394c generate stubArgs
mir3636
parents: 252
diff changeset
89 if ($typeField ne $varName) {
ebc13549394c generate stubArgs
mir3636
parents: 252
diff changeset
90 $dataGearName{$codeGearName} .= "\t$typeName* $varName = ($typeName*)GearImpl(context, $typeName, $varName);\n";
ebc13549394c generate stubArgs
mir3636
parents: 252
diff changeset
91 # print STDOUT "$codeGearName \t$typeName* $varName = ($typeName*)GearImpl(context, $typeName, $varName);\n";
ebc13549394c generate stubArgs
mir3636
parents: 252
diff changeset
92 } else {
ebc13549394c generate stubArgs
mir3636
parents: 252
diff changeset
93 for my $ivar ($var{$interface}) {
ebc13549394c generate stubArgs
mir3636
parents: 252
diff changeset
94 if ($varName eq $ivar) {
ebc13549394c generate stubArgs
mir3636
parents: 252
diff changeset
95 $dataGearName{$codeGearName} .= "\t$typeName* $varName = Gearef(context, $interface)->$varName;\n";
ebc13549394c generate stubArgs
mir3636
parents: 252
diff changeset
96 # print STDOUT "$codeGearName \t$typeName* $varName = Gearef(context, $interface)->$varName;\n";
ebc13549394c generate stubArgs
mir3636
parents: 252
diff changeset
97 return;
ebc13549394c generate stubArgs
mir3636
parents: 252
diff changeset
98 }
ebc13549394c generate stubArgs
mir3636
parents: 252
diff changeset
99 }
ebc13549394c generate stubArgs
mir3636
parents: 252
diff changeset
100 $dataGearName{$codeGearName} .= "\t$typeName* $varName = Gearef(context, $typeName)->$typeField;\n";
ebc13549394c generate stubArgs
mir3636
parents: 252
diff changeset
101 # print STDOUT "$codeGearName \t$typeName* $varName = Gearef(context, $typeName)->$typeField;\n";
ebc13549394c generate stubArgs
mir3636
parents: 252
diff changeset
102 }
ebc13549394c generate stubArgs
mir3636
parents: 252
diff changeset
103 }
ebc13549394c generate stubArgs
mir3636
parents: 252
diff changeset
104
194
081607dcf893 create generate_stub.pl
mir3636
parents:
diff changeset
105 sub generateDataGear {
249
afa1e02e4386 fix generate stub
mir3636
parents: 243
diff changeset
106 my ($filename) = @_;
afa1e02e4386 fix generate stub
mir3636
parents: 243
diff changeset
107 open my $in,"<",$filename or die("can't open $filename $!");
254
edb3aff688d0 fix generator CLI
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 253
diff changeset
108
edb3aff688d0 fix generator CLI
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 253
diff changeset
109 my $fn;
edb3aff688d0 fix generator CLI
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 253
diff changeset
110 if ($opt_o) {
edb3aff688d0 fix generator CLI
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 253
diff changeset
111 $fn = $opt_o;
edb3aff688d0 fix generator CLI
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 253
diff changeset
112 } else {
edb3aff688d0 fix generator CLI
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 253
diff changeset
113 my $fn1 = $filename;
edb3aff688d0 fix generator CLI
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 253
diff changeset
114 $fn1 =~ s/\.cbc/.c/;
edb3aff688d0 fix generator CLI
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 253
diff changeset
115 my $i = 1;
edb3aff688d0 fix generator CLI
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 253
diff changeset
116 $fn = $fn1;
edb3aff688d0 fix generator CLI
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 253
diff changeset
117 while ( -f $fn) {
edb3aff688d0 fix generator CLI
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 253
diff changeset
118 $fn = "$fn1.$i";
edb3aff688d0 fix generator CLI
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 253
diff changeset
119 $i++;
edb3aff688d0 fix generator CLI
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 253
diff changeset
120 }
250
8a8963ce9858 fix generate_stub
mir3636
parents: 249
diff changeset
121 }
249
afa1e02e4386 fix generate stub
mir3636
parents: 243
diff changeset
122 open my $fd,">",$fn or die("can't write $fn $!");
254
edb3aff688d0 fix generator CLI
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 253
diff changeset
123
249
afa1e02e4386 fix generate stub
mir3636
parents: 243
diff changeset
124 my $prevCodeGearName;
250
8a8963ce9858 fix generate_stub
mir3636
parents: 249
diff changeset
125 my $inTypedef = 0;
8a8963ce9858 fix generate_stub
mir3636
parents: 249
diff changeset
126 my %stub;
251
0ab52d6e2fd9 fix sub generateStub
mir3636
parents: 250
diff changeset
127 my $codeGearName;
254
edb3aff688d0 fix generator CLI
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 253
diff changeset
128
249
afa1e02e4386 fix generate stub
mir3636
parents: 243
diff changeset
129 while (<$in>) {
afa1e02e4386 fix generate stub
mir3636
parents: 243
diff changeset
130 if (! $inTypedef) {
afa1e02e4386 fix generate stub
mir3636
parents: 243
diff changeset
131 if (/^typedef struct (\w+) {/) {
afa1e02e4386 fix generate stub
mir3636
parents: 243
diff changeset
132 $inTypedef = 1;
253
ebc13549394c generate stubArgs
mir3636
parents: 252
diff changeset
133 } elsif (/^\_\_code (\w+)\((.*)\)(.*)/) {
251
0ab52d6e2fd9 fix sub generateStub
mir3636
parents: 250
diff changeset
134 $codeGearName = $1;
253
ebc13549394c generate stubArgs
mir3636
parents: 252
diff changeset
135 my $args = $2;
ebc13549394c generate stubArgs
mir3636
parents: 252
diff changeset
136 my $tail = $3;
250
8a8963ce9858 fix generate_stub
mir3636
parents: 249
diff changeset
137 if ($codeGearName =~ /_stub$/) {
8a8963ce9858 fix generate_stub
mir3636
parents: 249
diff changeset
138 $stub{$codeGearName} = 1;
8a8963ce9858 fix generate_stub
mir3636
parents: 249
diff changeset
139 print $fd $_;
8a8963ce9858 fix generate_stub
mir3636
parents: 249
diff changeset
140 next;
8a8963ce9858 fix generate_stub
mir3636
parents: 249
diff changeset
141 }
249
afa1e02e4386 fix generate stub
mir3636
parents: 243
diff changeset
142 if (defined $prevCodeGearName) {
250
8a8963ce9858 fix generate_stub
mir3636
parents: 249
diff changeset
143 if (defined $stub{$prevCodeGearName."_stub"}) {
8a8963ce9858 fix generate_stub
mir3636
parents: 249
diff changeset
144 undef $prevCodeGearName;
8a8963ce9858 fix generate_stub
mir3636
parents: 249
diff changeset
145 print $fd $_;
8a8963ce9858 fix generate_stub
mir3636
parents: 249
diff changeset
146 next;
8a8963ce9858 fix generate_stub
mir3636
parents: 249
diff changeset
147 }
253
ebc13549394c generate stubArgs
mir3636
parents: 252
diff changeset
148 $stub{$prevCodeGearName."_stub"} = &generateStub($fd,$prevCodeGearName,$dataGearName{$prevCodeGearName});
249
afa1e02e4386 fix generate stub
mir3636
parents: 243
diff changeset
149 }
253
ebc13549394c generate stubArgs
mir3636
parents: 252
diff changeset
150 $prevCodeGearName = $codeGearName;
ebc13549394c generate stubArgs
mir3636
parents: 252
diff changeset
151 $dataGearVar{$codeGearName} = [];
ebc13549394c generate stubArgs
mir3636
parents: 252
diff changeset
152 my $newArgs = "";
ebc13549394c generate stubArgs
mir3636
parents: 252
diff changeset
153 while($args) {
ebc13549394c generate stubArgs
mir3636
parents: 252
diff changeset
154 if ($args =~ s/(^\s*,\s*)//) {
ebc13549394c generate stubArgs
mir3636
parents: 252
diff changeset
155 $newArgs .= $1;
ebc13549394c generate stubArgs
mir3636
parents: 252
diff changeset
156 }
ebc13549394c generate stubArgs
mir3636
parents: 252
diff changeset
157 # replace __code next
ebc13549394c generate stubArgs
mir3636
parents: 252
diff changeset
158 if ($args =~ s/^\_\_code\s(\w+)\([^)]*\)//) {
ebc13549394c generate stubArgs
mir3636
parents: 252
diff changeset
159 my $next = $1;
ebc13549394c generate stubArgs
mir3636
parents: 252
diff changeset
160 my @args = split(/,/,$2);
ebc13549394c generate stubArgs
mir3636
parents: 252
diff changeset
161 $newArgs .= "enum Code $next";
ebc13549394c generate stubArgs
mir3636
parents: 252
diff changeset
162 for my $arg (@args) {
ebc13549394c generate stubArgs
mir3636
parents: 252
diff changeset
163 $arg =~ s/^\s*//;
ebc13549394c generate stubArgs
mir3636
parents: 252
diff changeset
164 $arg =~ s/^(struct|union) (\w+)(\*)+\s(\w+)//;
ebc13549394c generate stubArgs
mir3636
parents: 252
diff changeset
165 my $structType = $1;
ebc13549394c generate stubArgs
mir3636
parents: 252
diff changeset
166 my $typeName = $2;
ebc13549394c generate stubArgs
mir3636
parents: 252
diff changeset
167 my $varName = $4;
ebc13549394c generate stubArgs
mir3636
parents: 252
diff changeset
168 my $typeField = lcfirst($typeName);
ebc13549394c generate stubArgs
mir3636
parents: 252
diff changeset
169 &generateStubArgs($codeGearName, $varName, $typeName, $typeField, $interface);
ebc13549394c generate stubArgs
mir3636
parents: 252
diff changeset
170 }
ebc13549394c generate stubArgs
mir3636
parents: 252
diff changeset
171 } elsif ($args =~ s/^(struct|union) (\w+)(\*)+\s(\w+)//) {
ebc13549394c generate stubArgs
mir3636
parents: 252
diff changeset
172 my $structType = $1;
ebc13549394c generate stubArgs
mir3636
parents: 252
diff changeset
173 my $typeName = $2;
ebc13549394c generate stubArgs
mir3636
parents: 252
diff changeset
174 my $varName = $4;
ebc13549394c generate stubArgs
mir3636
parents: 252
diff changeset
175 my $typeField = lcfirst($typeName);
ebc13549394c generate stubArgs
mir3636
parents: 252
diff changeset
176 $newArgs .= $&;
ebc13549394c generate stubArgs
mir3636
parents: 252
diff changeset
177 &generateStubArgs($codeGearName, $varName, $typeName, $typeField, $interface);
ebc13549394c generate stubArgs
mir3636
parents: 252
diff changeset
178 }
ebc13549394c generate stubArgs
mir3636
parents: 252
diff changeset
179 }
ebc13549394c generate stubArgs
mir3636
parents: 252
diff changeset
180 $dataGearName{$codeGearName} .= "\tgoto $codeGearName(context";
ebc13549394c generate stubArgs
mir3636
parents: 252
diff changeset
181 for my $arg ( @{$dataGearVar{$codeGearName}}) {
ebc13549394c generate stubArgs
mir3636
parents: 252
diff changeset
182 $dataGearName{$codeGearName} .= ", $arg";
ebc13549394c generate stubArgs
mir3636
parents: 252
diff changeset
183 }
ebc13549394c generate stubArgs
mir3636
parents: 252
diff changeset
184 $dataGearName{$codeGearName} .= ");";
ebc13549394c generate stubArgs
mir3636
parents: 252
diff changeset
185 print $fd "__code $codeGearName($newArgs)$tail\n";
ebc13549394c generate stubArgs
mir3636
parents: 252
diff changeset
186 next;
250
8a8963ce9858 fix generate_stub
mir3636
parents: 249
diff changeset
187 } elsif (/^(.*)goto next\(\.\.\.(.*)\);/) {
8a8963ce9858 fix generate_stub
mir3636
parents: 249
diff changeset
188 my $prev = $1;
8a8963ce9858 fix generate_stub
mir3636
parents: 249
diff changeset
189 my $args = $2;
8a8963ce9858 fix generate_stub
mir3636
parents: 249
diff changeset
190 print $fd "${prev}goto meta(context, next);\n";
8a8963ce9858 fix generate_stub
mir3636
parents: 249
diff changeset
191 next;
249
afa1e02e4386 fix generate stub
mir3636
parents: 243
diff changeset
192 }
250
8a8963ce9858 fix generate_stub
mir3636
parents: 249
diff changeset
193 print $fd $_;
249
afa1e02e4386 fix generate stub
mir3636
parents: 243
diff changeset
194 next;
afa1e02e4386 fix generate stub
mir3636
parents: 243
diff changeset
195 }
afa1e02e4386 fix generate stub
mir3636
parents: 243
diff changeset
196 # gather type name and type
afa1e02e4386 fix generate stub
mir3636
parents: 243
diff changeset
197 if (/^}/) {
afa1e02e4386 fix generate stub
mir3636
parents: 243
diff changeset
198 $inTypedef = 0;
afa1e02e4386 fix generate stub
mir3636
parents: 243
diff changeset
199 }
250
8a8963ce9858 fix generate_stub
mir3636
parents: 249
diff changeset
200 print $fd $_;
194
081607dcf893 create generate_stub.pl
mir3636
parents:
diff changeset
201 }
250
8a8963ce9858 fix generate_stub
mir3636
parents: 249
diff changeset
202 if (defined $prevCodeGearName) {
8a8963ce9858 fix generate_stub
mir3636
parents: 249
diff changeset
203 if (!defined $stub{$prevCodeGearName."_stub"}) {
251
0ab52d6e2fd9 fix sub generateStub
mir3636
parents: 250
diff changeset
204 $stub{$prevCodeGearName."_stub"} = &generateStub($fd,$prevCodeGearName,$dataGearName{$codeGearName});
250
8a8963ce9858 fix generate_stub
mir3636
parents: 249
diff changeset
205 }
228
55260ff44c8c generate stub
mir3636
parents: 226
diff changeset
206 }
194
081607dcf893 create generate_stub.pl
mir3636
parents:
diff changeset
207 }
081607dcf893 create generate_stub.pl
mir3636
parents:
diff changeset
208
081607dcf893 create generate_stub.pl
mir3636
parents:
diff changeset
209 # end