User: rinkrank
  Date: 02/03/01 02:44:42

  Modified:    javacc   Java1.2-b.jjt
  Log:
  Automatic JUnit test generation
  Various bug fixes and optimisations
  Deadlock! FIXME
  
  Revision  Changes    Path
  1.16      +119 -48   xjavadoc/javacc/Java1.2-b.jjt
  
  Index: Java1.2-b.jjt
  ===================================================================
  RCS file: /cvsroot/xdoclet/xjavadoc/javacc/Java1.2-b.jjt,v
  retrieving revision 1.15
  retrieving revision 1.16
  diff -u -w -r1.15 -r1.16
  --- Java1.2-b.jjt     25 Feb 2002 01:03:10 -0000      1.15
  +++ Java1.2-b.jjt     1 Mar 2002 10:44:42 -0000       1.16
  @@ -61,8 +61,6 @@
   {
      private static org.apache.log4j.Category _log = 
org.apache.log4j.Category.getInstance(JavaParser.class.getName());
   
  -   private static final String[] NULL_STRING_ARRAY = new String[0];
  -
      private static final void setToken(AbstractProgramElement element, Token token) {
          element.setToken( token );
          //element.setDoc(getJavaDocSpecialToken( token ));
  @@ -360,16 +358,20 @@
   {
     [ PackageDeclaration(sourceClass) ]
     ( ImportDeclaration(sourceClass) )*
  -  ( TypeDeclaration(sourceClass) )*
  +  ( TypeDeclaration(sourceClass,true) )*
     <EOF>
     {
         // sourceClass must know about ASTCompilationUnit
         // if it wants to mutate or print the code
         sourceClass.setCompilationUnit( jjtThis );      
         // wake up the sourceClass. It's waiting in complete()
  +      
  +      _log.debug("parse thread - in end of CompilationUnit for " + 
sourceClass.containingClass() + " entering synchronized block.");
         synchronized( sourceClass.getParseLock() ) {
  +         _log.debug("parse thread is done. notifying main thread.");
            sourceClass.getParseLock().notify();
         }
  +      
     }  
   }
   
  @@ -405,13 +407,13 @@
     }
   }
   
  -void TypeDeclaration(SourceClass sourceClass) :
  +void TypeDeclaration(SourceClass sourceClass, boolean halt) :
   {}
   {
     LOOKAHEAD( ( "abstract" | "final" | "public" | "strictfp" )* "class" )
  -  ClassDeclaration(sourceClass)
  +  ClassDeclaration(sourceClass, halt)
   |
  -  InterfaceDeclaration(sourceClass)
  +  InterfaceDeclaration(sourceClass, halt)
   |
     ";"
   }
  @@ -426,7 +428,7 @@
   attached to the first modifier token (if there are any modifiers)
   or to the first token in UnmodifiedClassDeclaration
   */
  -void ClassDeclaration(SourceClass sourceClass) :
  +void ClassDeclaration(SourceClass sourceClass, boolean halt) :
   {
      Token t = null;
   }
  @@ -449,10 +451,10 @@
          sourceClass.addModifier( Modifier.STRICT );
       }
     )*
  -  UnmodifiedClassDeclaration(sourceClass)
  +  UnmodifiedClassDeclaration(sourceClass, halt)
   }
   
  -void UnmodifiedClassDeclaration(SourceClass sourceClass) :
  +void UnmodifiedClassDeclaration(SourceClass sourceClass, boolean halt) :
   {
      Token ct;
      Token name = null;
  @@ -468,7 +470,7 @@
      }
      [ "extends" superclass=Name() ]
      [ "implements" Interfaces_NameList(sourceClass) ]
  -   ClassBody(sourceClass) {
  +   ClassBody(sourceClass, halt) {
         if( superclass != null ) {
            sourceClass.setSuperclass(superclass);
         } else {
  @@ -477,7 +479,7 @@
      }
   }
   
  -void ClassBody(SourceClass sourceClass) :
  +void ClassBody(SourceClass sourceClass, boolean halt) :
   {
         if(sourceClass.containingClass()==null) {
                 try {
  @@ -485,7 +487,9 @@
                                 // Tell xjavadoc that we're ready with class level 
parsing
                                 sourceClass.getParseLock().notify();
                                 _log.debug("Done scanning class header of " + 
sourceClass.qualifiedName());
  +                     }
   
  +                      synchronized(sourceClass.getParseLock()) {
                                 // Wait here until we're woken up. That happens in 
SourceClass.complete()
                                 sourceClass.getParseLock().wait();
                                 _log.debug("Continuing scanning class body of " + 
sourceClass.qualifiedName());
  @@ -506,41 +510,39 @@
   void NestedClassDeclaration(SourceClass sourceClass) :
   {
      Token t;
  -   SourceClass innerClass = new SourceClass(sourceClass, sourceClass.name(), null );
  -   sourceClass.addInnerClass(innerClass);
   }
   {
     ( 
       t="static" {
  -       innerClass.addModifier( Modifier.STATIC );
  -       innerClass.setToken( t );
  +       sourceClass.addModifier( Modifier.STATIC );
  +       sourceClass.setToken( t );
       }
     | t="abstract" {
  -       innerClass.addModifier( Modifier.ABSTRACT );
  -       innerClass.setToken( t );
  +       sourceClass.addModifier( Modifier.ABSTRACT );
  +       sourceClass.setToken( t );
       }
     | t="final" {
  -       innerClass.addModifier( Modifier.FINAL );
  -       innerClass.setToken( t );
  +       sourceClass.addModifier( Modifier.FINAL );
  +       sourceClass.setToken( t );
       }
     | t="public" {
  -       innerClass.addModifier( Modifier.PUBLIC );
  -       innerClass.setToken( t );
  +       sourceClass.addModifier( Modifier.PUBLIC );
  +       sourceClass.setToken( t );
       }
     | t="protected" {
  -       innerClass.addModifier( Modifier.PROTECTED );
  -       innerClass.setToken( t );
  +       sourceClass.addModifier( Modifier.PROTECTED );
  +       sourceClass.setToken( t );
       }
     | t="private" {
  -       innerClass.addModifier( Modifier.PRIVATE );
  -       innerClass.setToken( t );
  +       sourceClass.addModifier( Modifier.PRIVATE );
  +       sourceClass.setToken( t );
       }
     | t="strictfp" {
  -       innerClass.addModifier( Modifier.STRICT );
  -       innerClass.setToken( t );
  +       sourceClass.addModifier( Modifier.STRICT );
  +       sourceClass.setToken( t );
       }
     )*
  -  UnmodifiedClassDeclaration(innerClass)
  +  UnmodifiedClassDeclaration(sourceClass, false)
   }
   
   void ClassBodyDeclaration(SourceClass sourceClass) :
  @@ -550,10 +552,24 @@
     Initializer()
   |
     LOOKAHEAD( ( "static" | "abstract" | "final" | "public" | "protected" | "private" 
| "strictfp")* "class" )
  -  NestedClassDeclaration(sourceClass)
  +  {
  +     SourceClass innerClass = new SourceClass(sourceClass, null, null);
  +     sourceClass.addInnerClass( innerClass );
  +  }
  +  NestedClassDeclaration(innerClass)
  +  {
  +     XJavaDoc.getInstance().addSourceClass(innerClass);
  +  }
   |
     LOOKAHEAD( ( "static" | "abstract" | "final" | "public" | "protected" | "private" 
| "strictfp")* "interface" )
  -  NestedInterfaceDeclaration(sourceClass)
  +  {
  +     SourceClass innerClass = new SourceClass(sourceClass, null, null);
  +     sourceClass.addInnerClass( innerClass );
  +  }
  +  NestedInterfaceDeclaration(innerClass)
  +  {
  +     XJavaDoc.getInstance().addSourceClass(innerClass);
  +  }
   |
     LOOKAHEAD( [ "public" | "protected" | "private" ] Name() "(" )
     ConstructorDeclaration(sourceClass)
  @@ -572,7 +588,7 @@
     ResultType(null) <IDENTIFIER> "("
   }
   
  -void InterfaceDeclaration(SourceClass sourceClass) :
  +void InterfaceDeclaration(SourceClass sourceClass, boolean halt) :
   {
      Token t = null;
   }
  @@ -591,41 +607,60 @@
          sourceClass.setToken( t );
       }
     )*
  -  UnmodifiedInterfaceDeclaration(sourceClass)
  +  UnmodifiedInterfaceDeclaration(sourceClass, halt)
   }
   
   void NestedInterfaceDeclaration(SourceClass sourceClass) :
   {}
   {
     ( "static" | "abstract" | "final" | "public" | "protected" | "private" | 
"strictfp")*
  -  UnmodifiedInterfaceDeclaration(sourceClass)
  +  UnmodifiedInterfaceDeclaration(sourceClass, false)
   }
   
  -void UnmodifiedInterfaceDeclaration(SourceClass sourceClass) :
  +void UnmodifiedInterfaceDeclaration(SourceClass sourceClass,boolean halt) :
   {
      Token it;
      Token t = null;
   }
   {
     it="interface" t=<IDENTIFIER> [ "extends" Interfaces_NameList(sourceClass) ]
  -  "{" ( InterfaceMemberDeclaration(sourceClass) )* "}"
  +  "{" 
     {
         // interfaces are always abstract
         sourceClass.addModifier( Modifier.ABSTRACT );
         sourceClass.setName( t.image );
         sourceClass.setInterface( true );
         setToken(sourceClass,it);
  +      if( halt ) {
  +             //throw new AraException(true);
  +      }
     }
  +  ( InterfaceMemberDeclaration(sourceClass) )* 
  +  "}"
   }
   
   void InterfaceMemberDeclaration(SourceClass sourceClass) :
   {}
   {
     LOOKAHEAD( ( "static" | "abstract" | "final" | "public" | "protected" | "private" 
| "strictfp")* "class" )
  -  NestedClassDeclaration(sourceClass)
  +  {
  +     SourceClass innerClass = new SourceClass(sourceClass, null, null);
  +     sourceClass.addInnerClass( innerClass );
  +  }
  +  NestedClassDeclaration(innerClass)
  +  {
  +     XJavaDoc.getInstance().addSourceClass(innerClass);
  +  }
   |
     LOOKAHEAD( ( "static" | "abstract" | "final" | "public" | "protected" | "private" 
| "strictfp")* "interface" )
  -  NestedInterfaceDeclaration(sourceClass)
  +  {
  +     SourceClass innerClass = new SourceClass(sourceClass, null, null);
  +     sourceClass.addInnerClass( innerClass );
  +  }
  +  NestedInterfaceDeclaration(innerClass)
  +  {
  +     XJavaDoc.getInstance().addSourceClass(innerClass);
  +  }
   |
     LOOKAHEAD( MethodDeclarationLookahead() )
     MethodDeclaration(sourceClass)
  @@ -677,7 +712,17 @@
          setToken(fieldImpl,t);
       }
     )*
  -  Field_Type(fieldImpl) FieldDeclarator(fieldImpl) ( "," FieldDeclarator(fieldImpl) 
)* ";"
  +  Field_Type(fieldImpl) FieldDeclarator(fieldImpl) 
  +  ( 
  +     "," 
  +     {
  +        FieldImpl badProgrammingStyleFieldImpl = new FieldImpl(sourceClass, null);
  +        badProgrammingStyleFieldImpl.setType(fieldImpl.getType());
  +        sourceClass.addField(badProgrammingStyleFieldImpl);
  +     }
  +     FieldDeclarator(badProgrammingStyleFieldImpl) 
  +  )* 
  +  ";"
   }
   
   void FieldDeclarator(FieldImpl fieldImpl) :
  @@ -701,6 +746,7 @@
     t=<IDENTIFIER> ( "[" "]" { fieldImpl.setDimension(fieldImpl.getDimension() + 1); 
} )*
     {
        fieldImpl.setName( t.image );
  +     fieldImpl.setQualifiedName( t.image );
     }
   }
   
  @@ -800,6 +846,7 @@
     t=<IDENTIFIER> {
        if( methodImpl != null ) {
           methodImpl.setName( t.image );
  +        methodImpl.setQualifiedName( t.image );
           setToken( methodImpl, t );
        }
     }
  @@ -832,7 +879,8 @@
   {
      Token t = null;
      ConstructorImpl constructor = null;
  -   constructor = new ConstructorImpl(sourceClass, null);
  +   constructor = new ConstructorImpl(sourceClass, sourceClass.qualifiedName());
  +   constructor.setName(sourceClass.qualifiedName());
      sourceClass.addConstructor(constructor);
   }
   {
  @@ -1322,7 +1370,16 @@
       (
         ArrayDimsAndInits()
       |
  -      Arguments() [ ClassBody(null) ]
  +      Arguments() 
  +      [
  +      {
  +         SourceClass anonymousClass = new SourceClass(null, null, null);
  +      }
  +      ClassBody(anonymousClass, false) 
  +      {
  +         XJavaDoc.getInstance().addSourceClass(anonymousClass);
  +      }
  +      ]
       )
   }
   
  @@ -1409,24 +1466,38 @@
   |
     Statement()
   |
  -  UnmodifiedClassDeclaration(null)
  +  UnmodifiedClassDeclaration(null, false)
   |
  -// added this choice point to handle inner interfaces. DW, 7/99
  -  UnmodifiedInterfaceDeclaration(null)
  +  UnmodifiedInterfaceDeclaration(null, false)
   }
   
   void Method_BlockStatement(SourceClass sourceClass) :
  -{}
  +{
  +   SourceClass innerClass = null;
  +}
   {
     LOOKAHEAD([ "final" ] Type() <IDENTIFIER>)
     LocalVariableDeclaration() ";"
   |
     Statement()
   |
  -  UnmodifiedClassDeclaration(sourceClass)
  +  {
  +     innerClass = new SourceClass(sourceClass, null, null);
  +     sourceClass.addInnerClass( innerClass );
  +  }
  +  UnmodifiedClassDeclaration(innerClass,false)
  +  {
  +     XJavaDoc.getInstance().addSourceClass(innerClass);
  +  }
   |
  -// added this choice point to handle inner interfaces. DW, 7/99
  -  UnmodifiedInterfaceDeclaration(sourceClass)
  +  {
  +     innerClass = new SourceClass(sourceClass, null, null);
  +     sourceClass.addInnerClass( innerClass );
  +  }
  +  UnmodifiedInterfaceDeclaration(innerClass,false)
  +  {
  +     XJavaDoc.getInstance().addSourceClass(innerClass);
  +  }
   }
   
   void LocalVariableDeclaration() :
  
  
  

_______________________________________________
Xdoclet-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/xdoclet-devel

Reply via email to