X-Git-Url: http://git.roojs.org/?a=blobdiff_plain;f=JSDOC%2FTokenReader.js;h=2657ccdd47e1867fd3ad5b6114b82c8670b25c6b;hb=f3c7ddeadbe815a07cb3fc8f2e78adc4627cba2c;hp=ad4b3712347c521e57a4b341b00fde09cce5b362;hpb=54b836da976a02d69134a31acd75345eb84ad05a;p=gnome.introspection-doc-generator diff --git a/JSDOC/TokenReader.js b/JSDOC/TokenReader.js index ad4b371..2657ccd 100644 --- a/JSDOC/TokenReader.js +++ b/JSDOC/TokenReader.js @@ -23,7 +23,7 @@ TokenReader = XObject.define( }, Object, { - + collapseWhite : false, // only reduces white space... /** * tokenize a stream @@ -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,13 +158,19 @@ TokenReader = XObject.define( if (found === "") { return false; } - else { - if (this.collapseWhite) found = "\n"; - if (this.keepWhite) { - 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; }, /**