String.sub s 0 i ^ "_" ^ decolon (String.sub s (succ i) (l - succ i))
with Not_found -> s
-let conv = function
+let conv_bp = function
+ | [] -> "h_occurrence"
+ | [t] -> ""
+ | [_; "h:occurrence"] -> "source"
+ | [_; t] -> decolon t
+ | _ -> not_supported "conv_bp"
+
+let conv_gen = function
| [] -> "source"
| ["objectName"] -> "value"
| [t] -> ""
let exec_single h mc ct cfl el t =
let table = match t with Some t -> decolon t | None -> "objectName" in
+ let table, conv =
+ if table = "backPointer" then "refObj", conv_bp else table, conv_gen
+ in
let first = conv mc in
let mk_con l = List.map (fun (pat, p, v) -> (pat, conv p, v)) l in
let cons_true = mk_con ct in