UNPKG

@ibyar/expressions

Version:

Aurora expression, an template expression and evaluation, An 100% spec compliant ES2022 JavaScript toolchain,

217 lines 13.4 kB
import type { DeclarationExpression, ExpressionNode } from '../api/expression.js'; import type { NodeFactory } from './node.js'; import { ClassDeclaration, ClassExpression } from '../api/class/class.js'; import { FunctionDeclaration, FunctionExpression } from '../api/definition/function.js'; import { Identifier, TaggedTemplateExpression, TemplateLiteral } from '../api/definition/values.js'; import { BlockStatement } from '../api/statement/control/block.js'; import { VariableDeclarationNode } from '../api/statement/declarations/declares.js'; import { AllowLabelledFunctionStatement, FunctionBodyType, FunctionInfo, FunctionKind, FunctionSyntaxKind, ParseFunctionFlag, ParsingArrowHeadFlag, PropertyKindInfo, VariableDeclarationContext } from './enums.js'; import { TokenStream } from './stream.js'; import { Token, TokenExpression } from './token.js'; import { LanguageMode } from './language.js'; export type InlineParserOptions = { mode?: LanguageMode; acceptIN?: boolean; factory?: NodeFactory; addLocation?: boolean; }; export type Range = [number, number]; export type RangeOrVoid = Range | undefined; export type PositionMark = { range?: Range; }; export declare abstract class AbstractParser { protected scanner: TokenStream; protected factory: NodeFactory; protected acceptIN: boolean; protected previousAcceptIN: boolean[]; protected functionKind: FunctionKind; protected previousFunctionKind: FunctionKind[]; get languageMode(): LanguageMode; set languageMode(mode: LanguageMode); constructor(scanner: TokenStream, factory: NodeFactory, acceptIN?: boolean); abstract scan(): ExpressionNode; protected position(): number; protected setAcceptIN(acceptIN: boolean): void; protected restoreAcceptIN(): void; protected getLastFunctionKind(): FunctionKind; protected setFunctionKind(functionKind: FunctionKind): void; protected restoreFunctionKind(): void; protected setStatue(acceptIN: boolean, functionKind: FunctionKind): void; protected restoreStatue(): void; protected current(): TokenExpression; protected next(): TokenExpression; protected peek(): TokenExpression; protected peekAhead(): TokenExpression; protected peekAheadPosition(): number; protected peekPosition(): number; protected createRange(): undefined; protected createRange(start: Required<PositionMark>): Range; protected createRange(start?: PositionMark): RangeOrVoid; protected createRangeByStart(start: Required<PositionMark>): Range; protected createStartPosition(): Range; protected updateRangeEnd(range: Range): void; protected consume(token: Token): TokenExpression; protected check(token: Token): boolean; protected checkAndGetValue(token: Token): ExpressionNode | undefined; protected checkValue(value: ExpressionNode): boolean; protected expect(token: Token): TokenExpression; protected expectAndGetValue(token: Token): ExpressionNode; protected checkInOrOf(): 'IN' | 'OF' | false; protected peekInOrOf(): 'IN' | 'OF' | false; protected isArguments(node: ExpressionNode): boolean; protected isEval(node: ExpressionNode): boolean; protected isEvalOrArguments(node: ExpressionNode): boolean; protected isNextLetKeyword(): boolean; protected markParenthesized(expression: ExpressionNode): void; protected clearParenthesized(expression: ExpressionNode): void; protected isParenthesized(expression: ExpressionNode): boolean; protected isAssignableIdentifier(expression: ExpressionNode): boolean; protected isValidReferenceExpression(expression: ExpressionNode): boolean; protected expectSemicolon(): void; protected peekAnyIdentifier(): boolean; protected expectContextualKeyword(keyword: string): boolean; protected checkContextualKeyword(keyword: string): boolean; protected peekContextualKeyword(keyword: string): boolean; protected methodKindFor(isStatic: boolean, flag: ParseFunctionFlag): FunctionKind; protected isGenerator(): boolean; protected isAsyncFunction(): boolean; protected is_async_function(): boolean; protected is_async_generator(): boolean; protected is_resumable(): boolean; protected isAwaitAllowed(): boolean; protected isAwaitAsIdentifierDisallowed(): boolean; protected shouldBanArguments(): boolean; protected errorMessage(message: string): string; protected reportErrorMessage(message: string): void; } export declare class JavaScriptInlineParser extends AbstractParser { static parse(source: string | TokenExpression[] | TokenStream, { mode, acceptIN, factory, addLocation }?: InlineParserOptions): ExpressionNode; constructor(scanner: TokenStream, factory: NodeFactory, acceptIN?: boolean); scan(): ExpressionNode; /** * Statement :: * Block * VariableStatement * EmptyStatement * ExpressionStatement * IfStatement * IterationStatement * ContinueStatement * BreakStatement * ReturnStatement * WithStatement * LabelledStatement * SwitchStatement * ThrowStatement * TryStatement * DebuggerStatement */ protected parseStatement(allowFunction?: AllowLabelledFunctionStatement): ExpressionNode; protected parseDebuggerStatement(): import("../index.js").DebuggerStatement; protected parseTryStatement(): ExpressionNode; protected parseNonRestrictedIdentifier(): Identifier; protected parseBlock(): BlockStatement; /** * ECMA 262 6th Edition * StatementListItem[Yield, Return] : * Statement[?Yield, ?Return] * Declaration[?Yield] * // * Declaration[Yield] : * HoistableDeclaration[?Yield] * ClassDeclaration[?Yield] * LexicalDeclaration[In, ?Yield] * // * HoistableDeclaration[Yield, Default] : * FunctionDeclaration[?Yield, ?Default] * GeneratorDeclaration[?Yield, ?Default] * // * LexicalDeclaration[In, Yield] : * LetOrConst BindingList[?In, ?Yield] ; */ protected parseStatementListItem(): ExpressionNode | undefined; protected parseFunctionExpression(): FunctionExpression | FunctionDeclaration; protected parseAsyncFunctionDeclaration(names: string[] | undefined, defaultExport: boolean, start: PositionMark): FunctionDeclaration; protected parseIfStatement(): ExpressionNode; protected parseScopedStatement(): ExpressionNode; protected parseDoWhileStatement(): ExpressionNode; protected parseWhileStatement(): import("../index.js").WhileNode; protected parseThrowStatement(): ExpressionNode; protected parseSwitchStatement(): ExpressionNode; protected parseForStatement(): import("../api/statement/iterations/for.js").ForNode | import("../api/statement/iterations/for.js").ForOfNode | import("../api/statement/iterations/for.js").ForInNode; protected parseStandardForLoopWithLexicalDeclarations(initializer: VariableDeclarationNode, start: PositionMark): import("../api/statement/iterations/for.js").ForNode; protected parseForEachStatementWithDeclarations(initializer: VariableDeclarationNode, forMode: 'IN' | 'OF', start: PositionMark): import("../api/statement/iterations/for.js").ForOfNode | import("../api/statement/iterations/for.js").ForInNode; protected parseForEachStatementWithoutDeclarations(initializer: ExpressionNode, forMode: 'IN' | 'OF', start: PositionMark): import("../api/statement/iterations/for.js").ForOfNode | import("../api/statement/iterations/for.js").ForInNode; protected parseStandardForLoop(initializer: ExpressionNode, start: PositionMark): import("../api/statement/iterations/for.js").ForNode; protected parseForAwaitStatement(): import("../api/statement/iterations/for.js").ForAwaitOfNode; protected parseVariableDeclarations(varContext: VariableDeclarationContext): VariableDeclarationNode; protected parseBindingPattern(isPattern: boolean): ExpressionNode; protected parseAndClassifyIdentifier(next: TokenExpression): ExpressionNode; protected parseContinueStatement(): ExpressionNode; protected parseBreakStatement(): ExpressionNode; protected parseReturnStatement(): ExpressionNode; protected parseExpressionOrLabelledStatement(allowFunction: AllowLabelledFunctionStatement): ExpressionNode; protected parseExpression(): ExpressionNode; protected parseFunctionDeclaration(): FunctionDeclaration; protected parseAsyncFunctionLiteral(): FunctionExpression | FunctionDeclaration; protected parseHoistableDeclaration(names: string[] | undefined, defaultExport: boolean, start: PositionMark): FunctionExpression | FunctionDeclaration; protected parseHoistableDeclaration01(flag: FunctionKind, names: string[] | undefined, defaultExport: boolean, start: PositionMark): FunctionExpression | FunctionDeclaration; protected parseIdentifier(kind?: FunctionKind): Identifier; protected getIdentifier(): Identifier; protected parseFunctionLiteral(flag: FunctionKind, functionSyntaxKind: FunctionSyntaxKind, name: Identifier | undefined, start: PositionMark): FunctionDeclaration | FunctionExpression; protected parseFunctionBody(kind: FunctionKind, bodyType: FunctionBodyType.BLOCK, functionSyntaxKind: FunctionSyntaxKind): ExpressionNode[]; protected parseFunctionBody(kind: FunctionKind, bodyType: FunctionBodyType.EXPRESSION, functionSyntaxKind: FunctionSyntaxKind): ExpressionNode; protected parseAndRewriteAsyncGeneratorFunctionBody(kind: FunctionKind): ExpressionNode[]; protected parseAndRewriteGeneratorFunctionBody(kind: FunctionKind): ExpressionNode[]; protected parseAsyncFunctionBody(): ExpressionNode[]; protected parseStatementList(endToken: Token): ExpressionNode[]; protected parseFormalParameterList(functionInfo: FunctionInfo): DeclarationExpression[]; protected parseFormalParameter(functionInfo: FunctionInfo): DeclarationExpression; protected parseExpressionCoverGrammar(): ExpressionNode; protected parseArrowParametersWithRest(list: ExpressionNode[]): ExpressionNode; protected expressionListToExpression(list: ExpressionNode[]): ExpressionNode; protected parseMemberExpression(): ExpressionNode; protected parsePrimaryExpression(): ExpressionNode; protected parseTemplateLiteral(tag?: ExpressionNode): ExpressionNode; protected createTemplateLiteralExpressionNode(strings: string[], expressions: ExpressionNode[], tag?: ExpressionNode, range?: RangeOrVoid): TaggedTemplateExpression | TemplateLiteral; protected parseMemberWithPresentNewPrefixesExpression(): ExpressionNode; protected parseArguments(maybeArrow?: ParsingArrowHeadFlag): ExpressionNode[]; protected parseAssignmentExpressionCoverGrammar(): ExpressionNode; protected parseAssignmentExpression(): ExpressionNode; private checkParamType; protected parseArrowFunctionLiteral(parameters: DeclarationExpression[], kind: FunctionKind, range: Range): ExpressionNode; protected parseRegExpLiteral(): ExpressionNode; protected parseArrayLiteral(isPattern: boolean): import("../index.js").ArrayExpression | import("../index.js").ArrayPattern; protected parsePossibleDestructuringSubPattern(): ExpressionNode; protected parseObjectLiteral(isPattern: boolean): ExpressionNode; protected parseObjectPropertyDefinition(isPattern: boolean): ExpressionNode; protected parseProperty(propInfo: PropertyKindInfo): ExpressionNode; protected parseMemberExpressionContinuation(expression: ExpressionNode): ExpressionNode; protected doParseMemberExpressionContinuation(expression: ExpressionNode): ExpressionNode; protected parsePropertyOrPrivatePropertyName(): ExpressionNode; protected parsePipelineExpression(expression: ExpressionNode): ExpressionNode; protected parsePipelineBody(lhs: ExpressionNode): ExpressionNode; protected parseConditionalExpression(): ExpressionNode; protected parseLogicalExpression(): ExpressionNode; protected parseBinaryContinuation(x: ExpressionNode, prec: number, prec1: number): ExpressionNode; protected parseBinaryExpression(precedence: number): ExpressionNode; protected parseUnaryExpression(): ExpressionNode; protected parseUnaryOrPrefixExpression(): ExpressionNode; protected parsePostfixExpression(): ExpressionNode; protected parsePostfixContinuation(expression: ExpressionNode): ExpressionNode; protected parseLeftHandSideExpression(): ExpressionNode; protected parseLeftHandSideContinuation(result: ExpressionNode): ExpressionNode; protected parseAwaitExpression(): ExpressionNode; protected parseNullishExpression(expression: ExpressionNode): ExpressionNode; protected parseConditionalContinuation(expression: ExpressionNode): ExpressionNode; protected parseYieldExpression(): ExpressionNode; protected parseNewTargetExpression(start?: PositionMark): ExpressionNode; protected parseClassExpression(): ClassExpression; protected parseClassDeclaration(names: string[] | undefined, defaultExport: boolean, start: PositionMark): ClassDeclaration; protected parseClassLiteral(name: ExpressionNode | undefined, isStrictReserved: boolean): ExpressionNode; protected parseSuperExpression(): ExpressionNode; protected parseImportExpressions(): ExpressionNode; protected parseWithStatement(): ExpressionNode; } //# sourceMappingURL=inline.d.ts.map