import { PointerType, Bool } from "../../compilation/types"; import { ExpressionContext, ConstructDescription, SemanticContext } from "../../compilation/contexts"; import { SuccessfullyCompiled, RuntimeConstruct } from "../CPPConstruct"; import { CompiledExpression, TypedExpression, t_TypedExpression } from "./Expression"; import { RuntimeExpression } from "./RuntimeExpression"; import { AnalyticConstruct } from "../../../analysis/predicates"; import { CompiledTemporaryDeallocator } from "../TemporaryDeallocator"; import { RelationalBinaryOperatorExpressionASTNode, t_RelationalBinaryOperators } from "../../../ast/ast_expressions"; import { SimpleRuntimeExpression } from "./SimpleRuntimeExpression"; import { BinaryOperatorExpression } from "./BinaryOperatorExpression"; export declare class PointerComparisonExpression extends BinaryOperatorExpression { readonly construct_type = "pointer_comparison_expression"; readonly type: Bool; readonly valueCategory = "prvalue"; readonly left: TypedExpression; readonly right: TypedExpression; readonly operator: t_RelationalBinaryOperators; constructor(context: ExpressionContext, ast: RelationalBinaryOperatorExpressionASTNode | undefined, left: TypedExpression, right: TypedExpression, operator: t_RelationalBinaryOperators); describeEvalResult(depth: number): ConstructDescription; isSemanticallyEquivalent_impl(other: AnalyticConstruct, ec: SemanticContext): boolean; } export interface TypedPointerComparisonExpression extends PointerComparisonExpression, t_TypedExpression { } export interface CompiledPointerComparisonExpression extends TypedPointerComparisonExpression, SuccessfullyCompiled { readonly temporaryDeallocator?: CompiledTemporaryDeallocator; readonly left: CompiledExpression; readonly right: CompiledExpression; } export declare class RuntimePointerComparisonExpression extends SimpleRuntimeExpression> { left: RuntimeExpression; right: RuntimeExpression; constructor(model: CompiledPointerComparisonExpression, parent: RuntimeConstruct); operate(): void; }