JSDOC/TokenReader.js
[gnome.introspection-doc-generator] / JSDOC / TokenReader.js
index 4a12dda..2657ccd 100644 (file)
@@ -92,12 +92,13 @@ TokenReader = XObject.define(
                 }
                 var n = found.split('.');
                 var p = false;
+                var _this = this;
                 n.forEach(function(nm) {
                     if (p) {
-                        tokens.push(new Token('.', "PUNC", "DOT", this.line));
+                        tokens.push(new Token('.', "PUNC", "DOT", _this.line));
                     }
                     p=true;
-                    tokens.push(new Token(nm, "NAME", "NAME", this.line));
+                    tokens.push(new Token(nm, "NAME", "NAME", _this.line));
                 });
                 return true;
                 
@@ -129,18 +130,18 @@ 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;
             }
-            else {
-                if (this.collapseWhite) found = " ";
-                if (this.keepWhite) tokens.push(new Token(found, "WHIT", "SPACE", this.line));
-                return true;
-            }
+            //print("WHITE = " + JSON.stringify(found)); 
+            if (this.collapseWhite) found = " ";
+            if (this.keepWhite) tokens.push(new Token(found, "WHIT", "SPACE", this.line));
+            return true;
+        
         },
 
         /**
@@ -157,21 +158,19 @@ TokenReader = XObject.define(
             if (found === "") {
                 return false;
             }
-            else {
-                if (this.collapseWhite) {
-                    found = "\n";
-                }
-                if (this.keepWhite) {
-                    var last = tokens.pop();
-                    if (last.name != "WHIT") {
-                        tokens.push(last);
-                    }
-                    
-                    
-                    tokens.push(new Token(found, "WHIT", "NEWLINE", this.line));
+            //this.line++;
+            if (this.collapseWhite) {
+                found = "\n";
+            }
+            if (this.keepWhite) {
+                var last = tokens.pop();
+                if (last.name != "WHIT") {
+                    tokens.push(last);
                 }
-                return true;
+                
+                tokens.push(new Token(found, "WHIT", "NEWLINE", this.line));
             }
+            return true;
         },
 
         /**