OpenCores
URL https://opencores.org/ocsvn/scarts/scarts/trunk

Subversion Repositories scarts

[/] [scarts/] [trunk/] [toolchain/] [scarts-gcc/] [gcc-4.1.1/] [libjava/] [scripts/] [classes.pl] - Blame information for rev 20

Go to most recent revision | Details | Compare with Previous | View Log

Line No. Rev Author Line
1 14 jlechner
# classes.pl - A perl program to generate most of the contents of
2
# javaprims.h automatically.
3
 
4
# Copyright (C) 1998, 1999, 2000, 2002, 2005  Free Software Foundation
5
#
6
# This file is part of libgcj.
7
#
8
# This software is copyrighted work licensed under the terms of the
9
# Libgcj License.  Please consult the file "LIBGCJ_LICENSE" for
10
# details.
11
 
12
# Usage: cd <build>/classpath/lib ; perl classes.pl.
13
 
14
use DirHandle;
15
 
16
if (-d 'java')
17
{
18
    # Ok here.
19
}
20
elsif (-d '../java')
21
{
22
    chdir ('..');
23
}
24
else
25
{
26
    die "couldn't find java directory\n";
27
}
28
 
29
&scan ('java', 2);
30
 
31
exit 0;
32
 
33
sub scan
34
{
35
    local ($dir, $indent) = @_;
36
    local (@subdirs) = ();
37
    local (%classes) = ();
38
 
39
    local ($d) = new DirHandle $dir;
40
    local (*JFILE);
41
    local ($name);
42
    if (defined $d)
43
    {
44
        while (defined ($name = $d->read))
45
        {
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')
53
            {
54
                # We only generate decls for java.lang, java.io, and
55
                # java.util.
56
                next;
57
            }
58
            if (-d ($dir . '/' . $name))
59
            {
60
                push (@subdirs, $name);
61
                next;
62
            }
63
            next unless $name =~ s/\.class$//;
64
            $classes{$name} = 1;
65
        }
66
 
67
        undef $d;
68
    }
69
 
70
    local ($spaces) = ' ' x $indent;
71
    local ($classname);
72
    ($classname = $dir) =~ s/^.*\///;
73
    print $spaces, "namespace ", $classname, "\n";
74
    print $spaces, "{\n";
75
 
76
    foreach (sort keys %classes)
77
    {
78
        print $spaces, "  class ", $_, ";\n";
79
    }
80
    print "\n" if scalar @classes > 0 && scalar @subdirs > 0;
81
 
82
    local ($first) = 1;
83
    foreach (sort @subdirs)
84
    {
85
        print "\n" unless $first;
86
        $first = 0;
87
        &scan ("$dir/$_", $indent + 2);
88
    }
89
 
90
    print $spaces, "}\n";
91
}

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.