package libsail
Module Libsail.JibSource
Source
type ctyp = | CT_lint| CT_fint of int| CT_constant of Nat_big_num.num| CT_lbits| CT_sbits of int| CT_fbits of int| CT_unit| CT_bool| CT_string| CT_real| CT_float of int| CT_rounding_mode| CT_tup of ctyp list| CT_enum of Ast.id| CT_struct of Ast.id * ctyp list| CT_variant of Ast.id * ctyp list| CT_fvector of int * ctyp| CT_vector of ctyp| CT_list of ctyp| CT_ref of ctyp| CT_poly of Ast.kid| CT_memory_writes| CT_json| CT_json_key
Source
type op = | Bnot| Bor| Band| List_hd| List_tl| List_is_empty| Eq| Neq| Ite| String_eq| Index of int| Ilt| Ilteq| Igt| Igteq| Iadd| Isub| Unsigned of int| Signed of int| Bvnot| Bvor| Bvand| Bvxor| Bvadd| Bvsub| Bvaccess| Concat| Zero_extend of int| Sign_extend of int| Slice of int| Sslice of int| Set_slice| Replicate of int
Source
type cval = | V_id of name * ctyp| V_member of Ast.id * ctyp| V_lit of Value2.vl * ctyp| V_tuple of cval list| V_struct of (Ast.id * cval) list * ctyp| V_ctor_kind of cval * Ast.id * ctyp list| V_ctor_unwrap of cval * Ast.id * ctyp list * ctyp| V_tuple_member of cval * int * int| V_call of op * cval list| V_field of cval * Ast.id * ctyp
Source
type instr_aux = | I_decl of ctyp * name| I_init of ctyp * name * init| I_jump of cval * string| I_goto of string| I_label of string| I_funcall of creturn * funtype * Ast.id * ctyp list * cval list| I_copy of clexp * cval| I_clear of ctyp * name| I_undefined of ctyp| I_exit of string| I_end of name| I_if of cval * instr list * instr list| I_block of instr list| I_try_block of instr list| I_throw of cval| I_comment of string| I_raw of string| I_return of cval| I_reset of ctyp * name| I_reinit of ctyp * name * cval
Source
type cdef_aux = | CDEF_register of name * ctyp * instr list| CDEF_type of ctype_def| CDEF_let of int * (Ast.id * ctyp) list * instr list| CDEF_val of Ast.id * Ast.kid list * ctyp list * ctyp * string option| CDEF_fundef of Ast.id * return_name * name list * instr list| CDEF_startup of Ast.id * instr list| CDEF_finish of Ast.id * instr list| CDEF_pragma of string * string