Source

Opifex / src / Language / Common / Store.mli

Full commit
(*
 * Opifex
 *
 * Copyrights(C) 2012 by Pawel Wieczorek <wieczyk at gmail>
 *)

type location 

type 'a t

val create : unit -> 'a t

val alloc_location : 'a t -> location
val store_location : 'a t -> location -> 'a -> unit
val fetch_location : 'a t -> location -> 'a

val store_variable : 'a t -> AST.variable -> 'a -> unit
val fetch_variable : 'a t -> AST.variable -> 'a

(*************************************************************************************************
 * PrettyPrinter
 ************************************************************************************************)

module PrettyPrinter :
  sig
    val show_location : location -> Formatter.painter list
    val show_store : ('a -> Formatter.painter list) -> 'a t -> Formatter.painter list
  end