Как определить группу регулярных выражений в JavaScript и получить доступ ко всем этим в одной строке?
Я пытался использовать eval для получения значения определенной группы регулярных выражений:
let str = `
global stuff = 1;
global h = 0;
function inc(arg) {
inc = inc + 1;
};
main {
repeat(inc, 10);
}
`;
str = str.replace(/repeat\((.*?|$1), (.*?|$2)\)/gm, "$1".repeat(eval("$2")));
console.log(str);
Я ожидал, что результат будет
`global h = 0;
function inc(arg) {
h = h + 1;
};
main {
inc;
inc;
inc;
inc;
inc;
inc;
inc;
inc;
inc;
inc;
}`
, потому что я хочу преобразовать repeat(inc, 10);
в
inc;
inc;
inc;
...
, но это дает мне эту ошибку: ReferenceError: $2 is not defined
.Я знаю, что то, что я делаю здесь, может выглядеть очень неясным, но это часть кода для компилятора, который я делаю для языка программирования, который я делаю.