blob: 006cc8da7c2f00bb4e9b6d29f8dd67719e82c27c (
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
38
39
40
|
open Identifiers
open Types
module VarId = IdGen ()
module FunDefId = IdGen ()
type var = {
index : VarId.id; (** Unique variable identifier *)
name : string option;
ty : ety;
(** The variable type - erased type, because variables are not used
** in function signatures *)
}
(** A variable *)
(** A scalar value
Note that we use unbounded integers everywhere.
We then harcode the boundaries for the different types.
*)
type scalar_value =
| Isize of Big_int.big_int
| I8 of Big_int.big_int
| I16 of Big_int.big_int
| I32 of Big_int.big_int
| I64 of Big_int.big_int
| I128 of Big_int.big_int
| Usize of Big_int.big_int
| U8 of Big_int.big_int
| U16 of Big_int.big_int
| U32 of Big_int.big_int
| U64 of Big_int.big_int
| U128 of Big_int.big_int
type constant_value =
| Scalar of scalar_value
| Bool of bool
| Char of char
| String of string
|