You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					636 lines
				
				20 KiB
			
		
		
			
		
	
	
					636 lines
				
				20 KiB
			| 
											2 years ago
										 | /** | ||
|  |  * The list of supported events. | ||
|  |  */ | ||
|  | export declare const EVENTS: readonly ["xmldecl", "text", "processinginstruction", "doctype", "comment", "opentagstart", "attribute", "opentag", "closetag", "cdata", "error", "end", "ready"]; | ||
|  | /** | ||
|  |  * Event handler for the | ||
|  |  * | ||
|  |  * @param text The text data encountered by the parser. | ||
|  |  * | ||
|  |  */ | ||
|  | export declare type XMLDeclHandler = (decl: XMLDecl) => void; | ||
|  | /** | ||
|  |  * Event handler for text data. | ||
|  |  * | ||
|  |  * @param text The text data encountered by the parser. | ||
|  |  * | ||
|  |  */ | ||
|  | export declare type TextHandler = (text: string) => void; | ||
|  | /** | ||
|  |  * Event handler for processing instructions. | ||
|  |  * | ||
|  |  * @param data The target and body of the processing instruction. | ||
|  |  */ | ||
|  | export declare type PIHandler = (data: { | ||
|  |     target: string; | ||
|  |     body: string; | ||
|  | }) => void; | ||
|  | /** | ||
|  |  * Event handler for doctype. | ||
|  |  * | ||
|  |  * @param doctype The doctype contents. | ||
|  |  */ | ||
|  | export declare type DoctypeHandler = (doctype: string) => void; | ||
|  | /** | ||
|  |  * Event handler for comments. | ||
|  |  * | ||
|  |  * @param comment The comment contents. | ||
|  |  */ | ||
|  | export declare type CommentHandler = (comment: string) => void; | ||
|  | /** | ||
|  |  * Event handler for the start of an open tag. This is called as soon as we | ||
|  |  * have a tag name. | ||
|  |  * | ||
|  |  * @param tag The tag. | ||
|  |  */ | ||
|  | export declare type OpenTagStartHandler<O> = (tag: StartTagForOptions<O>) => void; | ||
|  | export declare type AttributeEventForOptions<O extends SaxesOptions> = O extends { | ||
|  |     xmlns: true; | ||
|  | } ? SaxesAttributeNSIncomplete : O extends { | ||
|  |     xmlns?: false | undefined; | ||
|  | } ? SaxesAttributePlain : SaxesAttribute; | ||
|  | /** | ||
|  |  * Event handler for attributes. | ||
|  |  */ | ||
|  | export declare type AttributeHandler<O> = (attribute: AttributeEventForOptions<O>) => void; | ||
|  | /** | ||
|  |  * Event handler for an open tag. This is called when the open tag is | ||
|  |  * complete. (We've encountered the ">" that ends the open tag.) | ||
|  |  * | ||
|  |  * @param tag The tag. | ||
|  |  */ | ||
|  | export declare type OpenTagHandler<O> = (tag: TagForOptions<O>) => void; | ||
|  | /** | ||
|  |  * Event handler for a close tag. Note that for self-closing tags, this is | ||
|  |  * called right after ``opentag``. | ||
|  |  * | ||
|  |  * @param tag The tag. | ||
|  |  */ | ||
|  | export declare type CloseTagHandler<O> = (tag: TagForOptions<O>) => void; | ||
|  | /** | ||
|  |  * Event handler for a CDATA section. This is called when ending the | ||
|  |  * CDATA section. | ||
|  |  * | ||
|  |  * @param cdata The contents of the CDATA section. | ||
|  |  */ | ||
|  | export declare type CDataHandler = (cdata: string) => void; | ||
|  | /** | ||
|  |  * Event handler for the stream end. This is called when the stream has been | ||
|  |  * closed with ``close`` or by passing ``null`` to ``write``. | ||
|  |  */ | ||
|  | export declare type EndHandler = () => void; | ||
|  | /** | ||
|  |  * Event handler indicating parser readiness . This is called when the parser | ||
|  |  * is ready to parse a new document. | ||
|  |  */ | ||
|  | export declare type ReadyHandler = () => void; | ||
|  | /** | ||
|  |  * Event handler indicating an error. | ||
|  |  * | ||
|  |  * @param err The error that occurred. | ||
|  |  */ | ||
|  | export declare type ErrorHandler = (err: Error) => void; | ||
|  | export declare type EventName = (typeof EVENTS)[number]; | ||
|  | export declare type EventNameToHandler<O, N extends EventName> = { | ||
|  |     "xmldecl": XMLDeclHandler; | ||
|  |     "text": TextHandler; | ||
|  |     "processinginstruction": PIHandler; | ||
|  |     "doctype": DoctypeHandler; | ||
|  |     "comment": CommentHandler; | ||
|  |     "opentagstart": OpenTagStartHandler<O>; | ||
|  |     "attribute": AttributeHandler<O>; | ||
|  |     "opentag": OpenTagHandler<O>; | ||
|  |     "closetag": CloseTagHandler<O>; | ||
|  |     "cdata": CDataHandler; | ||
|  |     "error": ErrorHandler; | ||
|  |     "end": EndHandler; | ||
|  |     "ready": ReadyHandler; | ||
|  | }[N]; | ||
|  | /** | ||
|  |  * This interface defines the structure of attributes when the parser is | ||
|  |  * processing namespaces (created with ``xmlns: true``). | ||
|  |  */ | ||
|  | export interface SaxesAttributeNS { | ||
|  |     /** | ||
|  |      * The attribute's name. This is the combination of prefix and local name. | ||
|  |      * For instance ``a:b="c"`` would have ``a:b`` for name. | ||
|  |      */ | ||
|  |     name: string; | ||
|  |     /** | ||
|  |      * The attribute's prefix. For instance ``a:b="c"`` would have ``"a"`` for | ||
|  |      * ``prefix``. | ||
|  |      */ | ||
|  |     prefix: string; | ||
|  |     /** | ||
|  |      * The attribute's local name. For instance ``a:b="c"`` would have ``"b"`` for | ||
|  |      * ``local``. | ||
|  |      */ | ||
|  |     local: string; | ||
|  |     /** The namespace URI of this attribute. */ | ||
|  |     uri: string; | ||
|  |     /** The attribute's value. */ | ||
|  |     value: string; | ||
|  | } | ||
|  | /** | ||
|  |  * This is an attribute, as recorded by a parser which parses namespaces but | ||
|  |  * prior to the URI being resolvable. This is what is passed to the attribute | ||
|  |  * event handler. | ||
|  |  */ | ||
|  | export declare type SaxesAttributeNSIncomplete = Exclude<SaxesAttributeNS, "uri">; | ||
|  | /** | ||
|  |  * This interface defines the structure of attributes when the parser is | ||
|  |  * NOT processing namespaces (created with ``xmlns: false``). | ||
|  |  */ | ||
|  | export interface SaxesAttributePlain { | ||
|  |     /** | ||
|  |      * The attribute's name. | ||
|  |      */ | ||
|  |     name: string; | ||
|  |     /** The attribute's value. */ | ||
|  |     value: string; | ||
|  | } | ||
|  | /** | ||
|  |  * A saxes attribute, with or without namespace information. | ||
|  |  */ | ||
|  | export declare type SaxesAttribute = SaxesAttributeNS | SaxesAttributePlain; | ||
|  | /** | ||
|  |  * This are the fields that MAY be present on a complete tag. | ||
|  |  */ | ||
|  | export interface SaxesTag { | ||
|  |     /** | ||
|  |      * The tag's name. This is the combination of prefix and global name. For | ||
|  |      * instance ``<a:b>`` would have ``"a:b"`` for ``name``. | ||
|  |      */ | ||
|  |     name: string; | ||
|  |     /** | ||
|  |      * A map of attribute name to attributes. If namespaces are tracked, the | ||
|  |      * values in the map are attribute objects. Otherwise, they are strings. | ||
|  |      */ | ||
|  |     attributes: Record<string, SaxesAttributeNS> | Record<string, string>; | ||
|  |     /** | ||
|  |      * The namespace bindings in effect. | ||
|  |      */ | ||
|  |     ns?: Record<string, string>; | ||
|  |     /** | ||
|  |      * The tag's prefix. For instance ``<a:b>`` would have ``"a"`` for | ||
|  |      * ``prefix``. Undefined if we do not track namespaces. | ||
|  |      */ | ||
|  |     prefix?: string; | ||
|  |     /** | ||
|  |      * The tag's local name. For instance ``<a:b>`` would | ||
|  |      * have ``"b"`` for ``local``. Undefined if we do not track namespaces. | ||
|  |      */ | ||
|  |     local?: string; | ||
|  |     /** | ||
|  |      * The namespace URI of this tag. Undefined if we do not track namespaces. | ||
|  |      */ | ||
|  |     uri?: string; | ||
|  |     /** Whether the tag is self-closing (e.g. ``<foo/>``). */ | ||
|  |     isSelfClosing: boolean; | ||
|  | } | ||
|  | /** | ||
|  |  * This type defines the fields that are present on a tag object when | ||
|  |  * ``onopentagstart`` is called. This interface is namespace-agnostic. | ||
|  |  */ | ||
|  | export declare type SaxesStartTag = Pick<SaxesTag, "name" | "attributes" | "ns">; | ||
|  | /** | ||
|  |  * This type defines the fields that are present on a tag object when | ||
|  |  * ``onopentagstart`` is called on a parser that does not processes namespaces. | ||
|  |  */ | ||
|  | export declare type SaxesStartTagPlain = Pick<SaxesStartTag, "name" | "attributes">; | ||
|  | /** | ||
|  |  * This type defines the fields that are present on a tag object when | ||
|  |  * ``onopentagstart`` is called on a parser that does process namespaces. | ||
|  |  */ | ||
|  | export declare type SaxesStartTagNS = Required<SaxesStartTag>; | ||
|  | /** | ||
|  |  * This are the fields that are present on a complete tag produced by a parser | ||
|  |  * that does process namespaces. | ||
|  |  */ | ||
|  | export declare type SaxesTagNS = Required<SaxesTag> & { | ||
|  |     attributes: Record<string, SaxesAttributeNS>; | ||
|  | }; | ||
|  | /** | ||
|  |  * This are the fields that are present on a complete tag produced by a parser | ||
|  |  * that does not process namespaces. | ||
|  |  */ | ||
|  | export declare type SaxesTagPlain = Pick<SaxesTag, "name" | "attributes" | "isSelfClosing"> & { | ||
|  |     attributes: Record<string, string>; | ||
|  | }; | ||
|  | /** | ||
|  |  * An XML declaration. | ||
|  |  */ | ||
|  | export interface XMLDecl { | ||
|  |     /** The version specified by the XML declaration. */ | ||
|  |     version?: string; | ||
|  |     /** The encoding specified by the XML declaration. */ | ||
|  |     encoding?: string; | ||
|  |     /** The value of the standalone parameter */ | ||
|  |     standalone?: string; | ||
|  | } | ||
|  | /** | ||
|  |  * A callback for resolving name prefixes. | ||
|  |  * | ||
|  |  * @param prefix The prefix to check. | ||
|  |  * | ||
|  |  * @returns The URI corresponding to the prefix, if any. | ||
|  |  */ | ||
|  | export declare type ResolvePrefix = (prefix: string) => string | undefined; | ||
|  | export interface CommonOptions { | ||
|  |     /** Whether to accept XML fragments. Unset means ``false``. */ | ||
|  |     fragment?: boolean; | ||
|  |     /** Whether to track positions. Unset means ``true``. */ | ||
|  |     position?: boolean; | ||
|  |     /** | ||
|  |      * A file name to use for error reporting. "File name" is a loose concept. You | ||
|  |      * could use a URL to some resource, or any descriptive name you like. | ||
|  |      */ | ||
|  |     fileName?: string; | ||
|  | } | ||
|  | export interface NSOptions { | ||
|  |     /** Whether to track namespaces. Unset means ``false``. */ | ||
|  |     xmlns?: boolean; | ||
|  |     /** | ||
|  |      * A plain object whose key, value pairs define namespaces known before | ||
|  |      * parsing the XML file. It is not legal to pass bindings for the namespaces | ||
|  |      * ``"xml"`` or ``"xmlns"``. | ||
|  |      */ | ||
|  |     additionalNamespaces?: Record<string, string>; | ||
|  |     /** | ||
|  |      * A function that will be used if the parser cannot resolve a namespace | ||
|  |      * prefix on its own. | ||
|  |      */ | ||
|  |     resolvePrefix?: ResolvePrefix; | ||
|  | } | ||
|  | export interface NSOptionsWithoutNamespaces extends NSOptions { | ||
|  |     xmlns?: false; | ||
|  |     additionalNamespaces?: undefined; | ||
|  |     resolvePrefix?: undefined; | ||
|  | } | ||
|  | export interface NSOptionsWithNamespaces extends NSOptions { | ||
|  |     xmlns: true; | ||
|  | } | ||
|  | export interface XMLVersionOptions { | ||
|  |     /** | ||
|  |      * The default XML version to use. If unspecified, and there is no XML | ||
|  |      * encoding declaration, the default version is "1.0". | ||
|  |      */ | ||
|  |     defaultXMLVersion?: "1.0" | "1.1"; | ||
|  |     /** | ||
|  |      * A flag indicating whether to force the XML version used for parsing to the | ||
|  |      * value of ``defaultXMLVersion``. When this flag is ``true``, | ||
|  |      * ``defaultXMLVersion`` must be specified. If unspecified, the default value | ||
|  |      * of this flag is ``false``. | ||
|  |      */ | ||
|  |     forceXMLVersion?: boolean; | ||
|  | } | ||
|  | export interface NoForcedXMLVersion extends XMLVersionOptions { | ||
|  |     forceXMLVersion?: false; | ||
|  | } | ||
|  | export interface ForcedXMLVersion extends XMLVersionOptions { | ||
|  |     forceXMLVersion: true; | ||
|  |     defaultXMLVersion: Exclude<XMLVersionOptions["defaultXMLVersion"], undefined>; | ||
|  | } | ||
|  | /** | ||
|  |  * The entire set of options supported by saxes. | ||
|  |  */ | ||
|  | export declare type SaxesOptions = CommonOptions & NSOptions & XMLVersionOptions; | ||
|  | export declare type TagForOptions<O extends SaxesOptions> = O extends { | ||
|  |     xmlns: true; | ||
|  | } ? SaxesTagNS : O extends { | ||
|  |     xmlns?: false | undefined; | ||
|  | } ? SaxesTagPlain : SaxesTag; | ||
|  | export declare type StartTagForOptions<O extends SaxesOptions> = O extends { | ||
|  |     xmlns: true; | ||
|  | } ? SaxesStartTagNS : O extends { | ||
|  |     xmlns?: false | undefined; | ||
|  | } ? SaxesStartTagPlain : SaxesStartTag; | ||
|  | export declare class SaxesParser<O extends SaxesOptions = {}> { | ||
|  |     private readonly fragmentOpt; | ||
|  |     private readonly xmlnsOpt; | ||
|  |     private readonly trackPosition; | ||
|  |     private readonly fileName?; | ||
|  |     private readonly nameStartCheck; | ||
|  |     private readonly nameCheck; | ||
|  |     private readonly isName; | ||
|  |     private readonly ns; | ||
|  |     private openWakaBang; | ||
|  |     private text; | ||
|  |     private name; | ||
|  |     private piTarget; | ||
|  |     private entity; | ||
|  |     private q; | ||
|  |     private tags; | ||
|  |     private tag; | ||
|  |     private topNS; | ||
|  |     private chunk; | ||
|  |     private chunkPosition; | ||
|  |     private i; | ||
|  |     private prevI; | ||
|  |     private carriedFromPrevious?; | ||
|  |     private forbiddenState; | ||
|  |     private attribList; | ||
|  |     private state; | ||
|  |     private reportedTextBeforeRoot; | ||
|  |     private reportedTextAfterRoot; | ||
|  |     private closedRoot; | ||
|  |     private sawRoot; | ||
|  |     private xmlDeclPossible; | ||
|  |     private xmlDeclExpects; | ||
|  |     private entityReturnState?; | ||
|  |     private processAttribs; | ||
|  |     private positionAtNewLine; | ||
|  |     private doctype; | ||
|  |     private getCode; | ||
|  |     private isChar; | ||
|  |     private pushAttrib; | ||
|  |     private _closed; | ||
|  |     private currentXMLVersion; | ||
|  |     private readonly stateTable; | ||
|  |     private xmldeclHandler?; | ||
|  |     private textHandler?; | ||
|  |     private piHandler?; | ||
|  |     private doctypeHandler?; | ||
|  |     private commentHandler?; | ||
|  |     private openTagStartHandler?; | ||
|  |     private openTagHandler?; | ||
|  |     private closeTagHandler?; | ||
|  |     private cdataHandler?; | ||
|  |     private errorHandler?; | ||
|  |     private endHandler?; | ||
|  |     private readyHandler?; | ||
|  |     private attributeHandler?; | ||
|  |     /** | ||
|  |      * Indicates whether or not the parser is closed. If ``true``, wait for | ||
|  |      * the ``ready`` event to write again. | ||
|  |      */ | ||
|  |     get closed(): boolean; | ||
|  |     readonly opt: SaxesOptions; | ||
|  |     /** | ||
|  |      * The XML declaration for this document. | ||
|  |      */ | ||
|  |     xmlDecl: XMLDecl; | ||
|  |     /** | ||
|  |      * The line number of the next character to be read by the parser. This field | ||
|  |      * is one-based. (The first line is numbered 1.) | ||
|  |      */ | ||
|  |     line: number; | ||
|  |     /** | ||
|  |      * The column number of the next character to be read by the parser.  * | ||
|  |      * This field is zero-based. (The first column is 0.) | ||
|  |      * | ||
|  |      * This field counts columns by *Unicode character*. Note that this *can* | ||
|  |      * be different from the index of the character in a JavaScript string due | ||
|  |      * to how JavaScript handles astral plane characters. | ||
|  |      * | ||
|  |      * See [[columnIndex]] for a number that corresponds to the JavaScript index. | ||
|  |      */ | ||
|  |     column: number; | ||
|  |     /** | ||
|  |      * A map of entity name to expansion. | ||
|  |      */ | ||
|  |     ENTITIES: Record<string, string>; | ||
|  |     /** | ||
|  |      * @param opt The parser options. | ||
|  |      */ | ||
|  |     constructor(opt?: O); | ||
|  |     _init(): void; | ||
|  |     /** | ||
|  |      * The stream position the parser is currently looking at. This field is | ||
|  |      * zero-based. | ||
|  |      * | ||
|  |      * This field is not based on counting Unicode characters but is to be | ||
|  |      * interpreted as a plain index into a JavaScript string. | ||
|  |      */ | ||
|  |     get position(): number; | ||
|  |     /** | ||
|  |      * The column number of the next character to be read by the parser.  * | ||
|  |      * This field is zero-based. (The first column in a line is 0.) | ||
|  |      * | ||
|  |      * This field reports the index at which the next character would be in the | ||
|  |      * line if the line were represented as a JavaScript string.  Note that this | ||
|  |      * *can* be different to a count based on the number of *Unicode characters* | ||
|  |      * due to how JavaScript handles astral plane characters. | ||
|  |      * | ||
|  |      * See [[column]] for a number that corresponds to a count of Unicode | ||
|  |      * characters. | ||
|  |      */ | ||
|  |     get columnIndex(): number; | ||
|  |     /** | ||
|  |      * Set an event listener on an event. The parser supports one handler per | ||
|  |      * event type. If you try to set an event handler over an existing handler, | ||
|  |      * the old handler is silently overwritten. | ||
|  |      * | ||
|  |      * @param name The event to listen to. | ||
|  |      * | ||
|  |      * @param handler The handler to set. | ||
|  |      */ | ||
|  |     on<N extends EventName>(name: N, handler: EventNameToHandler<O, N>): void; | ||
|  |     /** | ||
|  |      * Unset an event handler. | ||
|  |      * | ||
|  |      * @parma name The event to stop listening to. | ||
|  |      */ | ||
|  |     off(name: EventName): void; | ||
|  |     /** | ||
|  |      * Make an error object. The error object will have a message that contains | ||
|  |      * the ``fileName`` option passed at the creation of the parser. If position | ||
|  |      * tracking was turned on, it will also have line and column number | ||
|  |      * information. | ||
|  |      * | ||
|  |      * @param message The message describing the error to report. | ||
|  |      * | ||
|  |      * @returns An error object with a properly formatted message. | ||
|  |      */ | ||
|  |     makeError(message: string): Error; | ||
|  |     /** | ||
|  |      * Report a parsing error. This method is made public so that client code may | ||
|  |      * check for issues that are outside the scope of this project and can report | ||
|  |      * errors. | ||
|  |      * | ||
|  |      * @param message The error to report. | ||
|  |      * | ||
|  |      * @returns this | ||
|  |      */ | ||
|  |     fail(message: string): this; | ||
|  |     /** | ||
|  |      * Write a XML data to the parser. | ||
|  |      * | ||
|  |      * @param chunk The XML data to write. | ||
|  |      * | ||
|  |      * @returns this | ||
|  |      */ | ||
|  |     write(chunk: string | {} | null): this; | ||
|  |     /** | ||
|  |      * Close the current stream. Perform final well-formedness checks and reset | ||
|  |      * the parser tstate. | ||
|  |      * | ||
|  |      * @returns this | ||
|  |      */ | ||
|  |     close(): this; | ||
|  |     /** | ||
|  |      * Get a single code point out of the current chunk. This updates the current | ||
|  |      * position if we do position tracking. | ||
|  |      * | ||
|  |      * This is the algorithm to use for XML 1.0. | ||
|  |      * | ||
|  |      * @returns The character read. | ||
|  |      */ | ||
|  |     private getCode10; | ||
|  |     /** | ||
|  |      * Get a single code point out of the current chunk. This updates the current | ||
|  |      * position if we do position tracking. | ||
|  |      * | ||
|  |      * This is the algorithm to use for XML 1.1. | ||
|  |      * | ||
|  |      * @returns {number} The character read. | ||
|  |      */ | ||
|  |     private getCode11; | ||
|  |     /** | ||
|  |      * Like ``getCode`` but with the return value normalized so that ``NL`` is | ||
|  |      * returned for ``NL_LIKE``. | ||
|  |      */ | ||
|  |     private getCodeNorm; | ||
|  |     private unget; | ||
|  |     /** | ||
|  |      * Capture characters into a buffer until encountering one of a set of | ||
|  |      * characters. | ||
|  |      * | ||
|  |      * @param chars An array of codepoints. Encountering a character in the array | ||
|  |      * ends the capture. (``chars`` may safely contain ``NL``.) | ||
|  |      * | ||
|  |      * @return The character code that made the capture end, or ``EOC`` if we hit | ||
|  |      * the end of the chunk. The return value cannot be NL_LIKE: NL is returned | ||
|  |      * instead. | ||
|  |      */ | ||
|  |     private captureTo; | ||
|  |     /** | ||
|  |      * Capture characters into a buffer until encountering a character. | ||
|  |      * | ||
|  |      * @param char The codepoint that ends the capture. **NOTE ``char`` MAY NOT | ||
|  |      * CONTAIN ``NL``.** Passing ``NL`` will result in buggy behavior. | ||
|  |      * | ||
|  |      * @return ``true`` if we ran into the character. Otherwise, we ran into the | ||
|  |      * end of the current chunk. | ||
|  |      */ | ||
|  |     private captureToChar; | ||
|  |     /** | ||
|  |      * Capture characters that satisfy ``isNameChar`` into the ``name`` field of | ||
|  |      * this parser. | ||
|  |      * | ||
|  |      * @return The character code that made the test fail, or ``EOC`` if we hit | ||
|  |      * the end of the chunk. The return value cannot be NL_LIKE: NL is returned | ||
|  |      * instead. | ||
|  |      */ | ||
|  |     private captureNameChars; | ||
|  |     /** | ||
|  |      * Skip white spaces. | ||
|  |      * | ||
|  |      * @return The character that ended the skip, or ``EOC`` if we hit | ||
|  |      * the end of the chunk. The return value cannot be NL_LIKE: NL is returned | ||
|  |      * instead. | ||
|  |      */ | ||
|  |     private skipSpaces; | ||
|  |     private setXMLVersion; | ||
|  |     private sBegin; | ||
|  |     private sBeginWhitespace; | ||
|  |     private sDoctype; | ||
|  |     private sDoctypeQuote; | ||
|  |     private sDTD; | ||
|  |     private sDTDQuoted; | ||
|  |     private sDTDOpenWaka; | ||
|  |     private sDTDOpenWakaBang; | ||
|  |     private sDTDComment; | ||
|  |     private sDTDCommentEnding; | ||
|  |     private sDTDCommentEnded; | ||
|  |     private sDTDPI; | ||
|  |     private sDTDPIEnding; | ||
|  |     private sText; | ||
|  |     private sEntity; | ||
|  |     private sOpenWaka; | ||
|  |     private sOpenWakaBang; | ||
|  |     private sComment; | ||
|  |     private sCommentEnding; | ||
|  |     private sCommentEnded; | ||
|  |     private sCData; | ||
|  |     private sCDataEnding; | ||
|  |     private sCDataEnding2; | ||
|  |     private sPIFirstChar; | ||
|  |     private sPIRest; | ||
|  |     private sPIBody; | ||
|  |     private sPIEnding; | ||
|  |     private sXMLDeclNameStart; | ||
|  |     private sXMLDeclName; | ||
|  |     private sXMLDeclEq; | ||
|  |     private sXMLDeclValueStart; | ||
|  |     private sXMLDeclValue; | ||
|  |     private sXMLDeclSeparator; | ||
|  |     private sXMLDeclEnding; | ||
|  |     private sOpenTag; | ||
|  |     private sOpenTagSlash; | ||
|  |     private sAttrib; | ||
|  |     private sAttribName; | ||
|  |     private sAttribNameSawWhite; | ||
|  |     private sAttribValue; | ||
|  |     private sAttribValueQuoted; | ||
|  |     private sAttribValueClosed; | ||
|  |     private sAttribValueUnquoted; | ||
|  |     private sCloseTag; | ||
|  |     private sCloseTagSawWhite; | ||
|  |     private handleTextInRoot; | ||
|  |     private handleTextOutsideRoot; | ||
|  |     private pushAttribNS; | ||
|  |     private pushAttribPlain; | ||
|  |     /** | ||
|  |      * End parsing. This performs final well-formedness checks and resets the | ||
|  |      * parser to a clean state. | ||
|  |      * | ||
|  |      * @returns this | ||
|  |      */ | ||
|  |     private end; | ||
|  |     /** | ||
|  |      * Resolve a namespace prefix. | ||
|  |      * | ||
|  |      * @param prefix The prefix to resolve. | ||
|  |      * | ||
|  |      * @returns The namespace URI or ``undefined`` if the prefix is not defined. | ||
|  |      */ | ||
|  |     resolve(prefix: string): string | undefined; | ||
|  |     /** | ||
|  |      * Parse a qname into its prefix and local name parts. | ||
|  |      * | ||
|  |      * @param name The name to parse | ||
|  |      * | ||
|  |      * @returns | ||
|  |      */ | ||
|  |     private qname; | ||
|  |     private processAttribsNS; | ||
|  |     private processAttribsPlain; | ||
|  |     /** | ||
|  |      * Handle a complete open tag. This parser code calls this once it has seen | ||
|  |      * the whole tag. This method checks for well-formeness and then emits | ||
|  |      * ``onopentag``. | ||
|  |      */ | ||
|  |     private openTag; | ||
|  |     /** | ||
|  |      * Handle a complete self-closing tag. This parser code calls this once it has | ||
|  |      * seen the whole tag. This method checks for well-formeness and then emits | ||
|  |      * ``onopentag`` and ``onclosetag``. | ||
|  |      */ | ||
|  |     private openSelfClosingTag; | ||
|  |     /** | ||
|  |      * Handle a complete close tag. This parser code calls this once it has seen | ||
|  |      * the whole tag. This method checks for well-formeness and then emits | ||
|  |      * ``onclosetag``. | ||
|  |      */ | ||
|  |     private closeTag; | ||
|  |     /** | ||
|  |      * Resolves an entity. Makes any necessary well-formedness checks. | ||
|  |      * | ||
|  |      * @param entity The entity to resolve. | ||
|  |      * | ||
|  |      * @returns The parsed entity. | ||
|  |      */ | ||
|  |     private parseEntity; | ||
|  | } |