/// /// import { CompleteObjectType, PointerType, Int } from "../../compilation/types"; import { ExpressionContext, ConstructDescription } from "../../compilation/contexts"; import { SuccessfullyCompiled, RuntimeConstruct } from "../CPPConstruct"; import { Expression, CompiledExpression, TypedExpression, t_TypedExpression } from "./Expression"; import { RuntimeExpression } from "./RuntimeExpression"; import { SubscriptExpressionOutlet } from "../../../view/constructs/ExpressionOutlets"; import { ConstructOutlet } from "../../../view/constructs/ConstructOutlet"; import { CompiledTemporaryDeallocator } from "../TemporaryDeallocator"; import { SubscriptExpressionASTNode } from "../../../ast/ast_expressions"; import { SimpleRuntimeExpression } from "./SimpleRuntimeExpression"; import { OperatorOverloadExpression } from "./OperatorOverloadExpression"; export declare class SubscriptExpression extends Expression { readonly construct_type = "subscript_expression"; readonly type?: CompleteObjectType; readonly valueCategory = "lvalue"; readonly operand: Expression; readonly offset: Expression; constructor(context: ExpressionContext, ast: SubscriptExpressionASTNode, operand: Expression, offset: Expression); static createFromAST(ast: SubscriptExpressionASTNode, context: ExpressionContext): SubscriptExpression | OperatorOverloadExpression; createDefaultOutlet(this: CompiledSubscriptExpression, element: JQuery, parent?: ConstructOutlet): SubscriptExpressionOutlet; describeEvalResult(depth: number): ConstructDescription; } export interface TypedSubscriptExpression extends SubscriptExpression, t_TypedExpression { readonly type: T; readonly operand: TypedExpression, "prvalue">; } export interface CompiledSubscriptExpression extends TypedSubscriptExpression, SuccessfullyCompiled { readonly temporaryDeallocator?: CompiledTemporaryDeallocator; readonly operand: CompiledExpression, "prvalue">; readonly offset: CompiledExpression; } export declare class RuntimeSubscriptExpression extends SimpleRuntimeExpression> { operand: RuntimeExpression, "prvalue">; offset: RuntimeExpression; constructor(model: CompiledSubscriptExpression, parent: RuntimeConstruct); protected operate(): void; }