Title: [1120] trunk/qdox: QDOX-227: introducing CommentHandler

Diff

Modified: trunk/qdox/pom.xml (1119 => 1120)

--- trunk/qdox/pom.xml	2011-03-15 21:39:36 UTC (rev 1119)
+++ trunk/qdox/pom.xml	2011-03-16 21:18:33 UTC (rev 1120)
@@ -243,7 +243,7 @@
                 <argument>-Jnorun</argument>
                 <argument>-Jnoconstruct</argument>
                 <argument>-Jclass=Parser</argument>
-                <!-- <argument>-Jimplements=CommentHandler</argument> -->
+                <argument>-Jimplements=CommentHandler</argument>
                 <argument>-Jsemantic=Value</argument>
                 <argument>-Jpackage=com.thoughtworks.qdox.parser.impl</argument>
                 <argument>${basedir}/src/grammar/parser.y</argument>

Modified: trunk/qdox/src/grammar/commentlexer.flex (1119 => 1120)

--- trunk/qdox/src/grammar/commentlexer.flex	2011-03-15 21:39:36 UTC (rev 1119)
+++ trunk/qdox/src/grammar/commentlexer.flex	2011-03-16 21:18:33 UTC (rev 1120)
@@ -32,6 +32,8 @@
 %column
 
 %{
+    private int lineOffset = 1;
+    private int columnOffset =1;
 
     private int stateDepth = 0;
     private int[] stateStack = new int[10];
@@ -48,13 +50,21 @@
     }
     
     public int getLine() {
-        return yyline + 1;
+        return yyline + lineOffset;
     }
+    
+    public void setLineOffset(int lineOffset) {
+      this.lineOffset = lineOffset;
+    }
 
     public int getColumn() {
-        return yycolumn + 1;
+        return yycolumn + columnOffset;
     }
     
+    public void setColumnOffset(int columnOffset) {
+      this.columnOffset = columnOffset;
+    }
+    
     public String getCodeBody(){
         String s = codeBody.toString();
         codeBody = new StringBuffer(8192);
@@ -117,14 +127,22 @@
                         popState(); 
                         return DefaultJavaCommentParser.JAVADOCEND;
                       }
+    "@"               { 
+                        yypushback(1);
+                        pushState(JAVADOCTAG); 
+                      }
+    [^ \t\r]		  { 
+                        yypushback(1); 
+                        pushState(JAVADOCLINE); 
+                      }
 }
