123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384 |
- import type { TAG_ID } from './html.js';
- export declare enum TokenType {
- CHARACTER = 0,
- NULL_CHARACTER = 1,
- WHITESPACE_CHARACTER = 2,
- START_TAG = 3,
- END_TAG = 4,
- COMMENT = 5,
- DOCTYPE = 6,
- EOF = 7,
- HIBERNATION = 8
- }
- export interface Location {
-
- startLine: number;
-
- startCol: number;
-
- startOffset: number;
-
- endLine: number;
-
- endCol: number;
-
- endOffset: number;
- }
- export interface LocationWithAttributes extends Location {
-
- attrs?: Record<string, Location>;
- }
- export interface ElementLocation extends LocationWithAttributes {
-
- startTag?: Location;
-
- endTag?: Location;
- }
- interface TokenBase {
- readonly type: TokenType;
- location: Location | null;
- }
- export interface DoctypeToken extends TokenBase {
- readonly type: TokenType.DOCTYPE;
- name: string | null;
- forceQuirks: boolean;
- publicId: string | null;
- systemId: string | null;
- }
- export interface Attribute {
-
- name: string;
-
- namespace?: string;
-
- prefix?: string;
-
- value: string;
- }
- export interface TagToken extends TokenBase {
- readonly type: TokenType.START_TAG | TokenType.END_TAG;
- tagName: string;
-
- tagID: TAG_ID;
- selfClosing: boolean;
- ackSelfClosing: boolean;
- attrs: Attribute[];
- location: LocationWithAttributes | null;
- }
- export declare function getTokenAttr(token: TagToken, attrName: string): string | null;
- export interface CommentToken extends TokenBase {
- readonly type: TokenType.COMMENT;
- data: string;
- }
- export interface EOFToken extends TokenBase {
- readonly type: TokenType.EOF;
- }
- export interface CharacterToken extends TokenBase {
- type: TokenType.CHARACTER | TokenType.NULL_CHARACTER | TokenType.WHITESPACE_CHARACTER;
- chars: string;
- }
- export type Token = DoctypeToken | TagToken | CommentToken | EOFToken | CharacterToken;
- export {};
|