This gets us a stage further with gjdoc, allowing it to parse enums and handle type variables that contain whitespace. It currently runs out of memory before completing a run of Classpath.
Changelog: 2007-04-10 Andrew John Hughes <[EMAIL PROTECTED]> * src/gnu/classpath/tools/gjdoc/ClassDocImpl.java: Add enumeration support and allow whitespace in type variables. * src/gnu/classpath/tools/gjdoc/Parser.java: Add commented-out line for printing file being processed. -- Andrew :-) Escape the Java Trap with GNU Classpath! http://www.gnu.org/philosophy/java-trap.html public class gcj extends Freedom implements Java { ... }
Index: src/gnu/classpath/tools/gjdoc/ClassDocImpl.java =================================================================== RCS file: /sources/classpath/gjdoc/src/gnu/classpath/tools/gjdoc/ClassDocImpl.java,v retrieving revision 1.29 diff -u -3 -p -u -r1.29 ClassDocImpl.java --- src/gnu/classpath/tools/gjdoc/ClassDocImpl.java 9 Apr 2007 18:31:32 -0000 1.29 +++ src/gnu/classpath/tools/gjdoc/ClassDocImpl.java 9 Apr 2007 23:42:10 -0000 @@ -204,6 +204,11 @@ public class ClassDocImpl return isAnnotation; } + public boolean isEnum() + { + return isEnum; + } + // Return true if this class is abstract public void setIsAbstract(boolean b) { this.isAbstract=b; @@ -380,7 +385,7 @@ public class ClassDocImpl } else if (c=='{' && parLevel == 0 || c==',' && varLevel == 0 && parLevel == 0 || - Parser.WHITESPACE.indexOf(c)>=0 && parLevel == 0 ) { + Parser.WHITESPACE.indexOf(c)>=0 && parLevel == 0 && varLevel == 0) { processWord=true; state=STATE_NORMAL; } @@ -399,6 +404,11 @@ public class ClassDocImpl rc.setIsInterface(false); item=1; } + else if (word.equals("enum")) + { + rc.setIsEnum(true); + item = 1; + } else if (word.equals("interface")) { rc.setIsInterface(true); item=1; @@ -725,6 +735,7 @@ public class ClassDocImpl private boolean isAbstract; private boolean isInterface; private boolean isAnnotation; + private boolean isEnum; private ClassDoc[] interfaces; private ClassDoc[] filteredInnerClasses; private ClassDoc[] unfilteredInnerClasses; @@ -858,6 +869,11 @@ public class ClassDocImpl this.isAnnotation=b; } + public void setIsEnum(boolean b) + { + isEnum = b; + } + public ExecutableMemberDoc findExecutableRec(String nameAndSignature) { ExecutableMemberDoc rc; Index: src/gnu/classpath/tools/gjdoc/Parser.java =================================================================== RCS file: /sources/classpath/gjdoc/src/gnu/classpath/tools/gjdoc/Parser.java,v retrieving revision 1.26 diff -u -3 -p -u -r1.26 Parser.java --- src/gnu/classpath/tools/gjdoc/Parser.java 9 Apr 2007 18:31:32 -0000 1.26 +++ src/gnu/classpath/tools/gjdoc/Parser.java 9 Apr 2007 23:42:10 -0000 @@ -727,6 +727,7 @@ public class Parser { String encoding, String expectedPackageName) throws IOException, ParseException { + //System.err.println("Processing " + file + "..."); this.currentFile = file; this.currentPackage = null; this.currentPackageName = null;
signature.asc
Description: Digital signature