-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathstore.mli
executable file
·50 lines (45 loc) · 2.57 KB
/
store.mli
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
(***********************************************************************)
(* *)
(* Event Spaces *)
(* *)
(* Néstor CATAÑO, Lemme project *)
(* INRIA Sophia Antipolis *)
(* 2004 route des Lucioles-B.P. 93 *)
(* 06902 Sophia Antipolis Cedex (France) *)
(* *)
(***********************************************************************)
(***********************************************************************)
(* This module implements a Java store. **)
(* The objects are permanent entities that survive the blocks in **)
(* which they are created; therefore the collection of their instance **)
(* variables (containing the values of their attributes) is kept in a **)
(* separated structure: the store. **)
(***********************************************************************)
(***********************************************************************)
(** A store 's' is composed by a list of tuplas <lval,rval>, where **)
(** lval represents addresses of instance variables and rval its **)
(** values. **)
(***********************************************************************)
open Javasyntax
open Display
type t
exception Class_Not_Found of string * string
exception Object_Not_Found of string * string
exception Not_Applicable of string * string
val create: t
val value: literal -> rval
val init_val: jtype -> rval
val getClass: t -> obj -> classtype option
val getEnvironment: t -> obj -> env option
val getRval: t -> lval -> rval option
val update: t -> lval -> rval -> t
val methodbodyC: classtype -> methid -> (block * identifier list) option
val methodbody: classtype -> methid -> (block * identifier list) option
val constructorbodyC: classtype -> constrid -> (block * identifier list) option
val constructorbody: classtype -> constrid -> (block * identifier list) option
val frame: t -> obj -> mcallid -> rval list -> (mcallid * block) option
val new_inst: t -> classtype -> rval list -> (nonnullobj * t * block)
val isSubClass: classtype -> classtype -> bool
val belongs: t -> obj -> classtype -> bool
val display: t -> string -> displevel -> string
;;