Module GenC (.ml)

module GenC: sig .. end

val c_indent : string
val dispatches : (string * string option * string list * string * (string * string) list) list
Pervasives.ref
val dispatchon : (string * string list * string) list Pervasives.ref
val dispatcharr : (string * string * Cast.cexpr list) list Pervasives.ref
val matches : string -> string -> bool
Parameters:
type1 : string
type2 : string
val lit_to_str : Ast.lit -> string
Parameters:
lit : Ast.lit
val stringify_unop : Ast.op -> string -> string -> string
Parameters:
op : Ast.op
rop : string
rtype : string
val stringify_arith : Ast.arith -> string -> string
Parameters:
op : Ast.arith
suffix : string
val stringify_numtest : Ast.numtest -> string -> string
Parameters:
op : Ast.numtest
suffix : string
val stringify_combtest : Ast.combtest -> string -> string
Parameters:
op : Ast.combtest
suffix : string
val stringify_binop : Ast.op -> string -> string -> string * string -> string
Parameters:
op : Ast.op
lop : string
rop : string
types : string * string
val stringify_list : string list -> string
Parameters:
stmtlist : string list
val expr_to_cstr : Cast.cexpr -> string
Parameters:
(exptype,expr_detail) : Cast.cexpr
val exprdetail_to_cstr : Cast.cexpr_detail -> string
Parameters:
castexpr_detail : Cast.cexpr_detail
val vdecl_to_cstr : string * string -> string
Parameters:
(vtype,vname) : string * string
val collect_dispatches_exprs : Cast.cexpr list -> unit
Parameters:
exprs : Cast.cexpr list
val collect_dispatches_stmts : Cast.cstmt list -> unit
Parameters:
stmts : Cast.cstmt list
val collect_dispatches_expr : Cast.cexpr -> unit
Parameters:
((),detail) : Cast.cexpr
val collect_dispatches_stmt : Cast.cstmt -> unit
Parameters:
?? : Cast.cstmt
val collect_dispatches_clauses : (Cast.cexpr option * Cast.cstmt list) list -> unit
Parameters:
pieces : (Cast.cexpr option * Cast.cstmt list) list
val collect_dispatch : Cast.cexpr list -> string option -> Sast.refine_switch -> unit
Parameters:
args : Cast.cexpr list
ret : string option
?? : Sast.refine_switch
val collect_dispatch_on : Sast.refine_switch -> unit
Parameters:
?? : Sast.refine_switch
val collect_dispatch_func : Cast.cfunc -> unit
Parameters:
func : Cast.cfunc
val collect_dispatch_arr : string -> string -> Cast.cexpr list -> unit
Parameters:
arrtype : string
fname : string
args : Cast.cexpr list

Takes an element from the dispatchon list and generates the test function for refinable.
val generate_testsw : string * string list * string -> string
Parameters:
(klass,klasses,fuid) : string * string list * string

Takes a dispatch element of the global dispatches list And generates the dispatch function - dispatcher which dispatches calls to refinable methods based on the RTTI of the this.
val generate_refinesw : string * string option * string list * string * (string * string) list ->
string
Parameters:
(klass,ret,args,dispatchuid,cases) : string * string option * string list * string * (string * string) list
val generate_arrayalloc : string * string * 'a list -> string
Parameters:
(arrtype,fname,args) : string * string * 'a list
val cast_to_c_stmt : int -> Cast.cstmt -> string
Take a list of cast_stmts and return a body of c statements
Returns A body of c statements
Parameters:
indent : int
cast : Cast.cstmt
val cast_to_c_stmtlist : int -> Cast.cstmt list -> string
Parameters:
indent : int
stmts : Cast.cstmt list
val cast_to_c_if_pred : Cast.cexpr option -> string
Parameters:
?? : Cast.cexpr option
val cast_to_c_if_chain : int -> (Cast.cexpr option * Cast.cstmt list) list -> string
Parameters:
indent : int
pieces : (Cast.cexpr option * Cast.cstmt list) list
val cast_to_c_class_struct : string -> (string * (string * string) list) list -> string
Parameters:
klass_name : string
ancestors : (string * (string * string) list) list
val cast_to_c_func : Cast.cfunc -> string
Parameters:
cfunc : Cast.cfunc
val cast_to_c_proto : Cast.cfunc -> string
Parameters:
cfunc : Cast.cfunc
val cast_to_c_proto_dispatch_arr : string * string * 'a list -> string
Parameters:
(arrtype,fname,args) : string * string * 'a list
val cast_to_c_proto_dispatch_on : string * 'a * string -> string
Parameters:
(klass,(),uid) : string * 'a * string
val cast_to_c_proto_dispatch : string * string option * string list * string * 'a -> string
Parameters:
(klass,ret,args,uid,()) : string * string option * string list * string * 'a
val cast_to_c_main : (string * string) list -> string
Parameters:
mains : (string * string) list
val commalines : string list -> int -> string list
Parameters:
input : string list
n : int
val print_class_strings : string list -> string list
Parameters:
?? : string list
val print_class_enums : string list -> string list
Parameters:
?? : string list
val setup_meta : string -> string
Parameters:
klass : string
val meta_init : (string * string list) list -> string
Parameters:
bindings : (string * string list) list
val cast_to_c : Cast.program -> Pervasives.out_channel -> unit
Parameters:
(cdefs,funcs,mains,ancestry) : Cast.program
channel : Pervasives.out_channel