mirror of https://github.com/buggins/dlangide.git
fix tokenizer - issue #31
This commit is contained in:
parent
6dd4ac7fe6
commit
cef3c4ff49
|
@ -2029,15 +2029,15 @@ class Tokenizer
|
|||
}
|
||||
|
||||
protected Token processDecNumber(dchar c) {
|
||||
_pos--;
|
||||
_sharedIntegerToken.setPos(_startLine, _startPos);
|
||||
_sharedRealToken.setPos(_startLine, _startPos);
|
||||
if (_pos >= _len)
|
||||
return parserError("Unexpected end of line in number", _sharedIntegerToken);
|
||||
int digits = 0;
|
||||
ulong number = 0;
|
||||
//if (_pos >= _len)
|
||||
// return parserError("Unexpected end of line in number", _sharedIntegerToken);
|
||||
int digits = 1;
|
||||
ulong number = c - '0';
|
||||
int i = _pos;
|
||||
bool overflow = false;
|
||||
if (_line == _startLine) {
|
||||
for (;i < _len; i++) {
|
||||
dchar ch = _lineText[i];
|
||||
uint digit = 0;
|
||||
|
@ -2058,10 +2058,11 @@ class Tokenizer
|
|||
digits++;
|
||||
}
|
||||
_pos = i;
|
||||
}
|
||||
if (overflow)
|
||||
return parserError("number is too big to fit 64 bits", _sharedIntegerToken);
|
||||
_sharedIntegerToken.setValue(number);
|
||||
dchar next = _pos < _len ? _lineText[_pos] : 0;
|
||||
dchar next = _line == _startLine && _pos < _len ? _lineText[_pos] : 0;
|
||||
if (next == 0)
|
||||
return _sharedIntegerToken;
|
||||
if (next == 'e' || next == 'E') {
|
||||
|
|
Loading…
Reference in New Issue