match_bracket() — svelte Function Reference
Architecture documentation for the match_bracket() function in bracket.js from the svelte codebase.
Entity Profile
Dependency Diagram
graph TD dacf5984_89ce_530d_f035_1eac4b0b8e1f["match_bracket()"] 0d221a90_b1cc_5826_235e_98f5216d6400["bracket.js"] dacf5984_89ce_530d_f035_1eac4b0b8e1f -->|defined in| 0d221a90_b1cc_5826_235e_98f5216d6400 6a786ac5_79fd_078b_6df2_8e1e4a370161["read_pattern()"] 6a786ac5_79fd_078b_6df2_8e1e4a370161 -->|calls| dacf5984_89ce_530d_f035_1eac4b0b8e1f f9386464_dab0_7aa2_cfd0_969e973dc903["open()"] f9386464_dab0_7aa2_cfd0_969e973dc903 -->|calls| dacf5984_89ce_530d_f035_1eac4b0b8e1f bcf5e2ea_c071_00bf_777f_2798696fe093["match_quote()"] bcf5e2ea_c071_00bf_777f_2798696fe093 -->|calls| dacf5984_89ce_530d_f035_1eac4b0b8e1f bcf5e2ea_c071_00bf_777f_2798696fe093["match_quote()"] dacf5984_89ce_530d_f035_1eac4b0b8e1f -->|calls| bcf5e2ea_c071_00bf_777f_2798696fe093 7cef41bd_b7cf_112a_875e_5ca7e892c65e["expected_token()"] dacf5984_89ce_530d_f035_1eac4b0b8e1f -->|calls| 7cef41bd_b7cf_112a_875e_5ca7e892c65e feea79ed_c6f7_4068_9c81_9734e5dcbfb7["unexpected_eof()"] dacf5984_89ce_530d_f035_1eac4b0b8e1f -->|calls| feea79ed_c6f7_4068_9c81_9734e5dcbfb7 style dacf5984_89ce_530d_f035_1eac4b0b8e1f fill:#6366f1,stroke:#818cf8,color:#fff
Relationship Graph
Source Code
packages/svelte/src/compiler/phases/1-parse/utils/bracket.js lines 149–180
export function match_bracket(parser, start, brackets = default_brackets) {
const close = Object.values(brackets);
const bracket_stack = [];
let i = start;
while (i < parser.template.length) {
let char = parser.template[i++];
if (char === "'" || char === '"' || char === '`') {
i = match_quote(parser, i, char);
continue;
}
if (char in brackets) {
bracket_stack.push(char);
} else if (close.includes(char)) {
const popped = /** @type {string} */ (bracket_stack.pop());
const expected = /** @type {string} */ (brackets[popped]);
if (char !== expected) {
e.expected_token(i - 1, expected);
}
if (bracket_stack.length === 0) {
return i;
}
}
}
e.unexpected_eof(parser.template.length);
}
Domain
Subdomains
Called By
Source
Frequently Asked Questions
What does match_bracket() do?
match_bracket() is a function in the svelte codebase, defined in packages/svelte/src/compiler/phases/1-parse/utils/bracket.js.
Where is match_bracket() defined?
match_bracket() is defined in packages/svelte/src/compiler/phases/1-parse/utils/bracket.js at line 149.
What does match_bracket() call?
match_bracket() calls 3 function(s): expected_token, match_quote, unexpected_eof.
What calls match_bracket()?
match_bracket() is called by 3 function(s): match_quote, open, read_pattern.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free