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