UNPKG

@lpc-lang/core

Version:
85 lines 5.39 kB
import { CommentKind, CommentRange, DiagnosticMessage, JSDocParsingMode, JSDocSyntaxKind, LanguageVariant, LineAndCharacter, ScriptKind, ScriptTarget, SourceFileLike, SyntaxKind } from "./_namespaces/lpc.js"; export type ErrorCallback = (message: DiagnosticMessage, length: number, arg0?: any) => void; type RestoreStateFn = () => boolean; export interface Scanner { /** @deprecated use {@link getTokenFullStart} */ getStartPos(): number; getToken(): SyntaxKind; getTokenFullStart(): number; getTokenStart(): number; getTokenEnd(): number; /** @deprecated use {@link getTokenEnd} */ getTextPos(): number; /** @deprecated use {@link getTokenStart} */ getTokenPos(): number; getTokenText(): string; getTokenValue(): string; getStateId(): number; getState(id: number): SavedStatePos | undefined; getStateEndings(): SavedStatePos[]; releaseState(): void; resetSavedStates(): void; hasUnicodeEscape(): boolean; hasExtendedUnicodeEscape(): boolean; hasPrecedingLineBreak(): boolean; isIdentifier(): boolean; isReservedWord(): boolean; isUnterminated(): boolean; reScanGreaterToken(): SyntaxKind; reScanAsteriskEqualsToken(): SyntaxKind; reScanLessThanToken(): SyntaxKind; reScanHashToken(): SyntaxKind; reScanLessThanTokenAsStringLiteral(): SyntaxKind; reScanQuestionToken(): SyntaxKind; reScanInvalidIdentifier(): SyntaxKind; reScanInclude(pos: number): SyntaxKind; scanJsDocToken(): JSDocSyntaxKind; scan(): SyntaxKind; switchStream(newFileName: string, newText: string, start: number, length: number, revertOnEOF?: boolean, onRelease?: () => boolean): RestoreStateFn; getText(): string; setText(text: string | undefined, start?: number, length?: number): void; setFileName(fileName: string): void; setOnError(onError: ErrorCallback | undefined): void; setScriptTarget(scriptTarget: ScriptTarget): void; setLanguageVariant(variant: LanguageVariant): void; setScriptKind(scriptKind: ScriptKind): void; setReportLineBreak(flag: boolean): void; setJSDocParsingMode(kind: JSDocParsingMode): void; /** @deprecated use {@link resetTokenState} */ setTextPos(textPos: number): void; setParseBracketAsStringLiteral(option: boolean): void; resetTokenState(pos: number, resetEnding?: boolean): void; lookAhead<T>(callback: () => T): T; scanRange<T>(start: number, length: number, callback: () => T): T; tryScan<T>(callback: () => T): T; getEnd(): number; getFileName(): string; } interface SavedStatePos { fileName: string; end: number; isSpeculative?: boolean; } export declare function tokenToString(t: SyntaxKind): string | undefined; export declare function getPositionOfLineAndCharacter(sourceFile: SourceFileLike, line: number, character: number): number; export declare function getLineAndCharacterOfPosition(sourceFile: SourceFileLike, position: number): LineAndCharacter; export declare function isWhiteSpaceLike(ch: number): boolean; /** Does not include line breaks. For that, see isWhiteSpaceLike. */ export declare function isWhiteSpaceSingleLine(ch: number): boolean; export declare function isLineBreak(ch: number): boolean; export declare function couldStartTrivia(text: string, pos: number): boolean; export declare function forEachLeadingCommentRange<U>(text: string, pos: number, cb: (pos: number, end: number, kind: CommentKind, hasTrailingNewLine: boolean) => U): U | undefined; export declare function forEachLeadingCommentRange<T, U>(text: string, pos: number, cb: (pos: number, end: number, kind: CommentKind, hasTrailingNewLine: boolean, state: T) => U, state: T): U | undefined; export declare function forEachTrailingCommentRange<U>(text: string, pos: number, cb: (pos: number, end: number, kind: CommentKind, hasTrailingNewLine: boolean) => U): U | undefined; export declare function forEachTrailingCommentRange<T, U>(text: string, pos: number, cb: (pos: number, end: number, kind: CommentKind, hasTrailingNewLine: boolean, state: T) => U, state: T): U | undefined; export declare function reduceEachLeadingCommentRange<T, U>(text: string, pos: number, cb: (pos: number, end: number, kind: CommentKind, hasTrailingNewLine: boolean, state: T) => U, state: T, initial: U): U; export declare function reduceEachTrailingCommentRange<T, U>(text: string, pos: number, cb: (pos: number, end: number, kind: CommentKind, hasTrailingNewLine: boolean, state: T) => U, state: T, initial: U): U; export declare function getLeadingCommentRanges(text: string, pos: number): CommentRange[] | undefined; export declare function getTrailingCommentRanges(text: string, pos: number): CommentRange[] | undefined; /** Optionally, get the shebang */ export declare function getShebang(text: string): string | undefined; export declare function isIdentifierStart(ch: number, languageVersion: ScriptTarget | undefined): boolean; export declare function isIdentifierPart(ch: number, languageVersion: ScriptTarget | undefined, identifierVariant?: LanguageVariant): boolean; export declare function createScanner(languageVersion: ScriptTarget, shouldSkipTrivia: boolean, shouldSkipNonParsableDirectives: boolean, languageVariant?: LanguageVariant, textInitial?: string, onError?: ErrorCallback, start?: number, length?: number): Scanner; export {}; //# sourceMappingURL=scanner.d.ts.map