Update of /cvsroot/xdoclet/xjavadoc/javacc
In directory sc8-pr-cvs1:/tmp/cvs-serv16055/xjavadoc/javacc

Modified Files:
        Java1.2-b.jjt 
Log Message:
Fixed XJD-8.

Index: Java1.2-b.jjt
===================================================================
RCS file: /cvsroot/xdoclet/xjavadoc/javacc/Java1.2-b.jjt,v
retrieving revision 1.35
retrieving revision 1.36
diff -C2 -r1.35 -r1.36
*** Java1.2-b.jjt       30 Oct 2002 22:36:43 -0000      1.35
--- Java1.2-b.jjt       22 Nov 2002 23:52:23 -0000      1.36
***************
*** 56,59 ****
--- 56,64 ----
     private SourceClass _outerClass;
     private Stack _sourceClassStack = new Stack();
+    
+    // Flag that tells us if the main class/interface has been parsed.
+    // Needed to support more than one "outer" class in one source.
+    private boolean _hasParsedMain = false;
+ 
  
     private static final void setToken(AbstractProgramElement element, Token token) {
***************
*** 89,93 ****
         SourceClass clazz = null;
         if( _sourceClassStack.isEmpty() ) {
!           clazz = _outerClass;
         } else {
            clazz = new SourceClass(currentClass());
--- 94,106 ----
         SourceClass clazz = null;
         if( _sourceClassStack.isEmpty() ) {
!           // It's an outer class. In rare cases there is more than one outer classes
!           // in one source. handle that here.
!           if( !_hasParsedMain ) {
!              // the usual case
!              clazz = _outerClass;
!           } else {
!              // the source contains more than one classes
!              clazz = new SourceClass(_outerClass, 0);
!           }
         } else {
            clazz = new SourceClass(currentClass());
***************
*** 102,106 ****
     private void popAndAddInner() {
      SourceClass clazz = (SourceClass) _sourceClassStack.pop();
!     if( clazz != _outerClass ) {
          // Add the class as an inner class
          currentClass().addInnerClass(clazz);
--- 115,119 ----
     private void popAndAddInner() {
      SourceClass clazz = (SourceClass) _sourceClassStack.pop();
!     if( clazz.getContainingClass() != null ) {
          // Add the class as an inner class
          currentClass().addInnerClass(clazz);
***************
*** 492,498 ****
  {
    LOOKAHEAD( ( "abstract" | "final" | "public" | "strictfp" )* "class" )
!   ClassDeclaration()
  |
!   InterfaceDeclaration()
  |
    ";"
--- 505,515 ----
  {
    LOOKAHEAD( ( "abstract" | "final" | "public" | "strictfp" )* "class" )
!   ClassDeclaration() {
!     _hasParsedMain = true;
!   }
  |
!   InterfaceDeclaration() {
!     _hasParsedMain = true;
!   }
  |
    ";"
***************
*** 562,569 ****
          XJavaDoc.getInstance().addSourceClass( sourceClass );
      } else {
!         
_outerClass.setQualifiedName(Util.getQualifiedNameFor(_packageName,name.image));
          XJavaDoc.getInstance().addPackageMaybe( _packageName ).addClass(_outerClass);
          XJavaDoc.getInstance().addSourceClass( _outerClass );
!         _outerClass.resolveImportedClasses();
      }
     }
--- 579,589 ----
          XJavaDoc.getInstance().addSourceClass( sourceClass );
      } else {
!         
sourceClass.setQualifiedName(Util.getQualifiedNameFor(_packageName,name.image));
          XJavaDoc.getInstance().addPackageMaybe( _packageName ).addClass(_outerClass);
          XJavaDoc.getInstance().addSourceClass( _outerClass );
!         sourceClass.resolveImportedClasses();
!         
!         // we're adding to xjavadoc in case we're an "extra" class (XJD-8).
!         XJavaDoc.getInstance().addSourceClass(sourceClass);
      }
     }



-------------------------------------------------------
This sf.net email is sponsored by:ThinkGeek
Welcome to geek heaven.
http://thinkgeek.com/sf
_______________________________________________
Xdoclet-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/xdoclet-devel

Reply via email to