this repo has no description
at main 102 lines 1.9 kB view raw
1open Types 2module O = Codefmt 3open O.Infix 4 5module ML = Generator.Make (struct 6 module Obj = struct 7 let close_tag_closed = " >" 8 9 let close_tag_extendable = ".. >" 10 11 let field_separator = "; " 12 13 let open_tag_closed = "< " 14 15 let open_tag_extendable = "< " 16 end 17 18 module Type = struct 19 let annotation_separator = " : " 20 21 let handle_params name args = O.span (args ++ O.sp ++ name) 22 23 let handle_constructor_params = handle_params 24 25 let handle_substitution_params name args = O.span (args ++ O.txt " " ++ name) 26 27 let handle_format_params p = p 28 29 let type_def_semicolon = false 30 31 let private_keyword = "private" 32 33 let parenthesize_constructor = false 34 35 module Variant = struct 36 let parenthesize_params = false 37 end 38 39 module Tuple = struct 40 let element_separator = O.sp ++ O.txt "* " 41 42 let always_parenthesize = false 43 end 44 45 module Record = struct 46 let field_separator = ";" 47 end 48 49 let var_prefix = "'" 50 51 let any = "_" 52 53 let arrow = O.span ~attr:"arrow" (O.entity "#45" ++ O.entity "gt") 54 55 module Exception = struct 56 let semicolon = false 57 end 58 59 module GADT = struct 60 let arrow = arrow 61 end 62 63 module External = struct 64 let semicolon = false 65 66 let handle_primitives prims = 67 List.map (fun p -> inline @@ Text ("\"" ^ p ^ "\" ")) prims 68 end 69 end 70 71 module Mod = struct 72 let open_tag = O.keyword "sig" 73 74 let close_tag = O.keyword "end" 75 76 let close_tag_semicolon = false 77 78 let include_semicolon = false 79 80 let functor_keyword = true 81 82 let functor_contraction = true 83 end 84 85 module Class = struct 86 let open_tag = O.keyword "object" 87 88 let close_tag = O.keyword "end" 89 end 90 91 module Value = struct 92 let variable_keyword = "val" 93 94 let semicolon = false 95 end 96 97 module Comment = struct 98 let markers = ("(*", "*)") 99 end 100end) 101 102include ML