Patch: classes.pl bug fix
Tom Tromey
tromey@cygnus.com
Thu Jul 20 12:34:00 GMT 2000
I'm checking this in. It fixes classes.pl to correctly handle inner
classes. classes.pl now assumes that code is "correctly" indented --
this might be a problem when we start importing more Classpath code.
2000-07-20 Tom Tromey <tromey@cygnus.com>
* scripts/classes.pl (scan): Print inner classes properly.
* gcj/javaprims.h: Updated class list.
Tom
Index: gcj/javaprims.h
===================================================================
RCS file: /cvs/java/libgcj/libjava/gcj/javaprims.h,v
retrieving revision 1.10
diff -u -r1.10 javaprims.h
--- javaprims.h 2000/05/19 17:55:27 1.10
+++ javaprims.h 2000/07/20 19:33:06
@@ -39,6 +39,7 @@
{
namespace io
{
+ class BlockDataException;
class BufferedInputStream;
class BufferedOutputStream;
class BufferedReader;
@@ -53,6 +54,7 @@
class DataOutput;
class DataOutputStream;
class EOFException;
+ class Externalizable;
class File;
class FileDescriptor;
class FileInputStream;
@@ -68,11 +70,13 @@
class IOException;
class InputStream;
class InputStreamReader;
+ class InterfaceComparator;
class InterruptedIOException;
class InvalidClassException;
class InvalidObjectException;
class LineNumberInputStream;
class LineNumberReader;
+ class MemberComparator;
class NotActiveException;
class NotSerializableException;
class ObjectInput;
@@ -99,10 +103,11 @@
class PushbackReader;
class RandomAccessFile;
class Reader;
+ class Replaceable;
+ class Resolvable;
class SequenceInputStream;
class Serializable;
class SerializablePermission;
- class SimpleDigestStream;
class StreamCorruptedException;
class StreamTokenizer;
class StringBufferInputStream;
@@ -111,8 +116,10 @@
class SyncFailedException;
class UTFDataFormatException;
class UnsupportedEncodingException;
+ class ValidatorAndPriority;
+ class WriteAbortedException;
class Writer;
- }
+ };
namespace lang
{
@@ -122,6 +129,7 @@
class ArrayStoreException;
class Boolean;
class Byte;
+ class CPlusPlusDemangler;
class Character;
class Class;
class ClassCastException;
@@ -198,13 +206,20 @@
class Member;
class Method;
class Modifier;
- }
- }
+ };
+ };
namespace util
{
+ class AbstractCollection;
+ class AbstractList;
+ class AbstractList$SubList;
+ class Arrays;
+ class Arrays$ListImpl;
class BitSet;
class Calendar;
+ class Collection;
+ class Comparator;
class ConcurrentModificationException;
class Date;
class Dictionary;
@@ -216,6 +231,9 @@
class Hashtable;
class HashtableEntry;
class HashtableEnumeration;
+ class Iterator;
+ class List;
+ class ListIterator;
class ListResourceBundle;
class Locale;
class MissingResourceException;
@@ -238,7 +256,7 @@
class JarEntry;
class JarFile;
class JarInputStream;
- }
+ };
namespace zip
{
@@ -261,9 +279,9 @@
class ZipFile;
class ZipInputStream;
class ZipOutputStream;
- }
- }
- }
+ };
+ };
+ };
};
typedef struct java::lang::Object* jobject;
Index: scripts/classes.pl
===================================================================
RCS file: /cvs/java/libgcj/libjava/scripts/classes.pl,v
retrieving revision 1.2
diff -u -r1.2 classes.pl
--- classes.pl 2000/05/19 17:55:34 1.2
+++ classes.pl 2000/07/20 19:33:06
@@ -1,7 +1,7 @@
# classes.pl - A perl program to generate most of the contents of
# javaprims.h automatically.
-# Copyright (C) 1998, 1999 Red Hat, Inc.
+# Copyright (C) 1998, 1999, 2000 Red Hat, Inc.
#
# This file is part of libjava.
#
@@ -65,14 +65,29 @@
next unless $name =~ /\.java$/;
open (FILE, "< $dir/$name");
+ local ($outer, $classname);
while (<FILE>)
{
# NOTE: we don't skip `/*' comments.
s,//.*$,,;
# For now assume that class names start with upper
# case letter.
- next unless /(class|interface) ([A-Z][A-Za-z0-9]+)/;
- $classes{$2} = 1;
+ next unless /\b(class|interface) ([A-Z][A-Za-z0-9]+)/;
+ $classname = $2;
+
+ # We assume the code is properly indented, so that we
+ # can print inner classes properly.
+ if (/^\s/)
+ {
+ die "no outer class for $classname in $dir/$name"
+ unless $outer;
+ $classes{$outer . "\$" . $classname} = 1;
+ }
+ else
+ {
+ $classes{$classname} = 1;
+ $outer = $classname;
+ }
}
close (FILE);
}
More information about the Java-patches
mailing list