/// /// import { Simulation } from "../../runtime/Simulation"; import { ArithmeticType, PointerToCompleteType as PointerToCompleteObjectType } from "../../compilation/types"; import { ExpressionContext, ConstructDescription, SemanticContext } from "../../compilation/contexts"; import { SuccessfullyCompiled, RuntimeConstruct } from "../CPPConstruct"; import { Expression, CompiledExpression, TypedExpression, t_TypedExpression } from "./Expression"; import { RuntimeExpression } from "./RuntimeExpression"; import { CompoundAssignmentExpressionOutlet } from "../../../view/constructs/ExpressionOutlets"; import { ConstructOutlet } from "../../../view/constructs/ConstructOutlet"; import { AnalyticConstruct } from "../../../analysis/predicates"; import { CompiledTemporaryDeallocator } from "../TemporaryDeallocator"; import { CompoundAssignmentExpressionASTNode, t_ArithmeticBinaryOperators, t_CompoundAssignmentOperators } from "../../../ast/ast_expressions"; import { SimpleRuntimeExpression } from "./SimpleRuntimeExpression"; import { OperatorOverloadExpression } from "./OperatorOverloadExpression"; export declare class CompoundAssignmentExpression extends Expression { readonly construct_type = "compound_assignment_expression"; readonly type?: PointerToCompleteObjectType | ArithmeticType; readonly valueCategory = "lvalue"; readonly lhs: Expression; readonly rhs: Expression; readonly operator: t_CompoundAssignmentOperators; readonly equivalentBinaryOp: t_ArithmeticBinaryOperators; private constructor(); static createFromAST(ast: CompoundAssignmentExpressionASTNode, context: ExpressionContext): CompoundAssignmentExpression | OperatorOverloadExpression; createDefaultOutlet(this: CompiledCompoundAssignmentExpression, element: JQuery, parent?: ConstructOutlet): CompoundAssignmentExpressionOutlet; describeEvalResult(depth: number): ConstructDescription; explain(sim: Simulation, rtConstruct: RuntimeConstruct): { message: string; }; isSemanticallyEquivalent_impl(other: AnalyticConstruct, ec: SemanticContext): boolean; } export interface TypedCompoundAssignmentExpression extends CompoundAssignmentExpression, t_TypedExpression { readonly type: T; readonly lhs: TypedExpression; } export interface CompiledCompoundAssignmentExpression extends TypedCompoundAssignmentExpression, SuccessfullyCompiled { readonly temporaryDeallocator?: CompiledTemporaryDeallocator; readonly lhs: CompiledExpression; readonly rhs: CompiledExpression; } export declare class RuntimeCompoundAssignment extends SimpleRuntimeExpression> { readonly lhs: RuntimeExpression; readonly rhs: RuntimeExpression; constructor(model: CompiledCompoundAssignmentExpression, parent: RuntimeConstruct); protected operate(): void; }