package ocs

  1. Overview
  2. Docs
type sval =
  1. | Sunbound
  2. | Snull
  3. | Seof
  4. | Strue
  5. | Sfalse
  6. | Sstring of string
  7. | Ssymbol of string
  8. | Sint of int
  9. | Sreal of float
  10. | Scomplex of Complex.t
  11. | Sbigint of Big_int.big_int
  12. | Srational of Ratio.ratio
  13. | Schar of char
  14. | Spair of spair
  15. | Svector of sval array
  16. | Sport of Ocs_port.port
  17. | Sproc of sproc * sval array array
  18. | Sprim of sprim
  19. | Spromise of spromise
  20. | Svalues of sval array
  21. | Sesym of env * sval
  22. | Swrapped of unit -> unit
  23. | Sunspec
and spair = {
  1. mutable car : sval;
  2. mutable cdr : sval;
}
and sprim = {
  1. prim_fun : primf;
  2. prim_name : string;
}
and primf =
  1. | Pf0 of unit -> sval
  2. | Pf1 of sval -> sval
  3. | Pf2 of sval -> sval -> sval
  4. | Pf3 of sval -> sval -> sval -> sval
  5. | Pfn of sval array -> sval
  6. | Pfcn of thread -> (sval -> unit) -> sval array -> unit
and sproc = {
  1. proc_body : code;
  2. proc_nargs : int;
  3. proc_has_rest : bool;
  4. proc_frame_size : int;
  5. mutable proc_name : string;
}
and spromise = {
  1. promise_code : code;
  2. mutable promise_val : sval option;
  3. mutable promise_th : thread option;
}
and code =
  1. | Cval of sval
  2. | Cseq2 of code * code
  3. | Cseq3 of code * code * code
  4. | Cseqn of code array
  5. | Cand2 of code * code
  6. | Cand3 of code * code * code
  7. | Candn of code array
  8. | Cor2 of code * code
  9. | Cor3 of code * code * code
  10. | Corn of code array
  11. | Cif of code * code * code
  12. | Csetg of gvar * code
  13. | Csetl of int * int * code
  14. | Cdefine of gvar * code
  15. | Cgetg of gvar
  16. | Cgetl of int * int
  17. | Capply0 of code
  18. | Capply1 of code * code
  19. | Capply2 of code * code * code
  20. | Capply3 of code * code * code * code
  21. | Capplyn of code * code array
  22. | Clambda of sproc
  23. | Cqqp of code * code
  24. | Cqqv of code array
  25. | Cqqvs of code list
  26. | Cqqspl of code
  27. | Ccond of (code * code) array
  28. | Ccondspec of code
  29. | Ccase of code * (sval array * code) array
  30. | Cdelay of code
and gvar = {
  1. mutable g_sym : sval;
  2. mutable g_val : sval;
}
and thread = {
  1. th_frame : sval array;
  2. th_display : sval array array;
  3. th_depth : int;
  4. th_stdin : sval;
  5. th_stdout : sval;
  6. th_dynext : dynext option;
}
and vbind =
  1. | Vglob of gvar
  2. | Vloc of int * int
  3. | Vsyntax of env -> sval array -> code
  4. | Vmacro of env -> sval array -> sval
  5. | Vkeyword of string
and env = {
  1. env_depth : int;
  2. env_vartable : vbind Ocs_vartable.vartable;
  3. env_frame_size : int Pervasives.ref;
  4. mutable env_tagged : (env * sval * vbind) list;
}
and dynext = {
  1. dynext_parent : dynext option;
  2. dynext_depth : int;
  3. dynext_before : thread * code;
  4. dynext_after : thread * code;
}
OCaml

Innovation. Community. Security.