/// /// import { AnalyticConstruct } from "../../../analysis/predicates"; import { IdentifierExpressionASTNode } from "../../../ast/ast_expressions"; import { IdentifierOutlet } from "../../../view/constructs/ExpressionOutlets"; import { ConstructOutlet } from "../../../view/constructs/ConstructOutlet"; import { ConstructDescription, ExpressionContext, SemanticContext } from "../../compilation/contexts"; import { FunctionEntity, GlobalVariableEntity, LocalVariableEntity, MemberVariableEntity } from "../../compilation/entities"; import { LexicalIdentifier } from "../../compilation/lexical"; import { CompleteObjectType, FunctionType, PotentiallyCompleteObjectType } from "../../compilation/types"; import { RuntimeConstruct, SuccessfullyCompiled } from "../CPPConstruct"; import { CompiledTemporaryDeallocator } from "../TemporaryDeallocator"; import { Expression, TypedExpression, t_TypedExpression } from "./Expression"; import { RuntimeExpression } from "./RuntimeExpression"; export declare class IdentifierExpression extends Expression { readonly construct_type = "identifier_expression"; readonly type?: PotentiallyCompleteObjectType | FunctionType; readonly valueCategory = "lvalue"; readonly name: LexicalIdentifier; readonly entity?: LocalVariableEntity | GlobalVariableEntity | MemberVariableEntity | FunctionEntity; constructor(context: ExpressionContext, ast: IdentifierExpressionASTNode | undefined, name: LexicalIdentifier); static createFromAST(ast: IdentifierExpressionASTNode, context: ExpressionContext): IdentifierExpression; getEntity(this: TypedExpression): LocalVariableEntity | GlobalVariableEntity | MemberVariableEntity; getEntity(this: TypedExpression): FunctionEntity; createDefaultOutlet(this: CompiledObjectIdentifierExpression | CompiledFunctionIdentifierExpression, element: JQuery, parent?: ConstructOutlet): IdentifierOutlet; describeEvalResult(depth: number): ConstructDescription; entitiesUsed(): (FunctionEntity> | LocalVariableEntity | import("../../compilation/entities").GlobalObjectEntity> | MemberVariableEntity)[]; isSemanticallyEquivalent_impl(other: AnalyticConstruct, ec: SemanticContext): boolean; } export interface TypedObjectIdentifierExpression extends IdentifierExpression, t_TypedExpression { readonly type: T; readonly entity: LocalVariableEntity | GlobalVariableEntity | MemberVariableEntity; } export interface CompiledObjectIdentifierExpression extends TypedObjectIdentifierExpression, SuccessfullyCompiled { readonly temporaryDeallocator?: CompiledTemporaryDeallocator; } export interface TypedFunctionIdentifierExpression extends IdentifierExpression, t_TypedExpression { readonly type: T; readonly entity: FunctionEntity; } export interface CompiledFunctionIdentifierExpression extends TypedFunctionIdentifierExpression, SuccessfullyCompiled { readonly temporaryDeallocator?: CompiledTemporaryDeallocator; } export declare class RuntimeObjectIdentifierExpression extends RuntimeExpression> { constructor(model: CompiledObjectIdentifierExpression, parent: RuntimeConstruct); protected upNextImpl(): void; protected stepForwardImpl(): void; } export declare class RuntimeFunctionIdentifierExpression extends RuntimeExpression { constructor(model: CompiledFunctionIdentifierExpression, parent: RuntimeConstruct); protected upNextImpl(): void; protected stepForwardImpl(): void; }