Aktueller Stand
This commit is contained in:
9
backend/node_modules/ret/dist/reconstruct.js
generated
vendored
9
backend/node_modules/ret/dist/reconstruct.js
generated
vendored
@@ -38,10 +38,11 @@ exports.reconstruct = (token) => {
|
||||
return write_set_tokens_1.writeSetTokens(token);
|
||||
case types_1.types.GROUP: {
|
||||
// Check token.remember
|
||||
const prefix = token.remember ? '' :
|
||||
token.followedBy ? '?=' :
|
||||
token.notFollowedBy ? '?!' :
|
||||
'?:';
|
||||
const prefix = token.name ? `?<${token.name}>` :
|
||||
token.remember ? '' :
|
||||
token.followedBy ? '?=' :
|
||||
token.notFollowedBy ? '?!' :
|
||||
'?:';
|
||||
return `(${prefix}${createAlternate(token)})`;
|
||||
}
|
||||
case types_1.types.REPETITION: {
|
||||
|
||||
2
backend/node_modules/ret/dist/reconstruct.js.map
generated
vendored
2
backend/node_modules/ret/dist/reconstruct.js.map
generated
vendored
@@ -1 +1 @@
|
||||
{"version":3,"file":"reconstruct.js","sourceRoot":"","sources":["../lib/reconstruct.ts"],"names":[],"mappings":"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"}
|
||||
{"version":3,"file":"reconstruct.js","sourceRoot":"","sources":["../lib/reconstruct.ts"],"names":[],"mappings":"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"}
|
||||
48
backend/node_modules/ret/dist/tokenizer.js
generated
vendored
48
backend/node_modules/ret/dist/tokenizer.js
generated
vendored
@@ -23,6 +23,15 @@ exports.tokenizer = void 0;
|
||||
const util = __importStar(require("./util"));
|
||||
const types_1 = require("./types");
|
||||
const sets = __importStar(require("./sets"));
|
||||
/**
|
||||
* Valid opening characters for capture group names.
|
||||
*/
|
||||
const captureGroupFirstChar = /^[a-zA-Z_$]$/i;
|
||||
/**
|
||||
* Valid characters for capture group names.
|
||||
*/
|
||||
const captureGroupChars = /^[a-zA-Z0-9_$]$/i;
|
||||
const digit = /\d/;
|
||||
/**
|
||||
* Tokenizes a regular expression (that is currently a string)
|
||||
* @param {string} regexpStr String of regular expression to be tokenized
|
||||
@@ -79,9 +88,9 @@ exports.tokenizer = (regexpStr) => {
|
||||
default:
|
||||
// Check if c is integer.
|
||||
// In which case it's a reference.
|
||||
if (/\d/.test(c)) {
|
||||
if (digit.test(c)) {
|
||||
let digits = c;
|
||||
while (i < str.length && /\d/.test(str[i])) {
|
||||
while (i < str.length && digit.test(str[i])) {
|
||||
digits += str[i++];
|
||||
}
|
||||
let value = parseInt(digits, 10);
|
||||
@@ -136,23 +145,52 @@ exports.tokenizer = (regexpStr) => {
|
||||
stack: [],
|
||||
remember: true,
|
||||
};
|
||||
// If if this is a special kind of group.
|
||||
// If this is a special kind of group.
|
||||
if (str[i] === '?') {
|
||||
c = str[i + 1];
|
||||
i += 2;
|
||||
// Match if followed by.
|
||||
if (c === '=') {
|
||||
group.followedBy = true;
|
||||
group.remember = false;
|
||||
// Match if not followed by.
|
||||
}
|
||||
else if (c === '!') {
|
||||
group.notFollowedBy = true;
|
||||
group.remember = false;
|
||||
}
|
||||
else if (c !== ':') {
|
||||
else if (c === '<') {
|
||||
let name = '';
|
||||
if (captureGroupFirstChar.test(str[i])) {
|
||||
name += str[i];
|
||||
i++;
|
||||
}
|
||||
else {
|
||||
throw new SyntaxError(`Invalid regular expression: /${regexpStr}/: Invalid capture group name, character '${str[i]}'` +
|
||||
` after '<' at column ${i + 1}`);
|
||||
}
|
||||
while (i < str.length && captureGroupChars.test(str[i])) {
|
||||
name += str[i];
|
||||
i++;
|
||||
}
|
||||
if (!name) {
|
||||
throw new SyntaxError(`Invalid regular expression: /${regexpStr}/: Invalid capture group name, character '${str[i]}'` +
|
||||
` after '<' at column ${i + 1}`);
|
||||
}
|
||||
if (str[i] !== '>') {
|
||||
throw new SyntaxError(`Invalid regular expression: /${regexpStr}/: Unclosed capture group name, expected '>', found` +
|
||||
` '${str[i]}' at column ${i + 1}`);
|
||||
}
|
||||
group.name = name;
|
||||
i++;
|
||||
}
|
||||
else if (c === ':') {
|
||||
group.remember = false;
|
||||
}
|
||||
else {
|
||||
throw new SyntaxError(`Invalid regular expression: /${regexpStr}/: Invalid group, character '${c}'` +
|
||||
` after '?' at column ${i - 1}`);
|
||||
}
|
||||
group.remember = false;
|
||||
}
|
||||
else {
|
||||
groupCount += 1;
|
||||
|
||||
2
backend/node_modules/ret/dist/tokenizer.js.map
generated
vendored
2
backend/node_modules/ret/dist/tokenizer.js.map
generated
vendored
File diff suppressed because one or more lines are too long
1
backend/node_modules/ret/dist/types/tokens.d.ts
generated
vendored
1
backend/node_modules/ret/dist/types/tokens.d.ts
generated
vendored
@@ -17,6 +17,7 @@ export declare type Group = Base<types.GROUP, {
|
||||
followedBy?: boolean;
|
||||
notFollowedBy?: boolean;
|
||||
lookBehind?: boolean;
|
||||
name?: string;
|
||||
}>;
|
||||
export declare type Set = Base<types.SET, {
|
||||
set: SetTokens;
|
||||
|
||||
Reference in New Issue
Block a user