import { Bool } from "../../compilation/types"; import { ExpressionContext, ConstructDescription, SemanticContext } from "../../compilation/contexts"; import { SuccessfullyCompiled, RuntimeConstruct } from "../CPPConstruct"; import { Expression, CompiledExpression, t_TypedExpression } from "./Expression"; import { RuntimeExpression } from "./RuntimeExpression"; import { AnalyticConstruct } from "../../../analysis/predicates"; import { CompiledTemporaryDeallocator } from "../TemporaryDeallocator"; import { LogicalBinaryOperatorExpressionASTNode, t_LogicalBinaryOperators } from "../../../ast/ast_expressions"; import { BinaryOperatorExpression } from "./BinaryOperatorExpression"; import { OperatorOverloadExpression } from "./OperatorOverloadExpression"; export declare class LogicalBinaryOperatorExpression extends BinaryOperatorExpression { readonly construct_type = "logical_binary_operator_expression"; readonly type: Bool; readonly left: Expression; readonly right: Expression; readonly operator: t_LogicalBinaryOperators; protected constructor(context: ExpressionContext, ast: LogicalBinaryOperatorExpressionASTNode | undefined, left: Expression, right: Expression, operator: t_LogicalBinaryOperators); private compileLogicalSubexpression; static createFromAST(ast: LogicalBinaryOperatorExpressionASTNode, context: ExpressionContext): LogicalBinaryOperatorExpression | OperatorOverloadExpression; describeEvalResult(depth: number): ConstructDescription; isSemanticallyEquivalent_impl(other: AnalyticConstruct, ec: SemanticContext): boolean; } export interface TypedLogicalBinaryOperatorExpression extends LogicalBinaryOperatorExpression, t_TypedExpression { } export interface CompiledLogicalBinaryOperatorExpression extends TypedLogicalBinaryOperatorExpression, SuccessfullyCompiled { readonly temporaryDeallocator?: CompiledTemporaryDeallocator; readonly left: CompiledExpression; readonly right: CompiledExpression; } export declare class RuntimeLogicalBinaryOperatorExpression extends RuntimeExpression { left: RuntimeExpression; right: RuntimeExpression; private index; private hasShortCircuited?; constructor(model: CompiledLogicalBinaryOperatorExpression, parent: RuntimeConstruct); protected upNextImpl(): void; protected stepForwardImpl(): void; private operate; }