parjs
Version:
A parser-combinator library for JavaScript.
47 lines (46 loc) • 1.25 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
/**
* @external
*/
/** */
const ascii_1 = require("char-info/ascii");
/**
* Parsing helper.
*/
class NumericHelpersType {
parseDigitsInBase(ps, base) {
let { position, input } = ps;
let length = input.length;
let result = 0;
for (; position < length; position++) {
let curCode = input.charCodeAt(position);
if (!ascii_1.isDigitCode(curCode, base)) {
break;
}
}
ps.position = position;
return result;
}
/**
* Tries to parse a '+' or '-'. Returns the sign that was parsed, or 0 if the parsing failed.
* @param ps
* @returns {number}
*/
parseSign(ps) {
let sign = 0;
let curChar = ps.input.charCodeAt(ps.position);
if (curChar === ascii_1.AsciiCodes.minus) {
sign = -1;
ps.position++;
}
else if (curChar === ascii_1.AsciiCodes.plus) {
ps.position++;
sign = 1;
}
return sign;
}
}
exports.NumericHelpersType = NumericHelpersType;
exports.NumericHelpers = new NumericHelpersType();
//# sourceMappingURL=numeric-helpers.js.map