-<JAVADOCCONTENT,JAVADOC> {
+<JAVADOCCONTENT> {
     [^ \t\r@]		  { 
                         yypushback(1); 
                         popState();
                         pushState(JAVADOCLINE); 
                       }
-    [ \t\r]* "@"      { 
+    "@"      { 
                         yypushback(1);
                         popState(); 
                         pushState(JAVADOCTAG); 

Modified: trunk/qdox/src/grammar/commentparser.y (1119 => 1120)

--- trunk/qdox/src/grammar/commentparser.y	2011-03-15 21:39:36 UTC (rev 1119)
+++ trunk/qdox/src/grammar/commentparser.y	2011-03-16 21:18:33 UTC (rev 1120)
@@ -41,6 +41,9 @@
                       builder.addJavaDoc(buffer()); 
                     };
 
+javadoctokens_opt:
+                 | javadoctokens;
+                 
 javadoctokens: javadoctoken
              | javadoctokens javadoctoken;
 
@@ -59,7 +62,7 @@
             { 
               line = lexer.getLine(); 
             } 
-            javadoctokens 
+            javadoctokens_opt 
             {
               builder.addJavaDocTag(new TagDef($1.substring(1), buffer(), line)); 
             };

Modified: trunk/qdox/src/grammar/lexer.flex (1119 => 1120)

--- trunk/qdox/src/grammar/lexer.flex	2011-03-15 21:39:36 UTC (rev 1119)
+++ trunk/qdox/src/grammar/lexer.flex	2011-03-16 21:18:33 UTC (rev 1120)
@@ -20,12 +20,14 @@
  */
 
 import com.thoughtworks.qdox.parser.*;
+import java.util.*;
+
 %%
 
 // class and lexer definitions
 %class JFlexLexer
 %public
-%implements Lexer
+%implements JavaLexer
 %byaccj
 %unicode
 %line
@@ -33,6 +35,7 @@
 
 %{
 	private java.io.Writer writer;
+	private List<CommentHandler> commentHandlers = new ArrayList<CommentHandler>();
 
     private int classDepth = 0;
     private int parenDepth = 0;
@@ -110,6 +113,10 @@
         return s;
     }
     
+    public void addCommentHandler(CommentHandler handler) {
+      this.commentHandlers.add(handler);
+    }
+    
     public JFlexLexer( java.io.Reader reader, java.io.Writer writer ) {
        this( reader );
        this.writer = writer;
@@ -236,9 +243,9 @@
     }
 
     "/**" ~"*/" {
-        pushState(JAVADOC);
-        yypushStream(new java.io.StringReader(text().substring(2))); 
-        return Parser.JAVADOCSTART;
+      for( CommentHandler handler: commentHandlers ) {
+        handler.onComment( text(), getLine(), getColumn() );
+      }
     }
 
     "=" {WhiteSpace}* { 
@@ -290,26 +297,6 @@
             }
           }
 }
-<JAVADOC> {
-    "@"               { yypushback(1); pushState(JAVADOCTAG); }
-    [^ \t\r*@]		  { yypushback(1); pushState(JAVADOCLINE); }
-    "*"+ [ \t]* / "@" { pushState(JAVADOCTAG); }
-    "*"+ [ \t]?       { pushState(JAVADOCLINE); }
-    {JavadocEnd}      { popState(); yypopStream(); return Parser.JAVADOCEND; }
-}
-<JAVADOCLINE> {
-  ~{Eol}                           { popState(); return Parser.JAVADOCLINE; }
-  .* [^ \t*] / [ \t]* {JavadocEnd} { popState(); return Parser.JAVADOCLINE;}
-  {JavadocEnd}                     { popState(); popState(); yypopStream(); return Parser.JAVADOCEND; }
-}
-
-<JAVADOCTAG> {
-  "@" [^ \t\n\r]+ / {JavadocEnd} { popState(); return Parser.JAVADOCTAG;  }
-  "@" [^ \t\n\r]+                { return Parser.JAVADOCTAG; }
-  [ \t]+                         { popState();pushState(JAVADOCLINE);}
-  {Eol}                          { popState();return Parser.JAVADOCLINE;}
-}
-
 <CODEBLOCK> {
      "{"  { 
             if(codeblockDepth++ > 0 ) {

Modified: trunk/qdox/src/grammar/parser.y (1119 => 1120)

--- trunk/qdox/src/grammar/parser.y	2011-03-15 21:39:36 UTC (rev 1119)
+++ trunk/qdox/src/grammar/parser.y	2011-03-16 21:18:33 UTC (rev 1120)
@@ -38,12 +38,11 @@
 %token TILDE AMPERSAND VERTLINE CIRCUMFLEX
 %token VOID
 %token QUERY COLON AT
-%token JAVADOCSTART JAVADOCEND JAVADOCEOL
 %token CODEBLOCK PARENBLOCK
 %token BYTE SHORT INT LONG CHAR FLOAT DOUBLE BOOLEAN
 
 // strongly typed tokens/types
-%token <sval> IDENTIFIER JAVADOCTAG JAVADOCLINE
+%token <sval> IDENTIFIER
 %token <sval> BOOLEAN_LITERAL
 %token <sval> INTEGER_LITERAL
 %token <sval> LONG_LITERAL
@@ -78,7 +77,6 @@
                       | PackageDeclaration_opt PackageDeclaration;
 
 PackageDeclaration: package
-                  | javadoc
                   | annotation;
                       
 package: PACKAGE 
@@ -94,8 +92,7 @@
 ImportDeclarations_opt: 
 				      | ImportDeclarations_opt ImportDeclaration;
 
-ImportDeclaration:  javadoc /*tmp*/ | 
-                 SingleTypeImportDeclaration
+ImportDeclaration: SingleTypeImportDeclaration
                  | TypeImportOnDemandDeclaration
                  | SingleStaticImportDeclaration
                  | StaticImportOnDemandDeclaration;
@@ -132,8 +129,7 @@
                       } 
                       TypeDeclaration;
 
-TypeDeclaration: javadoc /*tmp*/ | 
-                 ClassDeclaration
+TypeDeclaration: ClassDeclaration
 /*               | InterfaceDeclaration */
                | SEMI;
 
@@ -142,31 +138,6 @@
 ClassDeclaration: NormalClassDeclaration	
                 | EnumDeclaration;
                 
-// ----- JAVADOC
-
-javadoc: JAVADOCSTART javadocdescription javadoctags JAVADOCEND;
-
-javadocdescription: 
-    javadoctokens { 
-        builder.addJavaDoc(buffer()); 
-    };
-
-javadoctokens: | javadoctokens javadoctoken;
-
-javadoctoken: 
-    JAVADOCLINE {
-        appendToBuffer($1);
-    };
-
-javadoctags: | javadoctags javadoctag;
-
-javadoctag: 
-    JAVADOCTAG { line = lexer.getLine(); } 
-    javadoctokens {
-        builder.addJavaDocTag(new TagDef($1.substring(1), buffer(), line)); 
-    };
-
-
 // ----- COMMON TOKENS
 
 // A fullidentifier is "a", "a.b", "a.b.c", etc...
@@ -191,7 +162,6 @@
 
 modifiers:
     modifiers modifier |
-    modifiers javadoc |
     ;
 
 
@@ -591,10 +561,7 @@
 extrafields: | 
     extrafields COMMA { line = lexer.getLine(); } VariableDeclaratorId {
         makeField($4, lexer.getCodeBody());
-    } | 
-    extrafields COMMA javadoc { line = lexer.getLine(); } VariableDeclaratorId {
-        makeField($5, lexer.getCodeBody());
-    };
+    }; 
 
 // 8.3 Field Declarations...
 VariableDeclaratorId: IDENTIFIER Dims_opt 
@@ -714,14 +681,13 @@
 
 opt_annotations: 
                | opt_annotations annotation;
-               | opt_annotations javadoc;
 
 VariableModifiers_opt: 
                      | VariableModifiers_opt modifier;
 
 %%
 
-private Lexer lexer;
+private JavaLexer lexer;
 private Builder builder;
 private StringBuffer textBuffer = new StringBuffer();
 private ClassDef cls = new ClassDef();
@@ -755,7 +721,9 @@
     return result;
 }
 
-public Parser(Lexer lexer, Builder builder) {
+public Parser( JavaLexer lexer, Builder builder ) 
+{
+    lexer.addCommentHandler( this );
     this.lexer = lexer;
     this.builder = builder;
 }
@@ -815,6 +783,16 @@
     builder.addField(fd);
 }
 
+public void onComment( String comment, int line, int column ) {
+  DefaultJavaCommentLexer commentLexer  = new DefaultJavaCommentLexer( new java.io.StringReader( comment ) );
+  commentLexer.setLineOffset( line );
+  commentLexer.setColumnOffset( column );
+  DefaultJavaCommentParser commentParser = new DefaultJavaCommentParser( commentLexer, builder);
+  commentParser.setDebugLexer( this.debugLexer );
+  commentParser.setDebugParser( this.yydebug );
+  commentParser.parse();
+}
+
 private String convertString(String str) {
 	StringBuffer buf = new StringBuffer();
 	boolean escaped = false;

Modified: trunk/qdox/src/java/com/thoughtworks/qdox/builder/ModelBuilder.java (1119 => 1120)

--- trunk/qdox/src/java/com/thoughtworks/qdox/builder/ModelBuilder.java	2011-03-15 21:39:36 UTC (rev 1119)
+++ trunk/qdox/src/java/com/thoughtworks/qdox/builder/ModelBuilder.java	2011-03-16 21:18:33 UTC (rev 1120)
@@ -59,7 +59,7 @@
     private DefaultJavaMethod currentMethod;
     private List<AnnoDef> currentAnnoDefs;
     private String lastComment;
-    private List<TagDef> lastTagSet;
+    private List<TagDef> lastTagSet = new LinkedList<TagDef>();
     private DocletTagFactory docletTagFactory;
     private ModelWriterFactory modelWriterFactory;
 
@@ -91,7 +91,6 @@
 
     public void addJavaDoc(String text) {
         lastComment = text;
-        lastTagSet = new LinkedList<TagDef>();
     }
 
     public void addJavaDocTag(TagDef tagDef) {
@@ -184,9 +183,6 @@
     }
 
     private void addJavaDoc(AbstractBaseJavaEntity entity) {
-        if (lastComment == null) {
-            return;
-        } 
         entity.setComment(lastComment);
         List<DocletTag> tagList = new LinkedList<DocletTag>();
         for (TagDef tagDef : lastTagSet) {
@@ -199,6 +195,7 @@
         }
         entity.setTags(tagList);
         
+        lastTagSet.clear();
         lastComment = null;
     }
     

Modified: trunk/qdox/src/java/com/thoughtworks/qdox/library/ClassLoaderLibrary.java (1119 => 1120)

--- trunk/qdox/src/java/com/thoughtworks/qdox/library/ClassLoaderLibrary.java	2011-03-15 21:39:36 UTC (rev 1119)
+++ trunk/qdox/src/java/com/thoughtworks/qdox/library/ClassLoaderLibrary.java	2011-03-16 21:18:33 UTC (rev 1120)
@@ -30,7 +30,7 @@
 import com.thoughtworks.qdox.model.DefaultJavaPackage;
 import com.thoughtworks.qdox.model.JavaClass;
 import com.thoughtworks.qdox.model.JavaPackage;
-import com.thoughtworks.qdox.parser.Lexer;
+import com.thoughtworks.qdox.parser.JavaLexer;
 import com.thoughtworks.qdox.parser.impl.BinaryClassParser;
 import com.thoughtworks.qdox.parser.impl.JFlexLexer;
 import com.thoughtworks.qdox.parser.impl.Parser;
@@ -108,7 +108,7 @@
             InputStream sourceStream = classLoader.getResourceAsStream( resource );
             if(sourceStream != null) {
                 ModelBuilder builder = getModelBuilder();
-                Lexer lexer = new JFlexLexer( sourceStream );
+                JavaLexer lexer = new JFlexLexer( sourceStream );
                 Parser parser = new Parser( lexer, builder );
                 parser.setDebugLexer( debugLexer );
                 parser.setDebugParser( debugParser );

Modified: trunk/qdox/src/java/com/thoughtworks/qdox/library/SourceLibrary.java (1119 => 1120)

--- trunk/qdox/src/java/com/thoughtworks/qdox/library/SourceLibrary.java	2011-03-15 21:39:36 UTC (rev 1119)
+++ trunk/qdox/src/java/com/thoughtworks/qdox/library/SourceLibrary.java	2011-03-16 21:18:33 UTC (rev 1120)
@@ -31,11 +31,10 @@
 import java.util.List;
 
 import com.thoughtworks.qdox.builder.ModelBuilder;
-import com.thoughtworks.qdox.model.DefaultJavaPackage;
 import com.thoughtworks.qdox.model.JavaClass;
 import com.thoughtworks.qdox.model.JavaPackage;
 import com.thoughtworks.qdox.model.JavaSource;
-import com.thoughtworks.qdox.parser.Lexer;
+import com.thoughtworks.qdox.parser.JavaLexer;
 import com.thoughtworks.qdox.parser.ParseException;
 import com.thoughtworks.qdox.parser.impl.JFlexLexer;
 import com.thoughtworks.qdox.parser.impl.Parser;
@@ -168,7 +167,7 @@
         }
     }
 
-    private JavaSource parse( Lexer lexer )
+    private JavaSource parse( JavaLexer lexer )
         throws ParseException
     {
         JavaSource result = null;

Modified: trunk/qdox/src/java/com/thoughtworks/qdox/model/ClassLibrary.java (1119 => 1120)

--- trunk/qdox/src/java/com/thoughtworks/qdox/model/ClassLibrary.java	2011-03-15 21:39:36 UTC (rev 1119)
+++ trunk/qdox/src/java/com/thoughtworks/qdox/model/ClassLibrary.java	2011-03-16 21:18:33 UTC (rev 1120)
@@ -37,7 +37,7 @@
 import com.thoughtworks.qdox.builder.ModelBuilder;
 import com.thoughtworks.qdox.builder.ModelBuilderFactory;
 import com.thoughtworks.qdox.library.JavaClassContext;
-import com.thoughtworks.qdox.parser.Lexer;
+import com.thoughtworks.qdox.parser.JavaLexer;
 import com.thoughtworks.qdox.parser.ParseException;
 import com.thoughtworks.qdox.parser.impl.BinaryClassParser;
 import com.thoughtworks.qdox.parser.impl.JFlexLexer;
@@ -328,7 +328,7 @@
     
     public JavaSource addSource(Reader reader, String sourceInfo) {
         ModelBuilder builder = modelBuilderFactory.newInstance();
-        Lexer lexer = new JFlexLexer(reader);
+        JavaLexer lexer = new JFlexLexer(reader);
         Parser parser = new Parser(lexer, builder);
         parser.setDebugLexer(debugLexer);
         parser.setDebugParser(debugParser);

Modified: trunk/qdox/src/java/com/thoughtworks/qdox/parser/CommentHandler.java (1119 => 1120)

--- trunk/qdox/src/java/com/thoughtworks/qdox/parser/CommentHandler.java	2011-03-15 21:39:36 UTC (rev 1119)
+++ trunk/qdox/src/java/com/thoughtworks/qdox/parser/CommentHandler.java	2011-03-16 21:18:33 UTC (rev 1120)
@@ -30,5 +30,5 @@
  */
 public interface CommentHandler
 {
-  public void onComment(String comment);
+  public void onComment(String comment, int line, int column);
 }

Modified: trunk/qdox/src/test/com/thoughtworks/qdox/JavaProjectBuilderTest.java (1119 => 1120)

--- trunk/qdox/src/test/com/thoughtworks/qdox/JavaProjectBuilderTest.java	2011-03-15 21:39:36 UTC (rev 1119)
+++ trunk/qdox/src/test/com/thoughtworks/qdox/JavaProjectBuilderTest.java	2011-03-16 21:18:33 UTC (rev 1120)
@@ -39,6 +39,8 @@
     protected void setUp() throws Exception {
         super.setUp();
         builder = new JavaProjectBuilder();
+        builder.setDebugLexer( true );
+        builder.setDebugParser( true );
         createFile("target/test-source/com/blah/Thing.java", "com.blah", "Thing");
         createFile("target/test-source/com/blah/Another.java", "com.blah", "Another");
         createFile("target/test-source/com/blah/subpackage/Cheese.java", "com.blah.subpackage", "Cheese");

Modified: trunk/qdox/src/test/com/thoughtworks/qdox/parser/LexerTest.java (1119 => 1120)

--- trunk/qdox/src/test/com/thoughtworks/qdox/parser/LexerTest.java	2011-03-15 21:39:36 UTC (rev 1119)
+++ trunk/qdox/src/test/com/thoughtworks/qdox/parser/LexerTest.java	2011-03-16 21:18:33 UTC (rev 1120)
@@ -302,167 +302,6 @@
         assertLex(0, lexer);
     }
 
-    public void testDocletTags() throws Exception {
-        String in = ""
-                + "/**\n"
-                + " * @hello world\n"
-                + " * @a b c d\n"
-                + " * @bye\n"
-                + " * @bye:bye\n"
-                + " */";
-        Lexer lexer = new JFlexLexer(new StringReader(in));
-        assertLex(Parser.JAVADOCSTART, lexer);
-
-        assertLex(Parser.JAVADOCLINE, "\n",lexer);
-        assertLex(Parser.JAVADOCTAG, "@hello", lexer);
-        assertLex(Parser.JAVADOCLINE, "world\n", lexer);
-
-        assertLex(Parser.JAVADOCTAG, "@a", lexer);
-        assertLex(Parser.JAVADOCLINE, "b c d\n", lexer);
-
-        assertLex(Parser.JAVADOCTAG, "@bye", lexer);
-        assertLex(Parser.JAVADOCLINE, "\n",lexer);
-
-        assertLex(Parser.JAVADOCTAG, "@bye:bye", lexer);
-        assertLex(Parser.JAVADOCLINE, "\n",lexer);
-
-        assertLex(Parser.JAVADOCEND, lexer);
-        assertLex(0, lexer);
-    }
-
-    public void testOneLinerDocComment() throws Exception {
-        String in = "/** @hello world */";
-        Lexer lexer = new JFlexLexer(new StringReader(in));
-        assertLex(Parser.JAVADOCSTART, lexer);
-
-        assertLex(Parser.JAVADOCTAG, "@hello", lexer);
-        assertLex(Parser.JAVADOCLINE, "world", lexer);
-
-        assertLex(Parser.JAVADOCEND, lexer);
-        assertLex(0, lexer);
-    }
-
-    public void testCompressedDocComment() throws Exception {
-        String in = "/**@foo bar*/";
-        Lexer lexer = new JFlexLexer(new StringReader(in));
-        assertLex(Parser.JAVADOCSTART, lexer);
-        
-        assertLex(Parser.JAVADOCTAG, "@foo", lexer);
-        assertLex(Parser.JAVADOCLINE, "bar", lexer);
-        
-        assertLex(Parser.JAVADOCEND, lexer);
-        assertLex(0, lexer);
-    }
-
-    public void testDeepJavadocTag() throws Exception {
-        String in = "  /** *  *** * @m x \n" +
-        		"*/";
-        Lexer lexer = new JFlexLexer(new StringReader(in));
-        assertLex(Parser.JAVADOCSTART, lexer);
-        
-        assertLex(Parser.JAVADOCLINE, "*  *** * @m x \n", lexer);
-        
-        assertLex(Parser.JAVADOCEND, lexer);
-        assertLex(0, lexer); 
-    }
-
-    public void testDocCommentContainingAtSymbols() throws Exception {
-        String in = ""
-            + "/**\n"
-            + " * [email protected]\n"
-            + " * {@link here}.\n"
-            + " * me @home\n"
-            + " * geeks @ play\n"
-            + " */";
-        Lexer lexer = new JFlexLexer(new StringReader(in));
-        assertLex(Parser.JAVADOCSTART, lexer);
-
-        assertLex(Parser.JAVADOCLINE, "\n", lexer);
-        assertLex(Parser.JAVADOCLINE, "[email protected]\n", lexer);
-        assertLex(Parser.JAVADOCLINE, "{@link here}.\n", lexer);
-        assertLex(Parser.JAVADOCLINE, "me @home\n", lexer);
-        assertLex(Parser.JAVADOCLINE, "geeks @ play\n", lexer);
-
-        assertLex(Parser.JAVADOCEND, lexer);
-        assertLex(0, lexer);
-    }
-
-    public void testDocCommentContainingStars() throws Exception {
-        String in = ""
-                + "/**\n"
-                + " * 5 * 4\n"
-                + " * SELECT COUNT(*)\n"
-                + " * **stars**everywhere** \n"
-                + " */";
-        Lexer lexer = new JFlexLexer(new StringReader(in));
-        assertLex(Parser.JAVADOCSTART, lexer);
-
-        assertLex(Parser.JAVADOCLINE, "\n", lexer);
-        assertLex(Parser.JAVADOCLINE, "5 * 4\n", lexer);
-        assertLex(Parser.JAVADOCLINE, "SELECT COUNT(*)\n", lexer);
-        assertLex(Parser.JAVADOCLINE, "**stars**everywhere** \n", lexer);
-
-        assertLex(Parser.JAVADOCEND, lexer);
-        assertLex(0, lexer);
-    }
-
-    public void testExtraStarsAreIgnoredAtStartAndEnd() throws Exception {
-        String in = ""
-                + "/*****\n"
-                + " * blah\n"
-                + " *****/";
-        Lexer lexer = new JFlexLexer(new StringReader(in));
-        assertLex(Parser.JAVADOCSTART, lexer);
-        assertLex(Parser.JAVADOCLINE, "\n", lexer);
-        assertLex(Parser.JAVADOCLINE, "blah\n", lexer);
-        assertLex(Parser.JAVADOCEND, lexer);
-        assertLex(0, lexer);
-    }
-
-    public void testExtraStarsCompressed() throws Exception {
-        String in = ""
-                + "/***blah***/public";
-        Lexer lexer = new JFlexLexer(new StringReader(in));
-        assertLex(Parser.JAVADOCSTART, lexer);
-        assertLex(Parser.JAVADOCLINE, "blah", lexer);
-        assertLex(Parser.JAVADOCEND, lexer);
-        assertLex(Parser.PUBLIC, lexer);
-        assertLex(0, lexer);
-    }
-
-    public void testIgnoreStarPrefix() throws Exception {
-        String in = ""
-            + "/**\n"
-            + " * simple\n"
-            + "\t    * indented\n"
-            + " *nospace\n"
-            + " *** multistar\n"
-            + " *\n"
-            + " */";
-        Lexer lexer = new JFlexLexer(new StringReader(in));
-        assertLex(Parser.JAVADOCSTART, lexer);
-        
-        assertLex(Parser.JAVADOCLINE, "\n", lexer);
-        assertLex(Parser.JAVADOCLINE, "simple\n", lexer);
-        assertLex(Parser.JAVADOCLINE, "indented\n", lexer);
-        assertLex(Parser.JAVADOCLINE, "nospace\n", lexer);
-        assertLex(Parser.JAVADOCLINE, "multistar\n", lexer);
-        assertLex(Parser.JAVADOCLINE, "\n", lexer);
-        
-        assertLex(Parser.JAVADOCEND, lexer);
-        assertLex(0, lexer);
-    }
-    
-    // QDOX-200
-    public void testCompactJavaDocTag() throws Exception {
-        String in = "/** @foo*/";
-        Lexer lexer = new JFlexLexer(new StringReader(in));
-        assertLex(Parser.JAVADOCSTART, lexer);
-        assertLex(Parser.JAVADOCTAG, "@foo", lexer);
-        assertLex(Parser.JAVADOCEND, lexer);      
-        assertLex(0, lexer);
-    }
-
     public void testArrayTokens() throws Exception {
         String in = "String[] []o[]";
         Lexer lexer = new JFlexLexer(new StringReader(in));

Modified: trunk/qdox/src/test/com/thoughtworks/qdox/parser/ParserTest.java (1119 => 1120)

--- trunk/qdox/src/test/com/thoughtworks/qdox/parser/ParserTest.java	2011-03-15 21:39:36 UTC (rev 1119)
+++ trunk/qdox/src/test/com/thoughtworks/qdox/parser/ParserTest.java	2011-03-16 21:18:33 UTC (rev 1120)
@@ -29,7 +29,7 @@
     private Collection<Integer> lexValues = new LinkedList<Integer>();
     private Collection<String> textValues = new LinkedList<String>();
     
-    private Lexer lexer;
+    private JavaLexer lexer;
     private Builder builder;
 
     public ParserTest(String s) {
@@ -38,7 +38,7 @@
 
     protected void setUp() throws Exception {
         builder = mock(Builder.class);
-        lexer = mock(Lexer.class);
+        lexer = mock(JavaLexer.class);
         lexValues.clear();
         textValues.clear();
     }
@@ -248,134 +248,6 @@
         verify( builder ).addImport( "static com.blah.Thingy.*" );
     }
 
-    public void testOneLineJavaDoc() throws Exception {
-
-        // setup values
-        setupLex(Parser.JAVADOCSTART);
-        setupLex(Parser.JAVADOCLINE, "This is great!");
-        setupLex(Parser.JAVADOCEND);
-        setupLex(0);
-
-        // execute
-        Parser parser = new Parser(lexer, builder);
-        parser.parse();
-
-        // verify
-        verify(builder).addJavaDoc( "This is great!" );
-    }
-
-    public void testOneJavaDocTag() throws Exception {
-
-        // setup values
-        setupLex(Parser.JAVADOCSTART);
-        setupLex(Parser.JAVADOCTAG, "@This");
-        setupLex(Parser.JAVADOCLINE, "is great!");
-        setupLex(Parser.JAVADOCEND);
-        setupLex(0);
-
-        // execute
-        Parser parser = new Parser(lexer, builder);
-        parser.parse();
-
-        // verify
-        verify(builder).addJavaDoc( "" );
-        verify(builder).addJavaDocTag( new TagDef("This", "is great!") );
-    }
-
-    public void testOneJavaDocTagWithNoValue() throws Exception {
-
-        // setup values
-        setupLex(Parser.JAVADOCSTART);
-        setupLex(Parser.JAVADOCTAG, "@eatme");
-        setupLex(Parser.JAVADOCEND);
-        setupLex(0);
-
-        // execute
-        Parser parser = new Parser(lexer, builder);
-        parser.parse();
-
-        // verify
-        verify(builder).addJavaDoc( "" );
-        verify(builder).addJavaDocTag( new TagDef("eatme", "") );
-    }
-
-    public void testOneMultiLineJavaDocTag() throws Exception {
-
-        // setup values
-        setupLex(Parser.JAVADOCSTART);
-        setupLex(Parser.JAVADOCTAG, "@This");
-        setupLex(Parser.JAVADOCLINE, "is great! Mmmkay.");
-        setupLex(Parser.JAVADOCEND);
-        setupLex(0);
-
-        // execute
-        Parser parser = new Parser(lexer, builder);
-        parser.parse();
-
-        // verify
-        verify(builder).addJavaDoc( "" );
-        verify(builder).addJavaDocTag( new TagDef("This", "is great! Mmmkay.") );
-    }
-
-    public void testMultipleJavaDocTags() throws Exception {
-
-        // setup values
-        setupLex(Parser.JAVADOCSTART);
-        setupLex(Parser.JAVADOCTAG, "@This");
-        setupLex(Parser.JAVADOCLINE, "is great!");
-        setupLex(Parser.JAVADOCTAG, "@mock");
-        setupLex(Parser.JAVADOCLINE, "generate");
-        setupLex(Parser.JAVADOCEND);
-        setupLex(0);
-
-        // execute
-        Parser parser = new Parser(lexer, builder);
-        parser.parse();
-
-        // verify
-        verify(builder).addJavaDoc( "" );
-        verify(builder).addJavaDocTag( new TagDef("This", "is great!") );
-        verify(builder).addJavaDocTag( new TagDef("mock", "generate") );
-    }
-
-    public void testJavaDocTextAndMultipleJavaDocTags() throws Exception {
-
-        // setup values
-        setupLex(Parser.JAVADOCSTART);
-        setupLex(Parser.JAVADOCLINE, "Welcome! Here is my class.");
-        setupLex(Parser.JAVADOCTAG, "@This");
-        setupLex(Parser.JAVADOCLINE, "is great!");
-        setupLex(Parser.JAVADOCTAG, "@mock");
-        setupLex(Parser.JAVADOCLINE, "generate");
-        setupLex(Parser.JAVADOCEND);
-        setupLex(0);
-
-        // execute
-        Parser parser = new Parser(lexer, builder);
-        parser.parse();
-
-        // verify
-        verify(builder).addJavaDoc( "Welcome! Here is my class." );
-        verify(builder).addJavaDocTag( new TagDef("This", "is great!") );
-        verify(builder).addJavaDocTag( new TagDef("mock", "generate") );
-
-    }
-
-    public void testJavaDocEmpty() throws Exception {
-
-        // setup values
-        setupLex(Parser.JAVADOCSTART);
-        setupLex(Parser.JAVADOCEND);
-        setupLex(0);
-
-        // execute
-        Parser parser = new Parser(lexer, builder);
-        parser.parse();
-
-        // verify
-        verify(builder).addJavaDoc( "" );
-    }
-
     public void testEmptyVanillaClass() throws Exception {
 
         // setup values
@@ -793,101 +665,102 @@
         verify(builder, times(2)).endClass();
     }
 
-    public void testJavaDocAppearingAllOverThePlace() throws Exception {
+/*can't be tested like this anymore*/    
+//    public void testJavaDocAppearingAllOverThePlace() throws Exception {
+//
+//        // setup values
+//        setupLex(Parser.JAVADOCSTART);
+//        setupLex(Parser.JAVADOCLINE, "javadoc1");
+//        setupLex(Parser.JAVADOCEND);
+//
+//        setupLex(Parser.JAVADOCSTART);
+//        setupLex(Parser.JAVADOCLINE, "javadoc2");
+//        setupLex(Parser.JAVADOCEND);
+//
+//        setupLex(Parser.PACKAGE);
+//        setupLex(Parser.IDENTIFIER, "mypackage");
+//        setupLex(Parser.SEMI);
+//
+//        setupLex(Parser.JAVADOCSTART);
+//        setupLex(Parser.JAVADOCLINE, "javadoc3");
+//        setupLex(Parser.JAVADOCEND);
+//
+//        setupLex(Parser.JAVADOCSTART);
+//        setupLex(Parser.JAVADOCLINE, "javadoc4");
+//        setupLex(Parser.JAVADOCEND);
+//
+//        setupLex(Parser.IMPORT);
+//        setupLex(Parser.IDENTIFIER, "anotherpackage");
+//        setupLex(Parser.DOT);
+//        setupLex(Parser.IDENTIFIER, "Something");
+//        setupLex(Parser.SEMI);
+//
+//        setupLex(Parser.JAVADOCSTART);
+//        setupLex(Parser.JAVADOCLINE, "javadoc5");
+//        setupLex(Parser.JAVADOCEND);
+//
+//        setupLex(Parser.JAVADOCSTART);
+//        setupLex(Parser.JAVADOCLINE, "javadoc6");
+//        setupLex(Parser.JAVADOCEND);
+//
+//        setupLex(Parser.IMPORT);
+//        setupLex(Parser.IDENTIFIER, "elsewhere");
+//        setupLex(Parser.DOT);
+//        setupLex(Parser.STAR);
+//        setupLex(Parser.SEMI);
+//
+//        setupLex(Parser.JAVADOCSTART);
+//        setupLex(Parser.JAVADOCLINE, "javadoc7");
+//        setupLex(Parser.JAVADOCEND);
+//
+//        setupLex(Parser.JAVADOCSTART);
+//        setupLex(Parser.JAVADOCLINE, "javadoc8");
+//        setupLex(Parser.JAVADOCEND);
+//
+//        setupLex(Parser.PUBLIC);
+//        setupLex(Parser.CLASS);
+//        setupLex(Parser.IDENTIFIER, "MyClass");
+//        setupLex(Parser.BRACEOPEN);
+//        setupLex(Parser.BRACECLOSE);
+//
+//        setupLex(Parser.JAVADOCSTART);
+//        setupLex(Parser.JAVADOCLINE, "javadoc9");
+//        setupLex(Parser.JAVADOCEND);
+//
+//        setupLex(Parser.JAVADOCSTART);
+//        setupLex(Parser.JAVADOCLINE, "javadoc10");
+//        setupLex(Parser.JAVADOCEND);
+//
+//        setupLex(0);
+//
+//        // execute
+//        Parser parser = new Parser(lexer, builder);
+//        parser.parse();
+//
+//        // expectations
+//        ClassDef cls = new ClassDef();
+//        cls.name = "MyClass";
+//        cls.modifiers.add("public");
+//        
+//        // verify
+//        verify(builder).addJavaDoc("javadoc1");
+//        verify(builder).addJavaDoc("javadoc2");
+//        verify(builder).addPackage( new PackageDef( "mypackage" ) );
+//        verify(builder).addJavaDoc("javadoc3");
+//        verify(builder).addJavaDoc("javadoc4");
+//        verify(builder).addImport( "anotherpackage.Something" );
+//        verify(builder).addJavaDoc("javadoc5");
+//        verify(builder).addJavaDoc("javadoc6");
+//        verify(builder).addImport("elsewhere.*");
+//        verify(builder).addJavaDoc("javadoc7");
+//        verify(builder).beginClass( cls );
+//        verify(builder).endClass();
+//        verify(builder).addJavaDoc("javadoc8");
+//        verify(builder).addJavaDoc("javadoc9");
+//        verify(builder).addJavaDoc("javadoc10");
+//
+//    }
 
-        // setup values
-        setupLex(Parser.JAVADOCSTART);
-        setupLex(Parser.JAVADOCLINE, "javadoc1");
-        setupLex(Parser.JAVADOCEND);
-
-        setupLex(Parser.JAVADOCSTART);
-        setupLex(Parser.JAVADOCLINE, "javadoc2");
-        setupLex(Parser.JAVADOCEND);
-
-        setupLex(Parser.PACKAGE);
-        setupLex(Parser.IDENTIFIER, "mypackage");
-        setupLex(Parser.SEMI);
-
-        setupLex(Parser.JAVADOCSTART);
-        setupLex(Parser.JAVADOCLINE, "javadoc3");
-        setupLex(Parser.JAVADOCEND);
-
-        setupLex(Parser.JAVADOCSTART);
-        setupLex(Parser.JAVADOCLINE, "javadoc4");
-        setupLex(Parser.JAVADOCEND);
-
-        setupLex(Parser.IMPORT);
-        setupLex(Parser.IDENTIFIER, "anotherpackage");
-        setupLex(Parser.DOT);
-        setupLex(Parser.IDENTIFIER, "Something");
-        setupLex(Parser.SEMI);
-
-        setupLex(Parser.JAVADOCSTART);
-        setupLex(Parser.JAVADOCLINE, "javadoc5");
-        setupLex(Parser.JAVADOCEND);
-
-        setupLex(Parser.JAVADOCSTART);
-        setupLex(Parser.JAVADOCLINE, "javadoc6");
-        setupLex(Parser.JAVADOCEND);
-
-        setupLex(Parser.IMPORT);
-        setupLex(Parser.IDENTIFIER, "elsewhere");
-        setupLex(Parser.DOT);
-        setupLex(Parser.STAR);
-        setupLex(Parser.SEMI);
-
-        setupLex(Parser.JAVADOCSTART);
-        setupLex(Parser.JAVADOCLINE, "javadoc7");
-        setupLex(Parser.JAVADOCEND);
-
-        setupLex(Parser.JAVADOCSTART);
-        setupLex(Parser.JAVADOCLINE, "javadoc8");
-        setupLex(Parser.JAVADOCEND);
-
-        setupLex(Parser.PUBLIC);
-        setupLex(Parser.CLASS);
-        setupLex(Parser.IDENTIFIER, "MyClass");
-        setupLex(Parser.BRACEOPEN);
-        setupLex(Parser.BRACECLOSE);
-
-        setupLex(Parser.JAVADOCSTART);
-        setupLex(Parser.JAVADOCLINE, "javadoc9");
-        setupLex(Parser.JAVADOCEND);
-
-        setupLex(Parser.JAVADOCSTART);
-        setupLex(Parser.JAVADOCLINE, "javadoc10");
-        setupLex(Parser.JAVADOCEND);
-
-        setupLex(0);
-
-        // execute
-        Parser parser = new Parser(lexer, builder);
-        parser.parse();
-
-        // expectations
-        ClassDef cls = new ClassDef();
-        cls.name = "MyClass";
-        cls.modifiers.add("public");
-        
-        // verify
-        verify(builder).addJavaDoc("javadoc1");
-        verify(builder).addJavaDoc("javadoc2");
-        verify(builder).addPackage( new PackageDef( "mypackage" ) );
-        verify(builder).addJavaDoc("javadoc3");
-        verify(builder).addJavaDoc("javadoc4");
-        verify(builder).addImport( "anotherpackage.Something" );
-        verify(builder).addJavaDoc("javadoc5");
-        verify(builder).addJavaDoc("javadoc6");
-        verify(builder).addImport("elsewhere.*");
-        verify(builder).addJavaDoc("javadoc7");
-        verify(builder).beginClass( cls );
-        verify(builder).endClass();
-        verify(builder).addJavaDoc("javadoc8");
-        verify(builder).addJavaDoc("javadoc9");
-        verify(builder).addJavaDoc("javadoc10");
-
-    }
-
     public void testSimpleVoidMethod() throws Exception {
 
         // setup values


To unsubscribe from this list please visit:

http://xircles.codehaus.org/manage_email

Reply via email to