blob: 7b843965c90c71f38516c7c99c732897bb99721d (
plain) (
blame)
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
|
open Ast
module type INTERPRET = sig
exception Bad_datatype
type value
val int_value : int -> value
val bool_value : bool -> value
val real_value : float -> value
val as_int : value -> int
val as_bool : value -> bool
val as_real : value -> float
val str_repr_of_val : value -> string
type state
val print_state : Format.formatter -> state -> unit
type io = (id * value) list
(*
Construct initial state for a program.
The id is the root node of the program evaluation.
*)
val init_state : prog -> id -> state
(*
Run a step of the program (not necessary to specify the program,
it should be encoded in the state).
State -> Inputs -> Next state, Outputs
*)
val step : state -> io -> (state * io)
end
|