UNPKG

@ibyar/expressions

Version:

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

142 lines 14.6 kB
import { AccessorProperty, ClassBody, ClassDeclaration, ClassExpression, MetaProperty, MethodDefinition, MethodDefinitionKind, PrivateIdentifier, PropertyDefinition, StaticBlock, Super } from '../api/class/class.js'; import { Decorator } from '../api/class/decorator.js'; import { CallExpression } from '../api/computing/call.js'; import { DebuggerStatement } from '../api/computing/debugger.js'; import { NewExpression } from '../api/computing/new.js'; import { RestElement } from '../api/computing/rest.js'; import { ReturnStatement } from '../api/computing/return.js'; import { SpreadElement } from '../api/computing/spread.js'; import { CatchClauseNode, ThrowStatement, TryCatchNode } from '../api/computing/throw.js'; import { YieldExpression } from '../api/computing/yield.js'; import { ArrayExpression, ArrayPattern } from '../api/definition/array.js'; import { BindExpression } from '../api/definition/bind.js'; import { ArrowFunctionExpression, AssignmentPattern, FunctionDeclaration, FunctionExpression } from '../api/definition/function.js'; import { MemberExpression } from '../api/definition/member.js'; import { ObjectExpression, ObjectPattern, Property } from '../api/definition/object.js'; import { Identifier, Literal, TaggedTemplateExpression, TemplateLiteral, ThisExpression } from '../api/definition/values.js'; import type { ExpressionNode, SourceLocation } from '../api/expression.js'; import { DeclarationExpression } from '../api/expression.js'; import { ImportAttribute } from '../api/module/common.js'; import { ExportAllDeclaration, ExportDefaultDeclaration, ExportNamedDeclaration, ExportSpecifier } from '../api/module/export.js'; import { ImportDeclaration, ImportDefaultSpecifier, ImportExpression, ImportNamespaceSpecifier, ImportSpecifier } from '../api/module/import.js'; import { AssignmentExpression, AssignmentOperator } from '../api/operators/assignment.js'; import { AwaitExpression } from '../api/operators/await.js'; import { BinaryExpression, BinaryOperator } from '../api/operators/binary.js'; import { ChainExpression } from '../api/operators/chaining.js'; import { SequenceExpression } from '../api/operators/comma.js'; import { GroupingExpression } from '../api/operators/grouping.js'; import { LogicalExpression, LogicalOperator } from '../api/operators/logical.js'; import { PipelineExpression } from '../api/operators/pipeline.js'; import { ConditionalExpression } from '../api/operators/ternary.js'; import { UnaryExpression, UnaryOperator } from '../api/operators/unary.js'; import { UpdateExpression, UpdateOperator } from '../api/operators/update.js'; import { Program, ProgramSourceType } from '../api/program.js'; import { BlockStatement } from '../api/statement/control/block.js'; import { EmptyStatement } from '../api/statement/control/empty.js'; import { IfStatement } from '../api/statement/control/if.js'; import { DefaultExpression, SwitchCase, SwitchStatement } from '../api/statement/control/switch.js'; import { BreakStatement, ContinueStatement, LabeledStatement } from '../api/statement/control/terminate.js'; import { WithStatement } from '../api/statement/control/with.js'; import { VariableDeclarationNode, VariableDeclarator } from '../api/statement/declarations/declares.js'; import { ForAwaitOfNode, ForDeclaration, ForInNode, ForNode, ForOfNode } from '../api/statement/iterations/for.js'; import { DoWhileNode, WhileNode } from '../api/statement/iterations/while.js'; export interface SourcePositionFactory { createSourcePosition(range?: [number, number]): SourceLocation | undefined; } export interface NodeFactory { createDebuggerStatement(range?: [number, number]): DebuggerStatement; createSuper(range?: [number, number]): Super; createThis(range?: [number, number]): ThisExpression; createNull(range?: [number, number]): Literal<null>; createTrue(range?: [number, number]): Literal<true>; createFalse(range?: [number, number]): Literal<false>; createVoidZero(argument: ExpressionNode, range?: [number, number]): UnaryExpression; createEmptyStatement(range?: [number, number]): EmptyStatement; createExpressionStatement(list: ExpressionNode[], range?: [number, number]): ExpressionNode; createCatchClause(block: BlockStatement, identifier?: ExpressionNode, range?: [number, number]): CatchClauseNode; createTryStatement(tryBlock: BlockStatement, catchBlock?: ExpressionNode, finallyBlock?: ExpressionNode, range?: [number, number]): TryCatchNode; createThrowStatement(exception: ExpressionNode, range?: [number, number]): ThrowStatement; createBlock(statements: ExpressionNode[], range?: [number, number]): BlockStatement; createIfStatement(condition: ExpressionNode, thenStatement: ExpressionNode, elseStatement?: ExpressionNode, range?: [number, number]): IfStatement; createDoStatement(condition: ExpressionNode, body: ExpressionNode, range?: [number, number]): DoWhileNode; createClassDeclaration(body: ClassBody, decorators: Decorator[], id: Identifier, superClass?: ExpressionNode, range?: [number, number]): ClassDeclaration; createFunctionDeclaration(formals: DeclarationExpression[], bodyBlock: BlockStatement, isAsync: boolean, isGenerator: boolean, name: Identifier, range?: [number, number]): FunctionDeclaration; createFunctionExpression(formals: DeclarationExpression[], bodyBlock: BlockStatement, isAsync: boolean, isGenerator: boolean, range?: [number, number]): FunctionExpression; createWhileStatement(condition: ExpressionNode, body: ExpressionNode, range?: [number, number]): WhileNode; createSwitchStatement(tag: ExpressionNode, cases: SwitchCase[], range?: [number, number]): SwitchStatement; createCaseBlock(test: ExpressionNode, block: BlockStatement, range?: [number, number]): SwitchCase; createDefaultClause(block: BlockStatement, range?: [number, number]): DefaultExpression; createWithStatement(object: ExpressionNode, body: ExpressionNode, range?: [number, number]): WithStatement; createForStatement(body: ExpressionNode, initializer: ExpressionNode, cond: ExpressionNode, next: ExpressionNode, range?: [number, number]): ForNode; createForOfStatement(initializer: ForDeclaration, enumerable: ExpressionNode, body: ExpressionNode, range?: [number, number]): ForOfNode; createForAwaitOfStatement(left: ForDeclaration, right: ExpressionNode, body: ExpressionNode, range?: [number, number]): ForAwaitOfNode; createForInStatement(initializer: ForDeclaration, enumerable: ExpressionNode, body: ExpressionNode, range?: [number, number]): ForInNode; createVariableDeclaration(id: DeclarationExpression, init?: ExpressionNode, range?: [number, number]): VariableDeclarator; createVariableStatement(variables: VariableDeclarator[], kind: 'let' | 'var' | 'const', range?: [number, number]): VariableDeclarationNode; createContinueStatement(label?: Identifier, range?: [number, number]): ContinueStatement; createBreakStatement(label?: Identifier, range?: [number, number]): BreakStatement; createReturnStatement(argument?: ExpressionNode, range?: [number, number]): ReturnStatement; createLabeledStatement(expression: Identifier, result: ExpressionNode, range?: [number, number]): LabeledStatement; createAssignmentPattern(left: DeclarationExpression, right: ExpressionNode, range?: [number, number]): AssignmentPattern; createSpreadElement(argument: ExpressionNode, range?: [number, number]): SpreadElement; createCommaListExpression(expressions: ExpressionNode[], range?: [number, number]): SequenceExpression; createTemplateExpression(quasis: string[], expressions: ExpressionNode[], range?: [number, number]): TemplateLiteral; createTaggedTemplateExpression(tag: ExpressionNode, quasis: string[], expressions: ExpressionNode[], range?: [number, number]): TaggedTemplateExpression; createNewExpression(className: ExpressionNode, parameters?: ExpressionNode[], range?: [number, number]): NewExpression; createObjectBindingPattern(properties: (Property | RestElement)[], range?: [number, number]): ObjectPattern; createObjectLiteralExpression(properties: Property[], range?: [number, number]): ObjectExpression; createArrayBindingPattern(elements: (DeclarationExpression | null)[], range?: [number, number]): ArrayPattern; createArrayLiteralExpression(elements: (ExpressionNode | SpreadElement | null)[], range?: [number, number]): ArrayExpression; createAssignment(operator: AssignmentOperator, left: ExpressionNode, right: ExpressionNode, range?: [number, number]): AssignmentExpression; createRestElement(argument: DeclarationExpression, range?: [number, number]): RestElement; createArrowFunction(params: DeclarationExpression[], body: ExpressionNode | ExpressionNode[], expression: boolean, async: boolean, range?: [number, number]): ArrowFunctionExpression; createPropertyDeclaration(key: ExpressionNode, value: DeclarationExpression | ExpressionNode, kind: 'init' | 'get' | 'set', method: boolean, shorthand: boolean, computed: boolean, range?: [number, number]): Property; createIdentifier(name: string, range?: [number, number]): Identifier; createPropertyAssignment(object: ExpressionNode, property: ExpressionNode, computed: boolean, optional?: boolean, range?: [number, number]): MemberExpression; createPipelineExpression(left: ExpressionNode, right: ExpressionNode, params?: (ExpressionNode | '?' | '...?')[], range?: [number, number]): PipelineExpression; createCallExpression(callee: ExpressionNode, params: ExpressionNode[], optional?: boolean, range?: [number, number]): CallExpression; createBindExpression(object: ExpressionNode, property: ExpressionNode, computed: boolean, optional?: boolean, range?: [number, number]): BindExpression; createChainExpression(expression: ExpressionNode, range?: [number, number]): ChainExpression; createLogicalExpression(operator: LogicalOperator, left: ExpressionNode, right: ExpressionNode, range?: [number, number]): LogicalExpression; createConditionalExpression(test: ExpressionNode, alternate: ExpressionNode, consequent: ExpressionNode, range?: [number, number]): ConditionalExpression; createYieldExpression(delegate: boolean, argument?: ExpressionNode, range?: [number, number]): YieldExpression; createMetaProperty(meta: Identifier, property: Identifier, range?: [number, number]): MetaProperty; createProgram(sourceType: ProgramSourceType, body: ExpressionNode[], range?: [number, number]): Program; createClassExpression(body: ClassBody, decorators: Decorator[], id?: Identifier, superClass?: ExpressionNode, range?: [number, number]): ClassExpression; createClassStaticBlockDeclaration(body: ExpressionNode[], range?: [number, number]): StaticBlock; createMethodSignature(kind: MethodDefinitionKind, key: ExpressionNode | PrivateIdentifier, value: FunctionExpression, decorators: Decorator[], computed: boolean, isStatic: boolean, range?: [number, number]): MethodDefinition; createPropertySignature(key: ExpressionNode | PrivateIdentifier, decorators: Decorator[], computed: boolean, isStatic: boolean, value?: ExpressionNode, range?: [number, number]): PropertyDefinition; createClassBody(body: (MethodDefinition | PropertyDefinition | AccessorProperty | StaticBlock)[], range?: [number, number]): ClassBody; createNamespaceExportDeclaration(specifiers: ExportSpecifier[], declaration?: DeclarationExpression, source?: Literal<string>, assertions?: ImportAttribute[], range?: [number, number]): ExportNamedDeclaration; createExportSpecifier(local: Identifier, exported: Identifier, range?: [number, number]): ExportSpecifier; createImportSpecifier(local: Identifier, imported: Identifier, range?: [number, number]): ImportSpecifier; createImportDeclaration(source: Literal<string>, specifiers?: (ImportSpecifier | ImportDefaultSpecifier | ImportNamespaceSpecifier)[], assertions?: ImportAttribute[], range?: [number, number]): ImportDeclaration; createImportNamespaceSpecifier(local: Identifier, range?: [number, number]): ImportNamespaceSpecifier; createImportDefaultSpecifier(local: Identifier, range?: [number, number]): ImportDefaultSpecifier; createImportExpression(source: Literal<string>, attributes?: ExpressionNode, range?: [number, number]): ImportExpression; createAssertEntry(key: Identifier | Literal<string>, value: Literal<string>, range?: [number, number]): ImportAttribute; createExportDefault(declaration: FunctionDeclaration | ClassDeclaration | ExpressionNode, range?: [number, number]): ExportDefaultDeclaration; createExportAllDeclaration(source: Literal<string>, exported?: Identifier, assertions?: ImportAttribute[], range?: [number, number]): ExportAllDeclaration; createInfixExpression(operator: AssignmentOperator | LogicalOperator | BinaryOperator, left: ExpressionNode, right: ExpressionNode, range?: [number, number]): AssignmentExpression | LogicalExpression | BinaryExpression; createUnaryExpression(operator: UpdateOperator | UnaryOperator | 'await', expression: ExpressionNode, range?: [number, number]): UpdateExpression | UnaryExpression | AwaitExpression; createUpdateExpression(operator: UpdateOperator, argument: ExpressionNode, prefix: boolean, range?: [number, number]): UpdateExpression; createAwaitExpression(argument: ExpressionNode, range?: [number, number]): AwaitExpression; isIdentifier(node?: ExpressionNode): node is Identifier; isObjectExpression(node?: ExpressionNode): node is ObjectExpression; isArrayExpression(node?: ExpressionNode): node is ArrayExpression; isObjectPattern(node?: ExpressionNode): node is ObjectPattern; isArrayPattern(node?: ExpressionNode): node is ArrayPattern; isAssignmentPattern(node?: ExpressionNode): node is AssignmentPattern; isPattern(node?: ExpressionNode): boolean; canBePattern(node?: ExpressionNode): node is (ObjectExpression | ArrayExpression); isProperty(node?: ExpressionNode): node is Property; isMemberExpression(node?: ExpressionNode): node is MemberExpression; isPropertyOrMemberExpression(node?: ExpressionNode): node is (Property | MemberExpression); isEmptyStatement(expression: ExpressionNode): expression is EmptyStatement; isSequenceExpression(node: ExpressionNode): node is SequenceExpression; isSuper(node: ExpressionNode): node is Super; isAssignmentExpression(node: ExpressionNode): node is AssignmentExpression; isGroupingExpression(node: ExpressionNode): node is GroupingExpression; isSpreadElement(node: ExpressionNode): node is SpreadElement; } //# sourceMappingURL=node.d.ts.map