blob: 02094f0a6e3e327f3697031a54c4a5f11e526377 (
plain)
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
|
(* TEST_BELOW
(* Blank lines added here to preserve locations. *)
*)
type expr =
[ `Abs of string * expr
| `App of expr * expr
]
class type exp =
object
method eval : (string, exp) Hashtbl.t -> expr
end;;
class app e1 e2 : exp =
object
val l = e1
val r = e2
method eval env =
match l with
| `Abs(var,body) ->
Hashtbl.add env var r;
body
| _ -> `App(l,r);
end
(* TEST
flags = " -w -a ";
ocamlc_byte_exit_status = "2";
setup-ocamlc.byte-build-env;
ocamlc.byte;
check-ocamlc.byte-output;
*)
|