From 689f3a0d0cab399717d1152da21929c980061e9b Mon Sep 17 00:00:00 2001 From: EuAndreh Date: Fri, 11 Jul 2025 15:25:36 -0300 Subject: src/paca.mjs: Move error detection from tokenizeRegexStep => tokenizeRegex --- src/paca.mjs | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) (limited to 'src') diff --git a/src/paca.mjs b/src/paca.mjs index 993d26c..380200a 100644 --- a/src/paca.mjs +++ b/src/paca.mjs @@ -36,12 +36,6 @@ const tokenizeRegexStep = chars => ({ out, state }, char, index) => { } if (char === "\\") { - if (next === undefined) { - throw new SyntaxError( - `bad trailing escape character: ${chars}`, - ); - } - return { out, state: ConcatStep.ESCAPING, @@ -61,8 +55,18 @@ const tokenizeRegexFn = chars => state: ConcatStep.ACCEPTING, }); -const tokenizeRegex = chars => - tokenizeRegexFn(chars).out; +const tokenizeRegex = chars => { + const tokens = tokenizeRegexFn(chars); + if (!!tokens.error) { + throw tokens.error; + } + + if (tokens.state !== ConcatStep.ACCEPTING) { + throw new SyntaxError("bad ending state: " + tokens.state); + } + + return tokens.out; +}; const PRECEDENCE = { "(": 4, -- cgit v1.2.3