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;

Attachment: signature.asc
Description: Digital signature

Reply via email to