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
