5 opendir(DIR
, ".") || die "ERROR: Cannot open dir";
6 my @files = grep { /cpp$/ } readdir(DIR
);
9 foreach my $file (@files)
11 my %result = parseFile
($file);
12 if (defined $result{"Class"})
14 #print "----------\n";
15 print "<accessoryaction type=\"".$result{"Class"}."\">\n";
17 #if ($result{"Extends"} ne "AccessoryPart")
18 if (($result{"Extends"} ne "") & ($result{"Extends"} ne "AccessoryPart"))
20 print "Extends - ".$result{"Extends"}."\n";
23 if (defined $result{"Attribute"})
25 my @attrs = @
{$result{"Attribute"}};
26 foreach my $attr (@attrs)
29 print "=========" if ($attrh{"Type"} eq "");
30 #print "Attribute : ".$attrh{"Type"}." ".$attrh{"Name"}." ".$attrh{"Rest"}."\n";
31 print "\t<".$attrh{"Name"}.">".$attrh{"Type"}."</".$attrh{"Name"}.">\n";
34 print "</accessory>\n\n"
42 open (FILE
, "$file") || die "ERROR: Cannot open file $file";
43 my @fileconts = <FILE
>;
46 my @fns = grep { /\s+(\w+)::(parse|read)XML/ } @fileconts;
47 return if ($#fns == -1);
51 $fns[0] =~ /\s+(\w+)::(parse|read)XML/ or die "ERROR1";
53 $result{"Class"} = $class;
58 my $extends = getExtends
($fileh);
59 $result{"Extends"} = $extends;
62 if ($extends eq "PlacementModelDefinition")
64 $extends = "../placement/PlacementModelDefinition";
66 my %newResult = parseFile
($extends.".cpp");
67 $result{"Attribute"} = $newResult{"Attribute"};
69 if ($newResult{"Extends"} ne "")
71 $result{"Extends"} = $newResult{"Extends"};
75 my @nodes = grep { /getNamedChild/ } @fileconts;
76 foreach my $node (@nodes)
78 if ($node =~ /getNamedChild\(\"(\w+)\"\s*,\s*([\w_]+)(\s*,\s*false|)/)
80 my ($nodename, $var, $rest) = ($1, $2, $3);
82 my $type = getType
($fileh, $nodename);
83 $type = getType
($fileh, $var) if ($type eq "");
84 $type = getType
($file, $var) if ($type eq "");
86 $rest = "(optional)" if ($rest ne "");
89 $attr{"Name"} = $nodename;
90 $attr{"Type"} = $type;
91 $attr{"Rest"} = $rest;
93 push @
{$result{"Attribute"}}, { %attr };
96 @nodes = grep { /\.readXML\(/ } @fileconts;
97 foreach my $node (@nodes)
99 if ($node =~ /(\w+)\.readXML\(/)
102 my $type = getType
($fileh, $var);
104 if ($type eq "TargetDefinition")
106 my %newResult = parseFile
("../target/TargetDefinition.cpp");
107 push @
{$result{"Attribute"}}, @
{$newResult{"Attribute"}};
119 open (FILE
, "$file") || die "ERROR: Cannot open file $file";
120 my @fileconts = <FILE
>;
123 my @extends = grep { /public \w+/i } @fileconts;
129 $extend =~ s/Callback//;
139 my ($file, $var) = @_;
141 return "float" if (length($var) == 1);
143 open (FILE
, "$file") || die "ERROR: Cannot open file $file";
144 my @fileconts = <FILE
>;
147 my @types = grep { /$var[_,\s;]+/i } @fileconts;
150 if (/^\s*([_\*\w:]+)/i)
152 return $1 if ($1 eq "float");
153 return $1 if ($1 eq "bool");
154 return $1 if ($1 eq "Explosion::DeformType");
155 return $1 if ($1 eq "std::string");
156 return $1 if ($1 eq "Vector");
157 return $1 if ($1 eq "int");
158 return $1 if ($1 eq "Weapon");
159 return $1 if ($1 eq "TargetDefinition");
160 return $1 if ($1 eq "AccessoryPart");
161 return $1 if ($1 eq "XMLNode");
164 return "ModelID" if ($var =~/model/);