Title: [729] trunk/qdox/src/grammar: Fix for QDOX-208: Invalid linenumbers after parsing javadocs
Revision
729
Author
rfscholte
Date
2010-05-02 04:15:36 -0500 (Sun, 02 May 2010)

Log Message

Fix for QDOX-208: Invalid linenumbers after parsing javadocs

Modified Paths

Diff

Modified: trunk/qdox/src/grammar/skeleton.inner (728 => 729)

--- trunk/qdox/src/grammar/skeleton.inner	2010-05-01 20:20:08 UTC (rev 728)
+++ trunk/qdox/src/grammar/skeleton.inner	2010-05-02 09:15:36 UTC (rev 729)
@@ -88,8 +88,6 @@
     int zzStartRead;
     int zzCurrentPos;
     int zzMarkedPos;
-    int yyline;
-    int yycolumn;
     char [] zzBuffer;
     boolean zzAtEOF;
     boolean zzEOFDone;
@@ -97,7 +95,7 @@
     /** sets all values stored in this class */
     ZzFlexStreamInfo(java.io.Reader zzReader, int zzEndRead, int zzStartRead,
                   int zzCurrentPos, int zzMarkedPos, 
-                  char [] zzBuffer, boolean zzAtEOF, int yyline, int yycolumn) {
+                  char [] zzBuffer, boolean zzAtEOF) {
       this.zzReader      = zzReader;
       this.zzEndRead     = zzEndRead;
       this.zzStartRead   = zzStartRead;
@@ -106,8 +104,6 @@
       this.zzBuffer      = zzBuffer;
       this.zzAtEOF       = zzAtEOF;
       this.zzEOFDone     = zzEOFDone;
-      this.yyline         = yyline;
-      this.yycolumn       = yycolumn;
     }
   }
 
@@ -203,15 +199,13 @@
   public final void yypushStream(java.io.Reader reader) {
     zzStreams.push(
       new ZzFlexStreamInfo(zzReader, zzEndRead, zzStartRead, zzCurrentPos,
-                        zzMarkedPos, zzBuffer, zzAtEOF,
-                        yyline, yycolumn)
+                        zzMarkedPos, zzBuffer, zzAtEOF)
     );
     zzAtEOF  = false;
     zzBuffer = new char[ZZ_BUFFERSIZE];
     zzReader = reader;
     zzEndRead = zzStartRead = 0;
     zzCurrentPos = zzMarkedPos = 0;
-//    yyline = yycolumn = 0;
   }
     
 
@@ -232,14 +226,12 @@
     ZzFlexStreamInfo s = (ZzFlexStreamInfo) zzStreams.pop();
     zzBuffer      = s.zzBuffer;
     zzReader      = s.zzReader;
+    zzStartRead   = s.zzStartRead + zzEndRead + 2; //skip javadoc-part
     zzEndRead     = s.zzEndRead;
-    zzStartRead   = s.zzStartRead;
     zzCurrentPos  = s.zzCurrentPos;
     zzMarkedPos   = s.zzMarkedPos ;
     zzAtEOF       = s.zzAtEOF;
     zzEOFDone     = s.zzEOFDone;
-//    yyline         = s.yyline;
-//    yycolumn       = s.yycolumn;
   }
 
 
@@ -272,7 +264,7 @@
     zzEOFDone = false;
     zzEndRead = zzStartRead = 0;
     zzCurrentPos = zzMarkedPos = 0;
-//    yyline = yychar = yycolumn = 0;
+    yychar = 0;
     zzLexicalState = YYINITIAL;
   }
 

Modified: trunk/qdox/src/test/com/thoughtworks/qdox/JavaDocBuilderTest.java (728 => 729)

--- trunk/qdox/src/test/com/thoughtworks/qdox/JavaDocBuilderTest.java	2010-05-01 20:20:08 UTC (rev 728)
+++ trunk/qdox/src/test/com/thoughtworks/qdox/JavaDocBuilderTest.java	2010-05-02 09:15:36 UTC (rev 729)
@@ -1255,6 +1255,26 @@
         assertNotNull(thing.getSource());
     }
     
+    // for QDOX-208
+    public void testMethodLineNumber() throws Exception {
+        JavaDocBuilder builder = new JavaDocBuilder();
+        String source = "package com.foo;\n" +
+        		"public class Bar {\n" +
+        		"  public void method1() \n" +
+        		"  {}\n" +
+        		"\n" +
+        		"  /**\n" +
+        		"   * Method with javadoc\n" +
+        		"   */\n" +
+        		"   public void method1() { \n" +
+        		"   }\n" +
+        		"}";
+        builder.addSource( new StringReader( source ) );
+        JavaClass clazz = builder.getClasses()[0];
+        assertEquals( 3, clazz.getMethods()[0].getLineNumber() );
+        assertEquals( 9, clazz.getMethods()[1].getLineNumber() );
+    }
+    
     // for QDOX-209
     public void testAnnotationMap() throws Exception{
         JavaDocBuilder javaDocBuilder = new JavaDocBuilder();


To unsubscribe from this list please visit:

http://xircles.codehaus.org/manage_email

Reply via email to