|
1 | 1 | /** @import { Parser } from '../index.js' */ |
2 | 2 | import * as e from '../../../errors.js'; |
3 | 3 |
|
4 | | -const SQUARE_BRACKET_OPEN = '['; |
5 | | -const SQUARE_BRACKET_CLOSE = ']'; |
6 | | -const CURLY_BRACKET_OPEN = '{'; |
7 | | -const CURLY_BRACKET_CLOSE = '}'; |
8 | | -const PARENTHESES_OPEN = '('; |
9 | | -const PARENTHESES_CLOSE = ')'; |
10 | | - |
11 | | -/** @param {string} char */ |
12 | | -export function is_bracket_open(char) { |
13 | | - return char === SQUARE_BRACKET_OPEN || char === CURLY_BRACKET_OPEN; |
14 | | -} |
15 | | - |
16 | | -/** @param {string} char */ |
17 | | -export function is_bracket_close(char) { |
18 | | - return char === SQUARE_BRACKET_CLOSE || char === CURLY_BRACKET_CLOSE; |
19 | | -} |
20 | | - |
21 | | -/** @param {string} open */ |
22 | | -export function get_bracket_close(open) { |
23 | | - if (open === SQUARE_BRACKET_OPEN) { |
24 | | - return SQUARE_BRACKET_CLOSE; |
25 | | - } |
26 | | - |
27 | | - if (open === CURLY_BRACKET_OPEN) { |
28 | | - return CURLY_BRACKET_CLOSE; |
29 | | - } |
30 | | - |
31 | | - if (open === PARENTHESES_OPEN) { |
32 | | - return PARENTHESES_CLOSE; |
33 | | - } |
34 | | -} |
35 | | - |
36 | 4 | /** |
37 | 5 | * @param {number} num |
38 | 6 | * @returns {number} Infinity if {@link num} is negative, else {@link num}. |
@@ -124,7 +92,7 @@ function count_leading_backslashes(string, search_start_index) { |
124 | 92 | * @returns {number | undefined} The index of the closing bracket, or undefined if not found. |
125 | 93 | */ |
126 | 94 | export function find_matching_bracket(template, index, open) { |
127 | | - const close = get_bracket_close(open); |
| 95 | + const close = default_brackets[open]; |
128 | 96 | let brackets = 1; |
129 | 97 | let i = index; |
130 | 98 | while (brackets > 0 && i < template.length) { |
@@ -166,6 +134,7 @@ export function find_matching_bracket(template, index, open) { |
166 | 134 | return undefined; |
167 | 135 | } |
168 | 136 |
|
| 137 | +/** @type {Record<string, string>} */ |
169 | 138 | const default_brackets = { |
170 | 139 | '{': '}', |
171 | 140 | '(': ')', |
|
0 commit comments