Octal and binary literals are more appropriately converted to hex
This commit is contained in:
parent
6a88ce7d1e
commit
22db7ae85a
|
@ -122,11 +122,11 @@
|
||||||
this.error("octal literal '" + number + "' must be prefixed with '0o'");
|
this.error("octal literal '" + number + "' must be prefixed with '0o'");
|
||||||
}
|
}
|
||||||
lexedLength = number.length;
|
lexedLength = number.length;
|
||||||
if (octalLiteral = /0o([0-7]+)/.exec(number)) {
|
if (octalLiteral = /^0o([0-7]+)/.exec(number)) {
|
||||||
number = (parseInt(octalLiteral[1], 8)).toString();
|
number = '0x' + (parseInt(octalLiteral[1], 8)).toString(16);
|
||||||
}
|
}
|
||||||
if (binaryLiteral = /0b([01]+)/.exec(number)) {
|
if (binaryLiteral = /^0b([01]+)/.exec(number)) {
|
||||||
number = (parseInt(binaryLiteral[1], 2)).toString();
|
number = '0x' + (parseInt(binaryLiteral[1], 2)).toString(16);
|
||||||
}
|
}
|
||||||
this.token('NUMBER', number);
|
this.token('NUMBER', number);
|
||||||
return lexedLength;
|
return lexedLength;
|
||||||
|
|
|
@ -142,10 +142,10 @@ exports.Lexer = class Lexer
|
||||||
else if /^0\d+/.test number
|
else if /^0\d+/.test number
|
||||||
@error "octal literal '#{number}' must be prefixed with '0o'"
|
@error "octal literal '#{number}' must be prefixed with '0o'"
|
||||||
lexedLength = number.length
|
lexedLength = number.length
|
||||||
if octalLiteral = /0o([0-7]+)/.exec number
|
if octalLiteral = /^0o([0-7]+)/.exec number
|
||||||
number = (parseInt octalLiteral[1], 8).toString()
|
number = '0x' + (parseInt octalLiteral[1], 8).toString 16
|
||||||
if binaryLiteral = /0b([01]+)/.exec number
|
if binaryLiteral = /^0b([01]+)/.exec number
|
||||||
number = (parseInt binaryLiteral[1], 2).toString()
|
number = '0x' + (parseInt binaryLiteral[1], 2).toString 16
|
||||||
@token 'NUMBER', number
|
@token 'NUMBER', number
|
||||||
lexedLength
|
lexedLength
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue