8 #my $target = "wikitable.cc";
9 #my $targetTmp = "$target-$$";
17 $TargetTmp = ".tmp-$Target";
25 die "$_: not found\n";
34 open (OUT, "> $TargetTmp");
35 print OUT "#include \"wikitable.h\"\n";
37 print OUT "#include \"$_\"\n";
39 print OUT "//============================================================\n";
40 print OUT "static WikiCmdTableSupport::wikicmd_t wikitable[] = {\n";
43 print OUT " {CharConst (\"$_->[0]\"), NULL, 0, NULL, 0, $_->[1]},\n";
45 print OUT " {CharConst (\"$_->[0]\"), NULL, 0, CharConst (\"$_->[1]\"), $_->[2]},\n";
47 print OUT " {CharConst (\"$_->[0]\"), CharConst (\"$_->[1]\"), CharConst (\"$_->[2]\"), $_->[3]},\n";
50 print OUT " {NULL, 0, NULL, 0, NULL},\n";
52 print OUT "WikiCmdTable GWikiCmdTable (wikitable);\n";
53 print OUT "//============================================================\n";
54 print OUT "static WikiCmdTableSupport::wikifunc_t wftable[] = {\n";
56 print OUT " {CharConst (\"$_->[0]\"), $_->[2], (bool(*)())$_->[1]},\n";
57 die "error\n" if ($_->[2] eq '');
59 print OUT " {NULL, 0, WikiCmdTableSupport::WikiArg1, NULL},\n";
61 #@#print OUT "static WikiCmdTableSupport::wikifunc_t wftable2[] = {\n";
63 #@# print OUT " {CharConst (\"$_->[0]\"), $_->[2], (bool(*)())$_->[1]},\n";
65 #@#print OUT " {NULL, 0, WikiCmdTableSupport::WikiArg1, NULL},\n";
67 print OUT "WikiFuncTable GWikiFuncTable (wftable);\n";
68 #@#print OUT "WikiFuncTable GWikiFuncTable2 (wftable2);\n";
69 print OUT "//============================================================\n";
72 rename ($TargetTmp, $Target);
78 my ($hdr, @a, $ffn, $x, $c, $name);
87 if (/^\/\/\#WIKICMD\s+/) {
88 @a = split (/\s+/, $');
91 } elsif (/^\/\/\#WIKILINE2?\s+/) {
92 @a = split (/\s+/, $');
93 push (@FN, [$a[0], $a[1]]);
95 #@# } elsif (/^\/\/\#WIKILINE2\s+/) {
96 #@# @a = split (/\s+/, $');
97 #@# push (@FN2, [$a[0], $a[1]]);
99 } elsif (/^bool\s+(wl_[^ \t\(]+)/) {
106 #@# if ($x =~ /\(\s*WikiMotorObjVec\*\s*\w+\s*,\s*MotorOutput\*/) {
107 if ($x =~ /\(\s*WikiMotorObjVec\*\s*\w+\s*,\s*WikiMotorObjVec&/) {
108 &setFN (\@FN, $name, WikiCmdTableSupport::WikiArg1);
109 #@# &setFN (\@FN2, $name, WikiCmdTableSupport::WikiArg1);
110 #@# } elsif ($x =~ /\(\s*WikiMotorObjVecVec\*\s*\w+\s*,\s*MotorOutput\*/) {
111 } elsif ($x =~ /\(\s*WikiMotorObjVecVec\*\s*\w+\s*,\s*WikiMotorObjVec&/) {
112 &setFN (\@FN, $name, WikiCmdTableSupport::WikiArgM);
113 #@# &setFN (\@FN2, $name, WikiCmdTableSupport::WikiArgM);
114 #@# } elsif ($x =~ /\(\s*WikiMotorObjVecVec\*\s+\w+\s*,\s*WikiMotorObjVec\*\s+\w+\s*,\s*MotorOutput\*/) {
115 } elsif ($x =~ /\(\s*WikiMotorObjVecVec\*\s+\w+\s*,\s*WikiMotorObjVec\*\s+\w+\s*,\s*WikiMotorObjVec&/) {
116 &setFN (\@FN, $name, WikiCmdTableSupport::WikiArgM2);
117 #@# &setFN (\@FN2, $name, WikiCmdTableSupport::WikiArgM2);
132 my (@a) = split (/,/, $str, -1);
137 my ($rfn, $name, $val) = @_;
139 if ($_->[1] eq $name) {
149 $rc = system ('/usr/bin/cmp', '-s', $f1, $f2) >> 8;