import { PointerType, Int, PointerToCompleteType as PointerToCompleteObjectType } from "../../compilation/types"; import { ExpressionContext, ConstructDescription } from "../../compilation/contexts"; import { SuccessfullyCompiled, RuntimeConstruct } from "../CPPConstruct"; import { CompiledExpression, TypedExpression, t_TypedExpression } from "./Expression"; import { RuntimeExpression } from "./RuntimeExpression"; import { CompiledTemporaryDeallocator } from "../TemporaryDeallocator"; import { ArithmeticBinaryOperatorExpressionASTNode } from "../../../ast/ast_expressions"; import { SimpleRuntimeExpression } from "./SimpleRuntimeExpression"; import { BinaryOperatorExpression } from "./BinaryOperatorExpression"; export declare class PointerDifferenceExpression extends BinaryOperatorExpression { readonly construct_type = "pointer_difference_expression"; readonly type: Int; readonly valueCategory = "prvalue"; readonly left: TypedExpression; readonly right: TypedExpression; readonly operator: "-"; constructor(context: ExpressionContext, ast: ArithmeticBinaryOperatorExpressionASTNode, left: TypedExpression, right: TypedExpression); describeEvalResult(depth: number): ConstructDescription; } export interface TypedPointerDifferenceExpression extends PointerDifferenceExpression, t_TypedExpression { } export interface CompiledPointerDifferenceExpression extends TypedPointerDifferenceExpression, SuccessfullyCompiled { readonly temporaryDeallocator?: CompiledTemporaryDeallocator; readonly left: CompiledExpression; readonly right: CompiledExpression; } export declare class RuntimePointerDifference extends SimpleRuntimeExpression { left: RuntimeExpression; right: RuntimeExpression; constructor(model: CompiledPointerDifferenceExpression, parent: RuntimeConstruct); operate(): void; }