Module InferModules.JContext
- type jump_kind- =- |- Next- |- Jump of int- |- Exit
- data structure for representing whether an instruction is a goto, a return or a standard instruction. 
- module NodeTbl : InferStdlib.IStd.Caml.Hashtbl.S with type NodeTbl.key = InferIR.Procdesc.Node.t
- Hastable for storing nodes that correspond to if-instructions. These are used when adding the edges in the contrl flow graph. 
- type icfg- =- {- tenv : InferIR.Tenv.t;- cfg : InferIR.Cfg.t;- }
- data structure for saving the three structures tht contain the intermediate representation of a file: the type environment, the control graph and the control flow graph 
- type t- = private- {- icfg : icfg;- procdesc : InferIR.Procdesc.t;- impl : Sawja_pack.JBir.t;- mutable var_map : (InferIR.Pvar.t * InferIR.Typ.t * InferIR.Typ.t) Sawja_pack.JBir.VarMap.t;- if_jumps : int NodeTbl.t;- goto_jumps : (int, jump_kind) InferStdlib.IStd.Caml.Hashtbl.t;- cn : Javalib_pack.JBasics.class_name;- source_file : InferBase.SourceFile.t;- program : JClasspath.program;- }
- data structure for storing the context elements. 
- val create_context : icfg -> InferIR.Procdesc.t -> Sawja_pack.JBir.t -> Javalib_pack.JBasics.class_name -> InferBase.SourceFile.t -> JClasspath.program -> t
- cretes a context for a given method. 
- val get_tenv : t -> InferIR.Tenv.t
- returns the type environment that corresponds to the current file. 
- val add_if_jump : t -> InferIR.Procdesc.Node.t -> int -> unit
- adds to the context the line that an if-node will jump to 
- val get_if_jump : t -> InferIR.Procdesc.Node.t -> int option
- returns whether the given node corresponds to an if-instruction 
- val add_goto_jump : t -> int -> jump_kind -> unit
- adds to the context the line that the node in the given line will jump to. 
- val get_goto_jump : t -> int -> jump_kind
- if the given line corresponds to a goto instruction, then returns the line where it jumps to, otherwise returns the next line. 
- val is_goto_jump : t -> int -> bool
- returns whether the given line corresponds to a goto instruction. 
- val set_pvar : t -> Sawja_pack.JBir.var -> InferIR.Typ.t -> InferIR.Pvar.t
- set_pvar context var typeadds a variable with a type to the context
- val get_var_type : t -> Sawja_pack.JBir.var -> InferIR.Typ.t option
- get_var_type context varreturns the type of the variable, if the variable is in the context
- val reset_pvar_type : t -> unit
- resets the dynamic type of the variables in the context. 
- val reset_exn_node_table : unit -> unit
- resets the hashtable mapping methods to their exception nodes 
- val add_exn_node : InferIR.Typ.Procname.t -> InferIR.Procdesc.Node.t -> unit
- adds the exception node for a given method