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