mirror of
https://github.com/Sevichecc/Urara-Blog.git
synced 2025-05-03 03:29:30 +08:00
61 lines
2.2 KiB
Text
61 lines
2.2 KiB
Text
/* Generated by `npm run build`, do not edit! */
|
|
|
|
"use strict"
|
|
|
|
module.exports = function(Parser) {
|
|
return /*@__PURE__*/(function (Parser) {
|
|
function anonymous () {
|
|
Parser.apply(this, arguments);
|
|
}
|
|
|
|
if ( Parser ) anonymous.__proto__ = Parser;
|
|
anonymous.prototype = Object.create( Parser && Parser.prototype );
|
|
anonymous.prototype.constructor = anonymous;
|
|
|
|
anonymous.prototype.readInt = function readInt (radix, len) {
|
|
// Hack: len is only != null for unicode escape sequences,
|
|
// where numeric separators are not allowed
|
|
if (len != null) { return Parser.prototype.readInt.call(this, radix, len) }
|
|
|
|
var start = this.pos, total = 0, acceptUnderscore = false
|
|
for (;;) {
|
|
var code = this.input.charCodeAt(this.pos), val = (void 0)
|
|
if (code >= 97) { val = code - 97 + 10 } // a
|
|
else if (code == 95) {
|
|
if (!acceptUnderscore) { this.raise(this.pos, "Invalid numeric separator") }
|
|
++this.pos
|
|
acceptUnderscore = false
|
|
continue
|
|
} else if (code >= 65) { val = code - 65 + 10 } // A
|
|
else if (code >= 48 && code <= 57) { val = code - 48 } // 0-9
|
|
else { val = Infinity }
|
|
if (val >= radix) { break }
|
|
++this.pos
|
|
total = total * radix + val
|
|
acceptUnderscore = true
|
|
}
|
|
if (this.pos === start) { return null }
|
|
if (!acceptUnderscore) { this.raise(this.pos - 1, "Invalid numeric separator") }
|
|
|
|
return total
|
|
};
|
|
|
|
anonymous.prototype.readNumber = function readNumber (startsWithDot) {
|
|
var token = Parser.prototype.readNumber.call(this, startsWithDot)
|
|
var octal = this.end - this.start >= 2 && this.input.charCodeAt(this.start) === 48
|
|
var stripped = this.getNumberInput(this.start, this.end)
|
|
if (stripped.length < this.end - this.start) {
|
|
if (octal) { this.raise(this.start, "Invalid number") }
|
|
this.value = parseFloat(stripped)
|
|
}
|
|
return token
|
|
};
|
|
|
|
// This is used by acorn-bigint
|
|
anonymous.prototype.getNumberInput = function getNumberInput (start, end) {
|
|
return this.input.slice(start, end).replace(/_/g, "")
|
|
};
|
|
|
|
return anonymous;
|
|
}(Parser))
|
|
}
|