import { Token } from './lexer.js'; import { ProgramNode, CodeLocation } from './ast.js'; export declare class Parser { private tokens; private current; private source?; private filename?; private open_elements; private define_name; constructor(tokens: Token[], source?: string, filename?: string); /** * Validate JavaScript code for common mistakes */ private validate_javascript_code; parse(): ProgramNode; private parse_component_definition; private parse_content; /** 1-based line/column where a token starts. */ private position_of; /** Error for a token parse_content() cannot place: stray or mismatched closing * tags, a stray %>, a nested . */ private unexpected_content_error; private parse_expression; private parse_code_block; private static readonly JAVASCRIPT_RESERVED_WORDS; /** * Validate a slot tag's attributes and return the declared parameter list. * * -> ['record', 'index'] * -> undefined (function(row) {...}) */ private parse_slot_params; private parse_slot; private parse_tag; private parse_attributes; private parse_conditional_attribute; /** tag="script" / tag="style" on a or a component would build the element * the template rules forbid. */ private reject_forbidden_tag_attribute; /** An expression whose %> never comes: report the opening tag, not the end of file. */ private throw_unterminated_expression; private parse_attribute_value; /** * Attach where an attribute's JavaScript starts in the source (for sourcemaps) as a * non-enumerable `loc`, so the value object keeps its documented shape. */ static with_code_loc(value: T, loc: CodeLocation): T; /** Trim and collapse internal whitespace: the textual identity of a dynamic tag expression. */ static normalize_expression(expression: string): string; private check_closing_dynamic_tag; private check_closing_tag; private match; private check; private check_ahead; private check_sequence; private advance; private is_at_end; private peek; private peek_ahead; private previous; private current_token; private previous_token; /** * Create a SourceLocation from start and end tokens * Propagates loc field if available, falls back to old fields for compatibility */ private create_location; private consume; private validate_component_children; /** * Compile method for simplified API * Parses the template and returns component metadata and render function */ compile(): { name: string; tagName: string; defaultAttributes: Record; renderFunction: string; }; } //# sourceMappingURL=parser.d.ts.map