package GT
Generic programming with extensible transformations
Install
Dune Dependency
Authors
Maintainers
Sources
0.5.0.tar.gz
sha256=3f26c69a215066b42c6edde2ea4cd4516bdc9a01482b64355d3adf87ed85e179
sha512=7a5236618124f370aa373483255bd3efeb5c251005efa7d43aadb6be968df310b5f312b8066245544cfdf9972a7944f0ff2448bd09cb8a8e0bb5f8b1f9b5340b
doc/src/GT.common/naming.ml.html
Source file naming.ml
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 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99
open Base open Printf let meth_of_constr = sprintf "c_%s" let self_arg_name = "fself" let self_typ_param_name = "self" let gcata_name_for_typ name = Printf.sprintf "gcata_%s" name let class_name_for_typ name = Printf.sprintf "%s_t" name let trait_class_name_for_typ ~trait name = class_name_for_typ (if String.equal trait "" then name else Printf.sprintf "%s_%s" trait name) ;; let fix_name ~plugin_name:_ = sprintf "%s_fix" (* 1st structure is planned to contain transformation function *) let typ1_for_class_arg ~plugin = sprintf "%s_t_%s_1" plugin let trf_field ~plugin = sprintf "%s_%s_trf" plugin (* Should contain object for transforming mutally declared type *) (* let typ2_for_class_arg ~plugin_name = sprintf "%s_t_%s_2" plugin_name *) let mut_ofield ~plugin = sprintf "%s_o%s_func" plugin (* Largest. Containt not fully initialized stib class *) let typ3_for_class_arg ~plugin_name = sprintf "%s_t_%s_3" plugin_name let mut_oclass_field ~plugin = sprintf "%s_%s_func" plugin let extra_param_name = "extra" let self_arg_name = "fself" let all_trfs_together = "all_trfs_together" let make_extra_param = sprintf "%s_%s" extra_param_name open Ppxlib let meth_name_for_record tdecl = sprintf "do_%s" tdecl.ptype_name.txt let fix_result_record trait tdecls = assert (List.length tdecls > 0); let name = (List.hd_exn tdecls).ptype_name.txt in String.concat ~sep:"_" [ trait; "fix"; name ] ;; let trf_function trait s = Printf.sprintf "%s_%s" trait s let make_stub_class_name ~plugin tname = sprintf "%s_%s_t_stub" plugin tname let stub_class_name ~plugin tdecl = make_stub_class_name ~plugin tdecl.ptype_name.txt let init_trf_function trait s = trf_function trait s ^ "_0" let make_fix_name tdecls = (* Let's use only first type for fix function definition *) assert (List.length tdecls > 0); let name = (List.hd_exn tdecls).ptype_name.txt in String.concat ~sep:"_" [ "fix"; name ] ;; let name_fix_generated_object ~plugin tdecl = sprintf "%s_o_%s" plugin tdecl.ptype_name.txt ;; let prereq_name ~plugin tail = sprintf "%s_%s_prereq" plugin tail let mut_arg_composite = (* "mut_trfs_here" *) "call" let mut_arg_name ~plugin = sprintf "for_%s_%s" plugin (* let mut_class_stubname ~plugin tdecl = * sprintf "%s_%s_stub" plugin_name tdecl.ptype_name.txt *) let fix_result tdecl = sprintf "fix_result_%s" tdecl.ptype_name.txt let cname_index typname = String.capitalize typname let mutuals_pack = "_mutuals_pack" let hack_index_name tdecls s = assert (List.length tdecls > 0); sprintf "%s_%s" s (List.hd_exn tdecls).ptype_name.txt ;; let fix_func_name ?for_ trait = match for_ with | None -> sprintf "%s_fix" trait | Some s -> sprintf "%s_%s_fix" trait s ;; let fix_func_name_tdecls trait tdecls = assert (List.length tdecls > 0); fix_func_name ~for_:(List.hd_exn tdecls).ptype_name.txt trait ;; let for_ trait s = sprintf "%s_%s" trait s let meth_name_for_constructor attrs default_name = let good_attr = let open Deriving.Args in attribute ~name:(string "name") ~payload:(single_expr_payload (estring __)) in let cond attr = (* Stdlib.Sys.command "notify-send 'hecking an attribute of constructor' " |> ignore; *) Deriving.Args.parse good_attr Ppxlib.Location.none attr (fun s -> (* let _ = Stdlib.Sys.command (Printf.sprintf "notify-send 'found %s'" s) in *) Some s) in List.find_map attrs ~f:cond |> Option.value ~default:default_name |> meth_of_constr ;;
sectionYPositions = computeSectionYPositions($el), 10)"
x-init="setTimeout(() => sectionYPositions = computeSectionYPositions($el), 10)"
>