annotate src/parallel_execution/generate_stub.pl @ 194:081607dcf893

create generate_stub.pl
author mir3636
date Fri, 16 Dec 2016 19:40:42 +0900
parents
children bd96dffaa76a
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
081607dcf893 create generate_stub.pl
mir3636
parents:
diff changeset
3 # interface.cbc
081607dcf893 create generate_stub.pl
mir3636
parents:
diff changeset
4 # typedef struct Worker {
081607dcf893 create generate_stub.pl
mir3636
parents:
diff changeset
5 # int id;
081607dcf893 create generate_stub.pl
mir3636
parents:
diff changeset
6 # struct Context* contexts;
081607dcf893 create generate_stub.pl
mir3636
parents:
diff changeset
7 # enum Code execute;
081607dcf893 create generate_stub.pl
mir3636
parents:
diff changeset
8 # enum Code taskSend;
081607dcf893 create generate_stub.pl
mir3636
parents:
diff changeset
9 # enum Code taskRecive;
081607dcf893 create generate_stub.pl
mir3636
parents:
diff changeset
10 # enum Code shutdown;
081607dcf893 create generate_stub.pl
mir3636
parents:
diff changeset
11 # struct Queue* tasks;
081607dcf893 create generate_stub.pl
mir3636
parents:
diff changeset
12 # } Worker;
081607dcf893 create generate_stub.pl
mir3636
parents:
diff changeset
13
081607dcf893 create generate_stub.pl
mir3636
parents:
diff changeset
14 system "rm -rf d";
081607dcf893 create generate_stub.pl
mir3636
parents:
diff changeset
15 system "mkdir d";
081607dcf893 create generate_stub.pl
mir3636
parents:
diff changeset
16
081607dcf893 create generate_stub.pl
mir3636
parents:
diff changeset
17 while (<*.cbc>) {
081607dcf893 create generate_stub.pl
mir3636
parents:
diff changeset
18 &getDataGear($_);
081607dcf893 create generate_stub.pl
mir3636
parents:
diff changeset
19 }
081607dcf893 create generate_stub.pl
mir3636
parents:
diff changeset
20
081607dcf893 create generate_stub.pl
mir3636
parents:
diff changeset
21 &generateDataGear();
081607dcf893 create generate_stub.pl
mir3636
parents:
diff changeset
22
081607dcf893 create generate_stub.pl
mir3636
parents:
diff changeset
23 sub getDataGear {
081607dcf893 create generate_stub.pl
mir3636
parents:
diff changeset
24 my ($filename) = @_;
081607dcf893 create generate_stub.pl
mir3636
parents:
diff changeset
25 open my $fd,"<",$filename or die("can't open $filename $!");
081607dcf893 create generate_stub.pl
mir3636
parents:
diff changeset
26 while (<$fd>) {
081607dcf893 create generate_stub.pl
mir3636
parents:
diff changeset
27 if (! $inTypedef) {
081607dcf893 create generate_stub.pl
mir3636
parents:
diff changeset
28 if (/^typedef struct (\w+) {/) {
081607dcf893 create generate_stub.pl
mir3636
parents:
diff changeset
29 $inTypedef = 1;
081607dcf893 create generate_stub.pl
mir3636
parents:
diff changeset
30 $name = $1;
081607dcf893 create generate_stub.pl
mir3636
parents:
diff changeset
31 $dataGear{$name} = $_;
081607dcf893 create generate_stub.pl
mir3636
parents:
diff changeset
32 }
081607dcf893 create generate_stub.pl
mir3636
parents:
diff changeset
33 next;
081607dcf893 create generate_stub.pl
mir3636
parents:
diff changeset
34 }
081607dcf893 create generate_stub.pl
mir3636
parents:
diff changeset
35 $dataGear{$name} .= $_;
081607dcf893 create generate_stub.pl
mir3636
parents:
diff changeset
36 if (/^}/) {
081607dcf893 create generate_stub.pl
mir3636
parents:
diff changeset
37 $inTypedef = 0;
081607dcf893 create generate_stub.pl
mir3636
parents:
diff changeset
38 }
081607dcf893 create generate_stub.pl
mir3636
parents:
diff changeset
39 }
081607dcf893 create generate_stub.pl
mir3636
parents:
diff changeset
40 }
081607dcf893 create generate_stub.pl
mir3636
parents:
diff changeset
41
081607dcf893 create generate_stub.pl
mir3636
parents:
diff changeset
42 sub generateDataGear {
081607dcf893 create generate_stub.pl
mir3636
parents:
diff changeset
43 open my $fd,">","d/extern.h" or die("can't open d/extern.h $!");
081607dcf893 create generate_stub.pl
mir3636
parents:
diff changeset
44 for my $name ( sort keys %dataGear ) {
081607dcf893 create generate_stub.pl
mir3636
parents:
diff changeset
45 print $fd $dataGear{$name},"\n";
081607dcf893 create generate_stub.pl
mir3636
parents:
diff changeset
46 }
081607dcf893 create generate_stub.pl
mir3636
parents:
diff changeset
47 print $fd "\n";
081607dcf893 create generate_stub.pl
mir3636
parents:
diff changeset
48 }
081607dcf893 create generate_stub.pl
mir3636
parents:
diff changeset
49
081607dcf893 create generate_stub.pl
mir3636
parents:
diff changeset
50 # end