Module Mir.Variable

type id = variable_id
type t = variable = {
name : string Pos.marked;(*

The position is the variable declaration

*)
alias : string option;(*

Input variable have an alias

*)
id : variable_id;
descr : string Pos.marked;(*

Description taken from the variable declaration

*)
attributes : Mast.variable_attribute list;
origin : variable option;(*

If the variable is an SSA duplication, refers to the original (declared) variable

*)
cats : cat_variable option;
is_table : int option;
is_temp : bool;
is_it : bool;
}
val fresh_id : unit -> id
val new_var : string Pos.marked -> string option -> string Pos.marked -> attributes:Mast.variable_attribute list -> origin:variable option -> cats:cat_variable option -> is_table:int option -> is_temp:bool -> is_it:bool -> variable
val compare : t -> t -> int