/// /// import { RuntimeExpression } from "../../core/constructs/expressions/RuntimeExpression"; import { CompiledInitializerListExpression, RuntimeInitializerListExpression } from "../../core/constructs/expressions/InitializerListExpression"; import { CompiledParenthesesExpression, RuntimeParentheses } from "../../core/constructs/expressions/ParenthesesExpression"; import { CompiledStringLiteralExpression, RuntimeStringLiteralExpression } from "../../core/constructs/expressions/StringLiteralExpression"; import { CompiledNumericLiteralExpression, RuntimeNumericLiteral } from "../../core/constructs/expressions/NumericLiteralExpression"; import { CompiledNullptrExpression, RuntimeNullptrExpression } from "../../core/constructs/expressions/NullptrExpression"; import { CompiledThisExpression, RuntimeThisExpression } from "../../core/constructs/expressions/ThisExpression"; import { CompiledFunctionIdentifierExpression, CompiledObjectIdentifierExpression, RuntimeFunctionIdentifierExpression, RuntimeObjectIdentifierExpression } from "../../core/constructs/expressions/IdentifierExpression"; import { CompiledPostfixIncrementExpression, RuntimePostfixIncrementExpression } from "../../core/constructs/expressions/PostfixIncrementExpression"; import { CompiledFunctionArrowExpression, CompiledObjectArrowExpression, RuntimeFunctionArrowExpression, RuntimeObjectArrowExpression } from "../../core/constructs/expressions/ArrowExpression"; import { CompiledFunctionDotExpression, CompiledObjectDotExpression, RuntimeFunctionDotExpression, RuntimeObjectDotExpression } from "../../core/constructs/expressions/DotExpression"; import { CompiledSubscriptExpression, RuntimeSubscriptExpression } from "../../core/constructs/expressions/SubscriptExpression"; import { CompiledUnaryOperatorExpression, RuntimeUnaryOperatorExpression } from "../../core/constructs/expressions/UnaryOperatorExpression"; import { CompiledInputOperatorExpression, RuntimeInputOperatorExpression } from "../../core/constructs/expressions/InputOperatorExpression"; import { CompiledOutputOperatorExpression, RuntimeOutputOperatorExpression } from "../../core/constructs/expressions/OutputOperatorExpression"; import { CompiledBinaryOperatorExpression, RuntimeBinaryOperator } from "../../core/constructs/expressions/BinaryOperatorExpression"; import { CompiledCompoundAssignmentExpression, RuntimeCompoundAssignment as RuntimeCompoundAssignmentExpression } from "../../core/constructs/expressions/CompoundAssignmentExpression"; import { CompiledAssignmentExpression, RuntimeAssignment as RuntimeAssignmentExpression } from "../../core/constructs/expressions/AssignmentExpression"; import { CompiledCommaExpression, CompiledTernaryExpression, RuntimeComma, RuntimeTernary } from "../../core/constructs/expressions/CommaExpression"; import { CompiledNewArrayExpression, CompiledNewExpression, RuntimeNewArrayExpression, RuntimeNewExpression } from "../../core/constructs/expressions/NewExpression"; import { CompiledDeleteArrayExpression, CompiledDeleteExpression, RuntimeDeleteArrayExpression, RuntimeDeleteExpression } from "../../core/constructs/expressions/DeleteExpression"; import { CompiledOpaqueExpression, RuntimeOpaqueExpression } from "../../core/constructs/expressions/OpaqueExpression"; import { CompleteObjectType } from "../../core/compilation/types"; import { Message } from "../../util/observe"; import { ConstructOutlet } from "./ConstructOutlet"; import { PotentialFullExpressionOutlet } from "./PotentialFullExpressionOutlet"; import { InitializerOutlet } from "./InitializerOutlet"; import { RuntimeFunctionCallExpression, CompiledFunctionCallExpression } from "../../core/constructs/expressions/FunctionCallExpression"; import { RuntimeNonMemberOperatorOverloadExpression, CompiledNonMemberOperatorOverloadExpression, RuntimeMemberOperatorOverloadExpression, CompiledMemberOperatorOverloadExpression } from "../../core/constructs/expressions/OperatorOverloadExpression"; import { FunctionCallOutlet } from "./FunctionCallOutlet"; import { ReturnDestinationOutlet } from "./ReturnDestinationOutlet"; import { RuntimeMagicFunctionCallExpression, CompiledMagicFunctionCallExpression } from "../../core/constructs/expressions/MagicFunctionCallExpression"; import { CompiledExpression } from "../../core/constructs/expressions/Expression"; export declare function createExpressionOutlet(element: JQuery, construct: CompiledExpression, parent?: ConstructOutlet): ExpressionOutlet>>; export declare abstract class ExpressionOutlet extends PotentialFullExpressionOutlet { readonly showingEvalResult: boolean; readonly animateEvaluation: boolean; protected readonly evalResultElem: JQuery; protected readonly wrapperElem: JQuery; protected readonly exprElem: JQuery; constructor(element: JQuery, construct: RT["model"], parent?: ConstructOutlet, animateEvaluation?: boolean); protected setEvalResult(result: RT["evalResult"], suppressAnimation?: boolean): void; showEvalResult(suppressAnimation?: boolean): void; removeEvalValue(): void; hideEvalValueRecursive(): void; protected instanceSet(inst: RT): void; protected instanceRemoved(oldInst: RT): void; protected evaluated(msg: Message): void; } export declare function addChildExpressionOutlet(parentElement: JQuery, construct: CompiledExpression, parent: ConstructOutlet): ExpressionOutlet>>; export declare class AssignmentExpressionOutlet extends ExpressionOutlet { readonly lhs: ExpressionOutlet; readonly rhs: ExpressionOutlet; constructor(element: JQuery, construct: CompiledAssignmentExpression, parent?: ConstructOutlet); } export declare class CompoundAssignmentExpressionOutlet extends ExpressionOutlet { readonly lhs: ExpressionOutlet; readonly rhs: ExpressionOutlet; constructor(element: JQuery, construct: CompiledCompoundAssignmentExpression, parent?: ConstructOutlet); } export declare class TernaryExpressionOutlet extends ExpressionOutlet { readonly condition: ExpressionOutlet; readonly then: ExpressionOutlet; readonly otherwise: ExpressionOutlet; constructor(element: JQuery, construct: CompiledTernaryExpression, parent?: ConstructOutlet); } export declare class CommaExpressionOutlet extends ExpressionOutlet { readonly left: ExpressionOutlet; readonly right: ExpressionOutlet; constructor(element: JQuery, construct: CompiledCommaExpression, parent?: ConstructOutlet); } export declare class BinaryOperatorExpressionOutlet extends ExpressionOutlet { readonly left: ExpressionOutlet; readonly right: ExpressionOutlet; constructor(element: JQuery, construct: CompiledBinaryOperatorExpression, parent?: ConstructOutlet); } export declare class OutputOperatorExpressionOutlet extends ExpressionOutlet { readonly left: ExpressionOutlet; readonly right: ExpressionOutlet; constructor(element: JQuery, construct: CompiledOutputOperatorExpression, parent?: ConstructOutlet); } export declare class InputOperatorExpressionOutlet extends ExpressionOutlet { readonly left: ExpressionOutlet; readonly right: ExpressionOutlet; constructor(element: JQuery, construct: CompiledInputOperatorExpression, parent?: ConstructOutlet); } export declare class UnaryOperatorExpressionOutlet extends ExpressionOutlet { readonly operand: ExpressionOutlet; constructor(element: JQuery, construct: CompiledUnaryOperatorExpression, parent?: ConstructOutlet); } export declare class NewExpressionOutlet extends ExpressionOutlet { readonly initializerOutlet?: InitializerOutlet; constructor(element: JQuery, construct: CompiledNewExpression, parent?: ConstructOutlet); } export declare class NewArrayExpressionOutlet extends ExpressionOutlet { readonly individualElementInitializerOutlets: readonly InitializerOutlet[]; readonly dynamicLengthExpression?: ExpressionOutlet; constructor(element: JQuery, construct: CompiledNewArrayExpression, parent?: ConstructOutlet); } export declare class DeleteExpressionOutlet extends ExpressionOutlet { readonly operand?: ExpressionOutlet; constructor(element: JQuery, construct: CompiledDeleteExpression, parent?: ConstructOutlet); } export declare class DeleteArrayExpressionOutlet extends ExpressionOutlet { readonly operand?: ExpressionOutlet; constructor(element: JQuery, construct: CompiledDeleteArrayExpression, parent?: ConstructOutlet); } export declare class PostfixIncrementExpressionOutlet extends ExpressionOutlet { readonly operand: ExpressionOutlet; constructor(element: JQuery, construct: CompiledPostfixIncrementExpression, parent?: ConstructOutlet); } export declare class SubscriptExpressionOutlet extends ExpressionOutlet { readonly operand: ExpressionOutlet; readonly offset: ExpressionOutlet; constructor(element: JQuery, construct: CompiledSubscriptExpression, parent?: ConstructOutlet); } export declare class DotExpressionOutlet extends ExpressionOutlet { readonly operand: ExpressionOutlet; constructor(element: JQuery, construct: CompiledObjectDotExpression | CompiledFunctionDotExpression, parent?: ConstructOutlet); } export declare class ArrowExpressionOutlet extends ExpressionOutlet { readonly operand: ExpressionOutlet; constructor(element: JQuery, construct: CompiledObjectArrowExpression | CompiledFunctionArrowExpression, parent?: ConstructOutlet); } export declare class ParenthesesOutlet extends ExpressionOutlet { readonly subexpression: ExpressionOutlet; constructor(element: JQuery, construct: CompiledParenthesesExpression, parent?: ConstructOutlet); } export declare class InitializerListOutlet extends ExpressionOutlet { readonly elements: readonly ExpressionOutlet[]; constructor(element: JQuery, construct: CompiledInitializerListExpression, parent?: ConstructOutlet); } export declare class IdentifierOutlet extends ExpressionOutlet { constructor(element: JQuery, construct: CompiledObjectIdentifierExpression | CompiledFunctionIdentifierExpression, parent?: ConstructOutlet); } export declare class NumericLiteralOutlet extends ExpressionOutlet { constructor(element: JQuery, construct: CompiledNumericLiteralExpression, parent?: ConstructOutlet); } export declare class StringLiteralExpressionOutlet extends ExpressionOutlet { constructor(element: JQuery, construct: CompiledStringLiteralExpression, parent?: ConstructOutlet); } export declare class OpaqueExpressionOutlet extends ExpressionOutlet { constructor(element: JQuery, construct: CompiledOpaqueExpression, parent?: ConstructOutlet); } export declare class ThisExpressionOutlet extends ExpressionOutlet { constructor(element: JQuery, construct: CompiledThisExpression, parent?: ConstructOutlet); } export declare class NullptrExpressionOutlet extends ExpressionOutlet { constructor(element: JQuery, construct: CompiledNullptrExpression, parent?: ConstructOutlet); } export declare class FunctionCallExpressionOutlet extends ExpressionOutlet implements ReturnDestinationOutlet { readonly operandOutlet: ExpressionOutlet; readonly callOutlet: FunctionCallOutlet; readonly returnDestinationElement: JQuery; constructor(element: JQuery, construct: CompiledFunctionCallExpression, parent?: ConstructOutlet); setReturnedResult(result: RuntimeFunctionCallExpression["evalResult"], suppressAnimation?: boolean): void; } export declare class NonMemberOperatorOverloadExpressionOutlet extends ExpressionOutlet implements ReturnDestinationOutlet { readonly callOutlet: FunctionCallOutlet; readonly returnDestinationElement: JQuery; constructor(element: JQuery, construct: CompiledNonMemberOperatorOverloadExpression, parent?: ConstructOutlet); setReturnedResult(result: RuntimeNonMemberOperatorOverloadExpression["evalResult"], suppressAnimation?: boolean): void; } export declare class MemberOperatorOverloadExpressionOutlet extends ExpressionOutlet implements ReturnDestinationOutlet { readonly receiverOutlet: ExpressionOutlet; readonly callOutlet: FunctionCallOutlet; readonly returnDestinationElement: JQuery; constructor(element: JQuery, construct: CompiledMemberOperatorOverloadExpression, parent?: ConstructOutlet); setReturnedResult(result: RuntimeMemberOperatorOverloadExpression["evalResult"], suppressAnimation?: boolean): void; } export declare class MagicFunctionCallExpressionOutlet extends ExpressionOutlet { readonly argOutlets: readonly ExpressionOutlet[]; constructor(element: JQuery, construct: CompiledMagicFunctionCallExpression, parent?: ConstructOutlet); }