import type { StringLiteralExpression } from "../ast/stringLiteralExpression.js"; import type { FieldSelfInvocationExpression } from "../ast/fieldSelfInvocationExpression.js"; import type { NumberLiteralExpression } from "../ast/numberLiteralExpression.js"; import type { InvocationExpression } from "../ast/invocationExpression.js"; import type { ListEntry } from "../ast/listEntry.js"; import type { IdentifierExpression } from "../ast/identifierExpression.js"; import type { FunctionExpression } from "../ast/functionExpression.js"; import type { FieldAccessExpression } from "../ast/fieldAccessExpression.js"; import type { DestructuringExpression } from "../ast/destructuringExpression.js"; import type { BracketExpression } from "../ast/bracketExpression.js"; import type { AssignmentExpression } from "../ast/assignmentExpression.js"; import type { Expression } from "../ast/expression.js"; import { ASTVisitor } from "../ast/astVisitor.js"; import type { ExecutableListEntry } from "./ast/executableListEntry.js"; import type { ExecutableExpression } from "./ast/executableExpression.js"; import type { ObjectExpression } from "../ast/objectExpression.js"; import type { OperatorExpression } from "../ast/operatorExpression.js"; import type { IndexExpression } from "../ast/indexExpression.js"; import type { IndexSelfInvocationExpression } from "../ast/indexSelfInvocationExpression.js"; import type { FieldAssignmentExpression } from "../ast/fieldAssignmentExpression.js"; import type { IndexAssignmentExpression } from "../ast/indexAssignmentExpression.js"; /** * Transforms the AST into an executable AST */ export declare class RuntimeAstTransformer extends ASTVisitor> { private readonly keepExpression; /** * Creates a new RuntimeAstTransformer * * @param keepExpression if true, the created executable expression will keep the original expression */ constructor(keepExpression: boolean); visitAssignmentExpression(expression: AssignmentExpression): ExecutableExpression; visitFieldAssignmentExpression(expression: FieldAssignmentExpression): ExecutableExpression; visitIndexAssignmentExpression(expression: IndexAssignmentExpression): ExecutableExpression; visitBracketExpression(expression: BracketExpression): ExecutableExpression; visitDestructoringExpression(expression: DestructuringExpression): ExecutableExpression; visitFieldAccessExpression(expression: FieldAccessExpression): ExecutableExpression; visitIndexExpression(expression: IndexExpression): ExecutableExpression; visitFunctionExpression(expression: FunctionExpression): ExecutableExpression; visitIdentifierExpression(expression: IdentifierExpression): ExecutableExpression; visitInvocationExpression(expression: InvocationExpression): ExecutableExpression; visitNumberLiteralExpression(expression: NumberLiteralExpression): ExecutableExpression; visitFieldSelfInvocationExpression(expression: FieldSelfInvocationExpression): ExecutableExpression; visitIndexSelfInvocationExpression(expression: IndexSelfInvocationExpression): ExecutableExpression; visistStringLiteralExpression(expression: StringLiteralExpression): ExecutableExpression; visitObjectExpression(expression: ObjectExpression): ExecutableExpression; visitOperatorExpression(expression: OperatorExpression): ExecutableExpression; visitNoopExpression(): ExecutableExpression; visit(expression: Expression): ExecutableExpression; /** * Maps the provided list entries to executable list entries * * @param args the list entries to map * @returns the mapped list entries */ protected generateListEntries(args: ListEntry[]): ExecutableListEntry[]; /** * Returns the provided expression if keepExpression is true, otherwise undefined * * @param expression the expression to return if keepExpression is true * @returns the provided expression if keepExpression is true, otherwise undefined */ protected optionalExpression(expression: T): T | undefined; } //# sourceMappingURL=runtimeAstTransformer.d.ts.map