AbstractContext
struct AbstractContext<Domain> : Equatable, Sendable where Domain : AbstractDomain
extension AbstractContext: CustomStringConvertible
The evaluation context of an abstract interpreter.
-
The values of the locals.
Invariant
The keys of the table are.registeror.parameter.Declaration
Swift
var locals: [Operand : AbstractValue<Domain>] -
The state of the memory.
Declaration
Swift
var memory: [AbstractLocation : AbstractObject<Domain>] -
Creates an empty context.
Declaration
Swift
init() -
Forms a context by merging the contexts in
batch.Declaration
Swift
init<C>(merging batch: C) where C : Collection, C.Element == AbstractContext<Domain> -
Merges
otherintoself.Declaration
Swift
mutating func merge(_ other: `Self`) -
Calls
actionwith a projection of the objects at the locations assigned tolocals[k].Requires
If defined,locals[k]is.locations.Declaration
Swift
mutating func forEachObject(at k: Operand, _ action: (inout AbstractObject<Domain>) -> Void) -
Returns the result calling
actionwith a projection of the object atlocation.Declaration
Swift
mutating func withObject<T>( at location: AbstractLocation, _ action: (inout AbstractObject<Domain>) -> T ) -> T -
Adds a new memory cell in
contextand binds its address toi, which is inm.Declaration
Swift
mutating func declareStorage( assignedTo i: InstructionID, in m: Module, initially initialState: Domain ) -
Declaration
Swift
var description: String { get }
View on GitHub