/// /// import { AnalyticConstruct } from "../../../analysis/predicates"; import { FunctionCallExpressionASTNode } from "../../../ast/ast_expressions"; import { ConstructOutlet } from "../../../view/constructs/ConstructOutlet"; import { ConstructDescription, ExpressionContext, SemanticContext } from "../../compilation/contexts"; import { CompleteReturnType, FunctionType, PeelReference } from "../../compilation/types"; import { RuntimeConstruct, SuccessfullyCompiled } from "../CPPConstruct"; import { CompiledFunctionCall, FunctionCall, RuntimeFunctionCall, TypedFunctionCall } from "../FunctionCall"; import { CompiledTemporaryDeallocator } from "../TemporaryDeallocator"; import { CompiledFunctionArrowExpression, RuntimeFunctionArrowExpression } from "./ArrowExpression"; import { CompiledFunctionDotExpression, RuntimeFunctionDotExpression } from "./DotExpression"; import { CompiledExpression, Expression, ValueCategory } from "./Expression"; import { RuntimeExpression } from "./RuntimeExpression"; import { CompiledFunctionIdentifierExpression, RuntimeFunctionIdentifierExpression } from "./IdentifierExpression"; import { MagicFunctionCallExpression } from "./MagicFunctionCallExpression"; import { OperatorOverloadExpression } from "./OperatorOverloadExpression"; import { FunctionCallExpressionOutlet } from "../../../view/constructs/ExpressionOutlets"; export declare class FunctionCallExpression extends Expression { readonly construct_type = "function_call_expression"; readonly type?: PeelReference; readonly valueCategory?: ValueCategory; readonly operand: Expression; readonly originalArgs: readonly Expression[]; readonly call?: FunctionCall; constructor(context: ExpressionContext, ast: FunctionCallExpressionASTNode | undefined, operand: Expression, args: readonly Expression[]); static createFromAST(ast: FunctionCallExpressionASTNode, context: ExpressionContext): FunctionCallExpression | MagicFunctionCallExpression | OperatorOverloadExpression; createDefaultOutlet(this: CompiledFunctionCallExpression, element: JQuery, parent?: ConstructOutlet): FunctionCallExpressionOutlet; describeEvalResult(depth: number): ConstructDescription; isSemanticallyEquivalent_impl(other: AnalyticConstruct, ec: SemanticContext): boolean; } export interface TypedFunctionCallExpression = PeelReference, V extends ValueCategory = ValueCategory> extends FunctionCallExpression { readonly type: T; readonly valueCategory: V; readonly call: TypedFunctionCall>; } export interface CompiledFunctionCallExpression = PeelReference, V extends ValueCategory = ValueCategory> extends TypedFunctionCallExpression, SuccessfullyCompiled { readonly temporaryDeallocator?: CompiledTemporaryDeallocator; readonly operand: CompiledFunctionIdentifierExpression | CompiledFunctionDotExpression | CompiledFunctionArrowExpression; readonly originalArgs: readonly CompiledExpression[]; readonly call: CompiledFunctionCall>; } export declare const INDEX_FUNCTION_CALL_EXPRESSION_OPERAND = 0; export declare const INDEX_FUNCTION_CALL_EXPRESSION_CALL = 1; export declare const INDEX_FUNCTION_CALL_EXPRESSION_RETURN = 2; export declare class RuntimeFunctionCallExpression = PeelReference, V extends ValueCategory = ValueCategory> extends RuntimeExpression> { readonly operand: RuntimeFunctionIdentifierExpression | RuntimeFunctionDotExpression | RuntimeFunctionArrowExpression; readonly call?: RuntimeFunctionCall>; readonly index: typeof INDEX_FUNCTION_CALL_EXPRESSION_OPERAND | typeof INDEX_FUNCTION_CALL_EXPRESSION_CALL | typeof INDEX_FUNCTION_CALL_EXPRESSION_RETURN; constructor(model: CompiledFunctionCallExpression, parent: RuntimeConstruct); protected upNextImpl(): void; protected stepForwardImpl(): void; }