sucrase
Version:
Super-fast alternative to Babel for when you can target modern JS runtimes
77 lines (76 loc) • 2.54 kB
TypeScript
import { Options } from "../options";
import BaseParser from "../parser/base";
import { TokContext } from "./context";
import State from "./state";
import { TokenType } from "./types";
export declare enum IdentifierRole {
Access = 0,
ExportAccess = 1,
FunctionScopedDeclaration = 2,
BlockScopedDeclaration = 3,
ObjectShorthand = 4,
ObjectKey = 5,
}
export declare class Token {
constructor(state: State);
type: TokenType;
value: any;
start: number;
end: number;
isType: boolean;
identifierRole?: IdentifierRole;
shadowsGlobal?: boolean;
contextId?: number;
rhsEndIndex?: number;
isExpression?: boolean;
}
export default abstract class Tokenizer extends BaseParser {
abstract unexpected(pos?: number | null, messageOrType?: string | TokenType): never;
isLookahead: boolean;
state: State;
input: string;
nextContextId: number;
constructor(options: Options, input: string);
next(): void;
runInTypeContext<T>(existingTokensInType: number, func: () => T): T;
eat(type: TokenType): boolean;
match(type: TokenType): boolean;
isKeyword(word: string): boolean;
lookaheadType(): TokenType;
lookaheadTypeAndValue(): {
type: TokenType;
value: any;
};
curContext(): TokContext;
nextToken(): void;
readToken(code: number): void;
fullCharCodeAtPos(): number;
skipBlockComment(): void;
skipLineComment(startSkip: number): void;
skipSpace(): void;
finishToken(type: TokenType, val?: any): void;
readToken_dot(): void;
readToken_slash(): void;
readToken_mult_modulo(code: number): void;
readToken_pipe_amp(code: number): void;
readToken_caret(): void;
readToken_plus_min(code: number): void;
readToken_lt_gt(code: number): void;
readToken_eq_excl(code: number): void;
readToken_question(): void;
getTokenFromCode(code: number): void;
finishOp(type: TokenType, size: number): void;
readRegexp(): void;
readInt(radix: number, len?: number): number | null;
readRadixNumber(radix: number): void;
readNumber(startsWithDot: boolean): void;
readCodePoint(throwOnInvalid: boolean): number | null;
readString(quote: number): void;
readTmplToken(): void;
readEscapedChar(inTemplate: boolean): string | null;
readHexChar(len: number, throwOnInvalid: boolean): number | null;
readWord1(): string;
readWord(): void;
braceIsBlock(prevType: TokenType): boolean;
updateContext(prevType: TokenType): void;
}