tag.js — svelte Source File
Architecture documentation for tag.js, a javascript file in the svelte codebase. 14 imports, 1 dependents.
Entity Profile
Dependency Diagram
graph LR 367a364a_2912_a1aa_b2e1_d97a82783c38["tag.js"] 495501a4_a342_6a4d_ac11_e3e2fee8b218["errors.js"] 367a364a_2912_a1aa_b2e1_d97a82783c38 --> 495501a4_a342_6a4d_ac11_e3e2fee8b218 a146f6ac_0088_8736_b6ce_318f9f115170["e"] 367a364a_2912_a1aa_b2e1_d97a82783c38 --> a146f6ac_0088_8736_b6ce_318f9f115170 bbca3d2a_42c8_b215_d3b5_5077ccaf0797["nodes.js"] 367a364a_2912_a1aa_b2e1_d97a82783c38 --> bbca3d2a_42c8_b215_d3b5_5077ccaf0797 6e00a8f3_2371_ecf1_5a93_296f787aca83["ExpressionMetadata"] 367a364a_2912_a1aa_b2e1_d97a82783c38 --> 6e00a8f3_2371_ecf1_5a93_296f787aca83 2627a38d_1d02_8fc1_b764_b2aaf06f372b["acorn.js"] 367a364a_2912_a1aa_b2e1_d97a82783c38 --> 2627a38d_1d02_8fc1_b764_b2aaf06f372b bb0eb4c2_ab75_feac_3814_01d1e4346bb8["parse_expression_at"] 367a364a_2912_a1aa_b2e1_d97a82783c38 --> bb0eb4c2_ab75_feac_3814_01d1e4346bb8 caefc1b2_dc4c_2cff_4013_e8ded13e7974["context.js"] 367a364a_2912_a1aa_b2e1_d97a82783c38 --> caefc1b2_dc4c_2cff_4013_e8ded13e7974 6a786ac5_79fd_078b_6df2_8e1e4a370161["read_pattern"] 367a364a_2912_a1aa_b2e1_d97a82783c38 --> 6a786ac5_79fd_078b_6df2_8e1e4a370161 8b705104_0cb9_c5c8_5bed_6dcfe73592d3["expression.js"] 367a364a_2912_a1aa_b2e1_d97a82783c38 --> 8b705104_0cb9_c5c8_5bed_6dcfe73592d3 049b365c_2da8_5f0c_8237_3b3a21a0c4bd["create.js"] 367a364a_2912_a1aa_b2e1_d97a82783c38 --> 049b365c_2da8_5f0c_8237_3b3a21a0c4bd ba32e941_2eb9_1bb2_8ee0_1eca52813eb8["create_fragment"] 367a364a_2912_a1aa_b2e1_d97a82783c38 --> ba32e941_2eb9_1bb2_8ee0_1eca52813eb8 0d221a90_b1cc_5826_235e_98f5216d6400["bracket.js"] 367a364a_2912_a1aa_b2e1_d97a82783c38 --> 0d221a90_b1cc_5826_235e_98f5216d6400 dacf5984_89ce_530d_f035_1eac4b0b8e1f["match_bracket"] 367a364a_2912_a1aa_b2e1_d97a82783c38 --> dacf5984_89ce_530d_f035_1eac4b0b8e1f c49ac9f8_b355_57a2_8d10_b5fd945c6144["zimmerframe"] 367a364a_2912_a1aa_b2e1_d97a82783c38 --> c49ac9f8_b355_57a2_8d10_b5fd945c6144 style 367a364a_2912_a1aa_b2e1_d97a82783c38 fill:#6366f1,stroke:#818cf8,color:#fff
Relationship Graph
Source Code
/** @import { ArrowFunctionExpression, Expression, Identifier, Pattern } from 'estree' */
/** @import { AST } from '#compiler' */
/** @import { Parser } from '../index.js' */
import { walk } from 'zimmerframe';
import * as e from '../../../errors.js';
import { ExpressionMetadata } from '../../nodes.js';
import { parse_expression_at } from '../acorn.js';
import read_pattern from '../read/context.js';
import read_expression, { get_loose_identifier } from '../read/expression.js';
import { create_fragment } from '../utils/create.js';
import { match_bracket } from '../utils/bracket.js';
const regex_whitespace_with_closing_curly_brace = /^\s*}/;
const pointy_bois = { '<': '>' };
/** @param {Parser} parser */
export default function tag(parser) {
const start = parser.index;
parser.index += 1;
parser.allow_whitespace();
if (parser.eat('#')) return open(parser);
if (parser.eat(':')) return next(parser);
if (parser.eat('@')) return special(parser);
if (parser.match('/')) {
if (!parser.match('/*') && !parser.match('//')) {
parser.eat('/');
return close(parser);
}
}
const expression = read_expression(parser);
parser.allow_whitespace();
parser.eat('}', true);
parser.append({
type: 'ExpressionTag',
start,
end: parser.index,
expression,
metadata: {
expression: new ExpressionMetadata()
}
});
}
/** @param {Parser} parser */
function open(parser) {
let start = parser.index - 2;
while (parser.template[start] !== '{') start -= 1;
if (parser.eat('if')) {
parser.require_whitespace();
/** @type {AST.IfBlock} */
const block = parser.append({
type: 'IfBlock',
// ... (692 more lines)
Domain
Subdomains
Dependencies
Source
Frequently Asked Questions
What does tag.js do?
tag.js is a source file in the svelte codebase, written in javascript. It belongs to the Compiler domain, Transformer subdomain.
What functions are defined in tag.js?
tag.js defines 5 function(s): close, next, open, special, tag.
What does tag.js depend on?
tag.js imports 14 module(s): ExpressionMetadata, acorn.js, bracket.js, context.js, create.js, create_fragment, e, errors.js, and 6 more.
What files import tag.js?
tag.js is imported by 1 file(s): fragment.js.
Where is tag.js in the architecture?
tag.js is located at packages/svelte/src/compiler/phases/1-parse/state/tag.js (domain: Compiler, subdomain: Transformer, directory: packages/svelte/src/compiler/phases/1-parse/state).
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free