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