Fix line numbers for TERMINATOR tokens.

This commit is contained in:
Jason Walton 2012-11-14 14:37:09 -05:00
parent ce2bf36aae
commit 7c77a5d3c8
2 changed files with 7 additions and 2 deletions

View File

@ -297,7 +297,6 @@
return 0;
}
indent = match[0];
this.line += count(indent, '\n');
this.seenFor = false;
size = indent.length - 1 - indent.lastIndexOf('\n');
noNewlines = this.unfinished();
@ -307,8 +306,10 @@
} else {
this.newlineToken();
}
this.line += count(indent, '\n');
return indent.length;
}
this.line += count(indent, '\n');
if (size > this.indent) {
if (noNewlines) {
this.indebt = size - this.indent;

View File

@ -258,13 +258,17 @@ exports.Lexer = class Lexer
lineToken: ->
return 0 unless match = MULTI_DENT.exec @chunk
indent = match[0]
@line += count indent, '\n'
@seenFor = no
size = indent.length - 1 - indent.lastIndexOf '\n'
noNewlines = @unfinished()
if size - @indebt is @indent
if noNewlines then @suppressNewlines() else @newlineToken()
# Advance @line line after the newlineToken, so the TERMINATOR shows up
# on the right line.
@line += count indent, '\n'
return indent.length
@line += count indent, '\n'
if size > @indent
if noNewlines
@indebt = size - @indent