Files
NapCatQQ/.pnpm-store/v3/files/a9/da1e4d5bd78216cae5157627c0f9595b772676eb8eda0d1dc88f7011025f425297122285b9959a624a94b770cb13e662d9ddb386cadd7d6de1ed5b74661b7b
T
TanTan e311ca3275
Build NapCat Artifacts / Windows Loader Test (push) Canceled after 0s
Build NapCat Artifacts / Type Check & Test (push) Canceled after 0s
Build NapCat Artifacts / Build NapCat.Framework (push) Canceled after 0s
Build NapCat Artifacts / Build NapCat.Shell (push) Canceled after 0s
docs: 仓库链接指向本镜像仓库
2026-11-13 09:25:58 +08:00

69 lines
1.7 KiB
Plaintext

"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
const primitives_js_1 = require("../primitives.cjs");
const util_js_1 = require("../util.cjs");
function getParser({
startLine = 0,
markers = primitives_js_1.Markers
} = {}) {
let block = null;
let num = startLine;
return function parseSource(source) {
let rest = source;
const tokens = (0, util_js_1.seedTokens)();
[tokens.lineEnd, rest] = (0, util_js_1.splitCR)(rest);
[tokens.start, rest] = (0, util_js_1.splitSpace)(rest);
if (block === null && rest.startsWith(markers.start) && !rest.startsWith(markers.nostart)) {
block = [];
tokens.delimiter = rest.slice(0, markers.start.length);
rest = rest.slice(markers.start.length);
[tokens.postDelimiter, rest] = (0, util_js_1.splitSpace)(rest);
}
if (block === null) {
num++;
return null;
}
const isClosed = rest.trimRight().endsWith(markers.end);
if (tokens.delimiter === '' && rest.startsWith(markers.delim) && !rest.startsWith(markers.end)) {
tokens.delimiter = markers.delim;
rest = rest.slice(markers.delim.length);
[tokens.postDelimiter, rest] = (0, util_js_1.splitSpace)(rest);
}
if (isClosed) {
const trimmed = rest.trimRight();
tokens.end = rest.slice(trimmed.length - markers.end.length);
rest = trimmed.slice(0, -markers.end.length);
}
tokens.description = rest;
block.push({
number: num,
source,
tokens
});
num++;
if (isClosed) {
const result = block.slice();
block = null;
return result;
}
return null;
};
}
exports.default = getParser;
//# sourceMappingURL=source-parser.cjs.map