X-Git-Url: http://git.roojs.org/?p=gnome.introspection-doc-generator;a=blobdiff_plain;f=JSDOC%2FTokenReader.js;h=cd3b9cb1aced7cea44f8c841ced271f766357af1;hp=63cb7f203e13e1ac6f06714e58a4c1b2f6ce1c89;hb=HEAD;hpb=1c112ad8d5cecd0351642c79419edab08e1a9074 diff --git a/JSDOC/TokenReader.js b/JSDOC/TokenReader.js index 63cb7f2..cd3b9cb 100644 --- a/JSDOC/TokenReader.js +++ b/JSDOC/TokenReader.js @@ -150,7 +150,7 @@ const TokenReader = XObject.define( //Seed.print('(@' + n); var lt = this.lastSym(tokens, n); - Seed.print(JSON.stringify(lt)); + print(JSON.stringify(lt)); if (lt.type != 'KEYW' || ['IF', 'WHILE'].indexOf(lt.name) < -1) { if (!this.ignoreBadGrammer) { throw { @@ -258,8 +258,8 @@ const TokenReader = XObject.define( if (this.collapseWhite) { found = "\n"; } - if (this.keepWhite) { - var last = tokens.pop(); + if (this.keepWhite) { + var last = tokens ? tokens.pop() : false; if (last && last.name != "WHIT") { tokens.push(last); } @@ -464,12 +464,24 @@ const TokenReader = XObject.define( ) ) { var regex = stream.next(); - + var in_brace = false; while (!stream.look().eof) { + + if (stream.look() == "[") { // escape sequence + in_brace = true; + + } + + if (stream.look() == "]") { // escape sequence + in_brace = false; + } + if (stream.look() == "\\") { // escape sequence regex += stream.next(2); + continue; } - else if (stream.look() == "/") { + + if (!in_brace && stream.look() == "/") { regex += stream.next(); while (/[gmi]/.test(stream.look())) { @@ -479,9 +491,9 @@ const TokenReader = XObject.define( tokens.push(new Token(regex, "REGX", "REGX", this.line)); return true; } - else { - regex += stream.next(); - } + + regex += stream.next(); + } // error: unterminated regex }