From 89f16a8238b85dfc499cbb7aeb514a326ca10a42 Mon Sep 17 00:00:00 2001 From: ygrek Date: Fri, 1 Dec 2023 15:54:48 -0500 Subject: [PATCH] Revert "gen_caml: some hygiene" This reverts commit 7c3d8bb60dd4be8402a0ee03c961ac49a16b10c4. --- src/gen.ml | 14 +------------- src/gen_caml.ml | 10 ++++------ src/gen_cxx.ml | 5 +++++ src/gen_xml.ml | 2 +- 4 files changed, 11 insertions(+), 20 deletions(-) diff --git a/src/gen.ml b/src/gen.ml index 7d6c23c..899afbd 100644 --- a/src/gen.ml +++ b/src/gen.ml @@ -27,29 +27,17 @@ let output_l = List.iter indent_endline let print fmt = kprintf print_endline fmt let indented k = inc_indent (); k (); dec_indent () -let rec freshname name scope = - match List.find_all ((=) name) scope with - | [] -> name - | _ -> freshname (name ^ "_") scope - let name_of attr index = match attr.Sql.name with | "" -> sprintf "_%u" index | s -> s -(* host language level param name - hygiene *) let make_param_name index (p:Sql.param_id) = - match p.label with - | None -> sprintf "_%u" index - | Some s -> "a_" ^ s (* a_ prefix for hygiene *) - -(* human/sql param name - pretty *) -let show_param_id_name (p:Sql.param_id) index = match p.label with | None -> sprintf "_%u" index | Some s -> s -let show_param_name p i = show_param_id_name p.Sql.id i +let show_param_name (p:Sql.param) index = make_param_name index p.id let make_name props default = Option.default default (Props.get props "name") let default_name str index = sprintf "%s_%u" str index diff --git a/src/gen_caml.ml b/src/gen_caml.ml index c3d021c..68cb3af 100644 --- a/src/gen_caml.ml +++ b/src/gen_caml.ml @@ -205,7 +205,7 @@ let match_variant_pattern i name args = let set_param index param = let nullable = is_param_nullable param in - let pname = make_param_name index param.Sql.id in + let pname = show_param_name param index in let ptype = show_param_type param in if nullable then output "begin match %s with None -> T.set_param_null p | Some v -> T.set_param_%s p v end;" pname ptype @@ -319,6 +319,8 @@ let output_params_binder index vars = | [] -> "T.no_params" | vars -> output_params_binder index vars +let prepend prefix = function s -> prefix ^ s + let in_var_module _label typ = Sql.Type.to_string typ let gen_in_substitution var = @@ -390,11 +392,7 @@ let make_sql l = let generate_stmt style index stmt = let name = choose_name stmt.props stmt.kind index |> String.uncapitalize_ascii in let subst = Props.get_all stmt.props "subst" in - let inputs = (subst @ names_of_vars stmt.vars) - (* drop a_ prefix for "nice" names *) - |> List.map (fun v -> if String.starts_with v "a_" then sprintf "~%s:%s" (String.slice ~first:2 v) v else sprintf "~%s:%s" v v) - |> inline_values - in + let inputs = (subst @ names_of_vars stmt.vars) |> List.map (prepend "~") |> inline_values in match style, is_callback stmt with | (`List | `Fold), false -> () | _ -> diff --git a/src/gen_cxx.ml b/src/gen_cxx.ml index 45dfa05..92f1fb6 100644 --- a/src/gen_cxx.ml +++ b/src/gen_cxx.ml @@ -18,6 +18,11 @@ let inject = List.map (fun v -> v.vname, v.vtyp) end +let rec freshname name scope = + match List.find_all ((=) name) scope with + | [] -> name + | _ -> freshname (name ^ "_") scope + let quote = String.replace_chars (function '\n' -> "\\n\\\n" | '\r' -> "" | '"' -> "\\\"" | c -> String.make 1 c) let quote s = "\"" ^ quote s ^ "\"" diff --git a/src/gen_xml.ml b/src/gen_xml.ml index 3627c00..b99f6fa 100644 --- a/src/gen_xml.ml +++ b/src/gen_xml.ml @@ -81,7 +81,7 @@ let get_sql_string stmt = let rec map i = function | Static s -> s | SubstIn param -> "@@" ^ show_param_name param i (* TODO join text and prepared params earlier for single indexing *) - | SubstTuple (id, _) -> "@@@" ^ show_param_id_name id i + | SubstTuple (id, _) -> "@@@" ^ make_param_name i id | DynamicIn (_p, _, sqls) -> String.concat "" @@ List.map (map 0 ) sqls | Dynamic _ -> fail "dynamic choice not supported for xml output" in