parjs
Version:
Library for building parsers using combinators.
43 lines • 1.32 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.NumericHelpers = exports.NumericHelpersType = void 0;
const ascii_1 = require("char-info/ascii");
/** Parsing helper. */
class NumericHelpersType {
parseDigitsInBase(ps, base) {
let { position } = ps;
const { input } = ps;
const length = input.length;
const result = 0;
for (; position < length; position++) {
const curCode = input.charCodeAt(position);
if (!(0, 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;
const 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