avoid overwriting token.indent in lexer.getNumber

if it wasn't for bug #3978, assignment from getNumber would overwrite
tok.indent (which is set at top of rawGetTok, but not in getNumber)
This commit is contained in:
Jacek Sieka 2016-03-18 23:02:10 +08:00
commit 298620c267

View file

@ -263,7 +263,7 @@ template eatChar(L: var TLexer, t: var TToken) =
add(t.literal, L.buf[L.bufpos]) add(t.literal, L.buf[L.bufpos])
inc(L.bufpos) inc(L.bufpos)
proc getNumber(L: var TLexer): TToken = proc getNumber(L: var TLexer, result: var TToken) =
proc matchUnderscoreChars(L: var TLexer, tok: var TToken, chars: set[char]) = proc matchUnderscoreChars(L: var TLexer, tok: var TToken, chars: set[char]) =
var pos = L.bufpos # use registers for pos, buf var pos = L.bufpos # use registers for pos, buf
var buf = L.buf var buf = L.buf
@ -1061,7 +1061,7 @@ proc rawGetTok*(L: var TLexer, tok: var TToken) =
getCharacter(L, tok) getCharacter(L, tok)
tok.tokType = tkCharLit tok.tokType = tkCharLit
of '0'..'9': of '0'..'9':
tok = getNumber(L) getNumber(L, tok)
else: else:
if c in OpChars: if c in OpChars:
getOperator(L, tok) getOperator(L, tok)