Standardize settings file naming and relocate documentation files Fix code quality violations from rsx:check Reorganize user_management directory into logical subdirectories Move Quill Bundle to core and align with Tom Select pattern Simplify Site Settings page to focus on core site information Complete Phase 5: Multi-tenant authentication with login flow and site selection Add route query parameter rule and synchronize filename validation logic Fix critical bug in UpdateNpmCommand causing missing JavaScript stubs Implement filename convention rule and resolve VS Code auto-rename conflict Implement js-sanitizer RPC server to eliminate 900+ Node.js process spawns Implement RPC server architecture for JavaScript parsing WIP: Add RPC server infrastructure for JS parsing (partial implementation) Update jqhtml terminology from destroy to stop, fix datagrid DOM preservation Add JQHTML-CLASS-01 rule and fix redundant class names Improve code quality rules and resolve violations Remove legacy fatal error format in favor of unified 'fatal' error type Filter internal keys from window.rsxapp output Update button styling and comprehensive form/modal documentation Add conditional fly-in animation for modals Fix non-deterministic bundle compilation 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
130 lines
3.7 KiB
TypeScript
130 lines
3.7 KiB
TypeScript
export declare enum TokenType {
|
|
TEXT = "TEXT",
|
|
EXPRESSION_START = "EXPRESSION_START",// <%=
|
|
EXPRESSION_UNESCAPED = "EXPRESSION_UNESCAPED",// <%!=
|
|
CODE_START = "CODE_START",// <%
|
|
TAG_END = "TAG_END",// %>
|
|
IF = "IF",
|
|
ELSE = "ELSE",
|
|
ELSEIF = "ELSEIF",
|
|
ENDIF = "ENDIF",
|
|
FOR = "FOR",
|
|
ENDFOR = "ENDFOR",
|
|
COMMENT = "COMMENT",// <%-- comment --%>
|
|
DEFINE_START = "DEFINE_START",// <Define:
|
|
DEFINE_END = "DEFINE_END",// </Define:
|
|
COMPONENT_NAME = "COMPONENT_NAME",
|
|
SLOT_START = "SLOT_START",// <#
|
|
SLOT_END = "SLOT_END",// </#
|
|
SLOT_NAME = "SLOT_NAME",
|
|
TAG_OPEN = "TAG_OPEN",// <tagname or <ComponentName
|
|
TAG_CLOSE = "TAG_CLOSE",// </tagname or </ComponentName
|
|
TAG_NAME = "TAG_NAME",// The tag/component name
|
|
SELF_CLOSING = "SELF_CLOSING",// />
|
|
ATTR_NAME = "ATTR_NAME",// $property or regular
|
|
ATTR_VALUE = "ATTR_VALUE",
|
|
COLON = "COLON",
|
|
SEMICOLON = "SEMICOLON",
|
|
GT = "GT",// >
|
|
LT = "LT",// <
|
|
SLASH = "SLASH",// /
|
|
EQUALS = "EQUALS",// =
|
|
QUOTE = "QUOTE",// " or '
|
|
EOF = "EOF",
|
|
NEWLINE = "NEWLINE",
|
|
WHITESPACE = "WHITESPACE",
|
|
JAVASCRIPT = "JAVASCRIPT"
|
|
}
|
|
export interface SourceLocation {
|
|
start: {
|
|
line: number;
|
|
column: number;
|
|
offset: number;
|
|
};
|
|
end: {
|
|
line: number;
|
|
column: number;
|
|
offset: number;
|
|
};
|
|
}
|
|
export interface Token {
|
|
type: TokenType;
|
|
value: string;
|
|
line: number;
|
|
column: number;
|
|
start: number;
|
|
end: number;
|
|
loc?: SourceLocation;
|
|
}
|
|
export declare class Lexer {
|
|
private input;
|
|
private position;
|
|
private line;
|
|
private column;
|
|
private tokens;
|
|
private savedPosition;
|
|
constructor(input: string);
|
|
/**
|
|
* Save current position for later token creation
|
|
*/
|
|
private savePosition;
|
|
/**
|
|
* Get saved position or current position
|
|
*/
|
|
private getSavedPosition;
|
|
/**
|
|
* Replace <%-- comment --%> with equivalent number of newlines
|
|
* This ensures line mapping stays accurate while removing comment content
|
|
*/
|
|
private preprocessComments;
|
|
/**
|
|
* Replace HTML comments (<!-- -->) that appear OUTSIDE of <Define> tags
|
|
* This strips documentation comments before component definitions
|
|
* HTML comments INSIDE <Define> tags are preserved in the output
|
|
*/
|
|
private preprocessHTMLComments;
|
|
/**
|
|
* Preprocess code blocks and expressions
|
|
* - Insert comment markers for empty lines in code blocks
|
|
* - Collapse multi-line expressions to single line with trailing newlines
|
|
* This ensures 1:1 line mapping in generated code
|
|
*/
|
|
private preprocessCodeBlocks;
|
|
/**
|
|
* Find the closing %> tag, properly handling strings and comments
|
|
*/
|
|
private findClosingTag;
|
|
tokenize(): Token[];
|
|
private scan_next;
|
|
private scan_text;
|
|
private scan_code_block;
|
|
private scan_comment;
|
|
private scan_html_comment;
|
|
private scan_expression;
|
|
private scan_javascript;
|
|
private scan_component_name;
|
|
private scan_slot_name;
|
|
private match_sequence;
|
|
private match_keyword;
|
|
private peek_sequence;
|
|
private peek_sequence_at;
|
|
private skip_whitespace;
|
|
private current_char;
|
|
private peek_ahead;
|
|
private advance;
|
|
private add_token;
|
|
private is_tag_name_char;
|
|
private is_tag_name_continue_char;
|
|
private scan_opening_tag;
|
|
private scan_closing_tag;
|
|
private scan_attributes;
|
|
private is_attribute_start_char;
|
|
private peek_for_colon;
|
|
private scan_attribute;
|
|
private scan_attribute_value;
|
|
private validate_unquoted_value;
|
|
private get_current_attribute_context;
|
|
private value_contains_interpolation;
|
|
private scan_interpolated_attribute_value;
|
|
}
|
|
//# sourceMappingURL=lexer.d.ts.map
|