JSDOC/Walker2.js
[gnome.introspection-doc-generator] / JSDOC / TokenReader.js
index 3131591..9c95240 100644 (file)
@@ -130,15 +130,14 @@ TokenReader = XObject.define(
         read_space : function(/**JSDOC.TokenStream*/stream, tokens) {
             var found = "";
             
-            while (!stream.look().eof && Lang.isSpace(stream.look())) {
-                
+            while (!stream.look().eof && Lang.isSpace(stream.look()) && !Lang.isNewline(stream.look())) {
                 found += stream.next();
             }
             
             if (found === "") {
                 return false;
             }
-            print("WHITE = " + JSON.stringify(found)); 
+            //print("WHITE = " + JSON.stringify(found)); 
             if (this.collapseWhite) found = " ";
             if (this.keepWhite) tokens.push(new Token(found, "WHIT", "SPACE", this.line));
             return true;
@@ -150,7 +149,7 @@ TokenReader = XObject.define(
          */
         read_newline : function(/**JSDOC.TokenStream*/stream, tokens) {
             var found = "";
-            
+            var line = this.line;
             while (!stream.look().eof && Lang.isNewline(stream.look())) {
                 this.line++;
                 found += stream.next();
@@ -169,7 +168,7 @@ TokenReader = XObject.define(
                     tokens.push(last);
                 }
                 
-                tokens.push(new Token(found, "WHIT", "NEWLINE", this.line));
+                tokens.push(new Token(found, "WHIT", "NEWLINE", line));
             }
             return true;
         },
@@ -181,6 +180,7 @@ TokenReader = XObject.define(
             if (stream.look() == "/" && stream.look(1) == "*") {
                 var found = stream.next(2);
                 var c = '';
+                var line = this.line;
                 while (!stream.look().eof && !(stream.look(-1) == "/" && stream.look(-2) == "*")) {
                     c = stream.next();
                     if (c == "\n") this.line++;
@@ -189,7 +189,7 @@ TokenReader = XObject.define(
                 
                 // to start doclet we allow /** or /*** but not /**/ or /****
                 if (/^\/\*\*([^\/]|\*[^*])/.test(found) && this.keepDocs) tokens.push(new Token(found, "COMM", "JSDOC", this.line));
-                else if (this.keepComments) tokens.push(new Token(found, "COMM", "MULTI_LINE_COMM", this.line));
+                else if (this.keepComments) tokens.push(new Token(found, "COMM", "MULTI_LINE_COMM", line));
                 return true;
             }
             return false;
@@ -205,13 +205,15 @@ TokenReader = XObject.define(
                 || 
                 (stream.look() == "<" && stream.look(1) == "!" && stream.look(2) == "-" && stream.look(3) == "-" && (found=stream.next(4)))
             ) {
-                
+                var line = this.line;
                 while (!stream.look().eof && !Lang.isNewline(stream.look())) {
                     found += stream.next();
                 }
-                
+                if (!stream.look().eof) {
+                    found += stream.next();
+                }
                 if (this.keepComments) {
-                    tokens.push(new Token(found, "COMM", "SINGLE_LINE_COMM", this.line));
+                    tokens.push(new Token(found, "COMM", "SINGLE_LINE_COMM", line));
                 }
                 this.line++;
                 return true;