fruitsconfits
Version:
FruitsConfits - A well typed and sugared parser combinator framework for TypeScript/JavaScript.
44 lines • 1.26 kB
JavaScript
// Copyright (c) 2019 Shellyl_N and Authors
// license: ISC
// https://github.com/shellyln
export class ParseError extends Error {
constructor(result) {
super(result.message);
this.result = result;
}
}
export function parserInput(src, context) {
return ({
src,
start: 0,
end: src.length,
// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
context: context,
templateArgs: [],
templateArgsPos: [],
});
}
export function templateStringsParserInput(strings, values, context) {
const templateArgsPos = [];
let pos = 0;
if (values.length) {
for (let i = 0; i < strings.length; i++) {
const x = strings[i];
if (i < values.length) {
templateArgsPos.push(pos + x.length);
pos += x.length + 1;
}
}
}
const joined = strings.join('\x00');
return ({
src: joined,
start: 0,
end: joined.length,
// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
context: context,
templateArgs: values,
templateArgsPos,
});
}
//# sourceMappingURL=types.js.map