package strymonas-pure

  1. Overview
  2. Docs
type float32 = private float
val float32_of_float : float -> float32
val forloop : int -> upe:int -> step:int -> (int -> unit) -> unit
type numtyp =
  1. | I32
  2. | I64
  3. | F32
  4. | F64
  5. | C32
  6. | C64
type typ = ..
type typ +=
  1. | TVoid
  2. | TNum of numtyp
  3. | TBool
  4. | TChar
  5. | TArray1 of typ
  6. | TArray2 of typ
  7. | TLenArray1 of int * typ
  8. | TRef of typ
  9. | TString
type varname = private string
module OP : sig ... end
type constant_t =
  1. | Const_num of numtyp * string
  2. | Const_bool of bool
  3. | Const_char of char
  4. | Const_string of string
type attribute = ..
type attribute +=
  1. | A_static
  2. | A_align of int
module Sq : sig ... end
type mutble =
  1. | Mut
  2. | Cnst
type exp =
  1. | Const of constant_t
  2. | Array of exp list
  3. | LocalVar of varname
  4. | MutVar of varname
  5. | GlobalVar of varname
  6. | FunCall of OP.t * exp list
  7. | Cond of exp * exps * exps
  8. | And of exp * exps
  9. | Or of exp * exps
and exps = exp list
and stmt =
  1. | Exp of exp
  2. | If of exp * block * block option
  3. | While of exps * block
  4. | For of {
    1. id : varname;
    2. ty : typ;
    3. guard : exp option;
    4. lwb : exp;
    5. upe : exp;
    6. step : exp;
    7. body : block;
    }
  5. | Seq of block * block
and block =
  1. | Unit
  2. | Block of binding Sq.t * stmt
and binding = bv_desc option * exp
and bv_desc = {
  1. id : varname;
  2. ty : typ;
  3. mut : mutble;
  4. attrs : attribute list;
}
type args_t = (varname * typ) list
type proc_t = args_t * typ * block
val genvarname : string -> varname
val local_name : string -> varname
val of_exp : ?bindings:binding Sq.t -> exp -> block
val dummy_binding : binding -> bool
val seq : block -> block -> block
OCaml

Innovation. Community. Security.