Skip to content

Commit

Permalink
Revert "gen_caml: some hygiene"
Browse files Browse the repository at this point in the history
This reverts commit 7c3d8bb.
  • Loading branch information
ygrek committed Dec 1, 2023
1 parent 825bb7d commit 89f16a8
Show file tree
Hide file tree
Showing 4 changed files with 11 additions and 20 deletions.
14 changes: 1 addition & 13 deletions src/gen.ml
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
10 changes: 4 additions & 6 deletions src/gen_caml.ml
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -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 =
Expand Down Expand Up @@ -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 -> ()
| _ ->
Expand Down
5 changes: 5 additions & 0 deletions src/gen_cxx.ml
Original file line number Diff line number Diff line change
Expand Up @@ -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 ^ "\""

Expand Down
2 changes: 1 addition & 1 deletion src/gen_xml.ml
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down

0 comments on commit 89f16a8

Please sign in to comment.