sucrase
Version:
Super-fast alternative to Babel for when you can target modern JS runtimes
58 lines (57 loc) • 3.21 kB
TypeScript
import { TokenType } from "../tokenizer/types";
import LValParser from "./lval";
export default abstract class ExpressionParser extends LValParser {
abstract parseBlock(allowDirectives?: boolean, isFunctionScope?: boolean, contextId?: number): void;
abstract parseClass(isStatement: boolean, optionalId?: boolean): void;
abstract parseDecorators(allowExport?: boolean): void;
abstract parseFunction(functionStart: number, isStatement: boolean, allowExpressionBody?: boolean, optionalId?: boolean): void;
abstract parseFunctionParams(allowModifiers?: boolean, funcContextId?: number): void;
parseExpression(noIn?: boolean): void;
parseMaybeAssign(noIn?: boolean | null, afterLeftParse?: Function): boolean;
parseMaybeConditional(noIn: boolean | null): boolean;
parseConditional(noIn: boolean | null, startPos: number): void;
parseExprOps(noIn: boolean | null): boolean;
parseExprOp(minPrec: number, noIn: boolean | null): void;
parseMaybeUnary(): boolean;
parseExprSubscripts(): boolean;
parseSubscripts(startPos: number, noCalls?: boolean | null): void;
/** Set 'state.stop = true' to indicate that we should stop parsing subscripts. */
parseSubscript(startPos: number, noCalls: boolean | null, state: {
stop: boolean;
}): void;
atPossibleAsync(): boolean;
parseCallExpressionArguments(close: TokenType): void;
shouldParseAsyncArrow(): boolean;
parseAsyncArrowFromCallExpression(functionStart: number, startTokenIndex: number): void;
parseNoCallExpr(): void;
parseExprAtom(): boolean;
parseMaybePrivateName(): void;
parseFunctionExpression(): void;
parseMetaProperty(): void;
parseImportMetaProperty(): void;
parseLiteral(): void;
parseParenExpression(): void;
parseParenAndDistinguishExpression(canBeArrow: boolean): boolean;
shouldParseArrow(): boolean;
parseArrow(): boolean;
parseParenItem(): void;
parseNew(): void;
parseNewArguments(): void;
parseTemplateElement(isTagged: boolean): void;
parseTemplate(isTagged: boolean): void;
parseObj(isPattern: boolean, isBlockScope: boolean): void;
isGetterOrSetterMethod(isPattern: boolean): boolean;
parseObjectMethod(isGenerator: boolean, isPattern: boolean, objectContextId: number): boolean;
parseObjectProperty(isPattern: boolean, isBlockScope: boolean): void;
parseObjPropValue(isGenerator: boolean, isPattern: boolean, isBlockScope: boolean, objectContextId: number): void;
parsePropertyName(objectContextId: number): void;
parseMethod(functionStart: number, isGenerator: boolean, isConstructor: boolean): void;
parseArrowExpression(functionStart: number, startTokenIndex: number): void;
parseFunctionBodyAndFinish(functionStart: number, isGenerator: boolean, allowExpressionBody?: boolean | null, funcContextId?: number): void;
parseFunctionBody(functionStart: number, isGenerator: boolean, allowExpression: boolean | null, funcContextId?: number): void;
parseExprList(close: TokenType, allowEmpty?: boolean | null): void;
parseExprListItem(allowEmpty: boolean | null): void;
parseIdentifier(): void;
parseAwait(): void;
parseYield(): void;
}