Remove old autovect-branch by moving to "dead" directory.
[official-gcc.git] / old-autovect-branch / libjava / scripts / classes.pl
blobd231ea4f7ba0aed5699452bf358ef9be7c621ecf
1 # classes.pl - A perl program to generate most of the contents of
2 # javaprims.h automatically.
4 # Copyright (C) 1998, 1999, 2000, 2002, 2005 Free Software Foundation
6 # This file is part of libgcj.
8 # This software is copyrighted work licensed under the terms of the
9 # Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
10 # details.
12 # Usage: cd <build>/classpath/lib ; perl classes.pl.
14 use DirHandle;
16 if (-d 'java')
18 # Ok here.
20 elsif (-d '../java')
22 chdir ('..');
24 else
26 die "couldn't find java directory\n";
29 &scan ('java', 2);
31 exit 0;
33 sub scan
35 local ($dir, $indent) = @_;
36 local (@subdirs) = ();
37 local (%classes) = ();
39 local ($d) = new DirHandle $dir;
40 local (*JFILE);
41 local ($name);
42 if (defined $d)
44 while (defined ($name = $d->read))
46 next if $name eq 'CVS';
47 next if $name eq '.';
48 next if $name eq '..';
49 if ($dir eq 'java'
50 && $name ne 'lang'
51 && $name ne 'util'
52 && $name ne 'io')
54 # We only generate decls for java.lang, java.io, and
55 # java.util.
56 next;
58 if (-d ($dir . '/' . $name))
60 push (@subdirs, $name);
61 next;
63 next unless $name =~ s/\.class$//;
64 $classes{$name} = 1;
67 undef $d;
70 local ($spaces) = ' ' x $indent;
71 local ($classname);
72 ($classname = $dir) =~ s/^.*\///;
73 print $spaces, "namespace ", $classname, "\n";
74 print $spaces, "{\n";
76 foreach (sort keys %classes)
78 print $spaces, " class ", $_, ";\n";
80 print "\n" if scalar @classes > 0 && scalar @subdirs > 0;
82 local ($first) = 1;
83 foreach (sort @subdirs)
85 print "\n" unless $first;
86 $first = 0;
87 &scan ("$dir/$_", $indent + 2);
90 print $spaces, "}\n";