package diffast-core

  1. Overview
  2. Docs

Parameters

Signature

module Postprocessing : sig ... end
val mkinfo : < data : < src_loc : Diffast_core.Info.Loc.t.. >.. > as 'a -> 'a Info.t
val not_redundant : (< get : 'b -> 'c.. > as 'a -> 'c -> bool) -> 'a -> 'b -> bool
val shrink_iso : < get : 'a -> Spec.node_data_t Diffast_core.Spec.SB.Otree.node2.. > -> < get : 'b -> Spec.node_data_t Diffast_core.Spec.SB.Otree.node2.. > -> ('a * 'b) list -> 'a list -> int list
val do_compare : < hard_tree_size_limit : int ; moderate_nchildren_threshold : int ; prune_threshold : int.. > -> < _get_adjacency_score : ?anchor:(Node.node_t * Node.node_t) option -> Node.t -> Node.t -> float * (Node.t * Node.t) list ; get_adjacency_score : ?anchor:(Node.node_t * Node.node_t) option -> Node.t -> Node.t -> float ; is_incompatible : Diffast_core.Node_mapping.Nodetbl.key -> Diffast_core.Node_mapping.Nodetbl.key -> Diffast_core.Node_mapping.Nodetbl.key -> Diffast_core.Node_mapping.Nodetbl.key -> bool ; tree1 : < fast_scan_whole_initial : (Diffast_core.Node_mapping.Nodetbl.key -> unit) -> unit ; fast_scan_whole_initial_subtree : Diffast_core.Node_mapping.Nodetbl.key -> (Diffast_core.Node_mapping.Nodetbl.key -> unit) -> 'a ; get_digest : Node_mapping.node_t -> Diffast_core.Node_mapping.Xhash.t ; initial_leftmost : Node_mapping.node_t -> Node_mapping.node_t ; iter_initial_ancestor_nodes : Diffast_core.Node_mapping.Nodetbl.key -> (Diffast_core.Node_mapping.Nodetbl.key -> unit) -> 'b ; search_node_by_gindex : int -> Diffast_core.Node_mapping.Nodetbl.key.. > ; tree2 : < fast_scan_whole_initial_subtree : Diffast_core.Node_mapping.Nodetbl.key -> (Diffast_core.Node_mapping.Nodetbl.key -> unit) -> 'c ; get_digest : Node_mapping.node_t -> Diffast_core.Node_mapping.Xhash.t ; initial_leftmost : Node_mapping.node_t -> Node_mapping.node_t ; initial_subtree_mem : Diffast_core.Node_mapping.Nodetbl.key -> Diffast_core.Node_mapping.Nodetbl.key -> bool ; iter_initial_ancestor_nodes : Diffast_core.Node_mapping.Nodetbl.key -> (Diffast_core.Node_mapping.Nodetbl.key -> unit) -> unit ; search_node_by_gindex : int -> Diffast_core.Node_mapping.Nodetbl.key.. >.. > Node.cenv_t -> 'd -> 'e -> tree_t -> tree_t -> < add_pruned_nodes : (Pruned.kind ref * (Diffast_core.Spec.SB.Otree.GI.t * Diffast_core.Spec.SB.Otree.GI.t) * (Diffast_core.Spec.SB.Otree.GI.t * Diffast_core.Spec.SB.Otree.GI.t) * Spec.node_t Info.t * Spec.node_t Info.t) list -> 'f.. > -> Diffast_core.Flattreediff.Edit.seq * Diffast_core.Flattreediff.Mapping.t * (Diffast_misc.Otree.index * Diffast_misc.Otree.index) list * Diffast_misc.Otree.index list * Diffast_misc.Otree.index list * Diffast_core.Node_mapping.Nodetbl.key Node_mapping.c * Diffast_core.Spec.SB.Otree.index list * Diffast_core.Spec.SB.Otree.index list * Diffast_misc.Otree.index list
val prune_and_expand : 'a -> tree_t -> tree_t -> (Spec.node_t list * Spec.node_t list * Spec.node_t list * Spec.node_t list) -> node_t Node_mapping.c -> unit
val matching_cond : < moderate_nchildren_threshold : int.. > -> < is_flat : bool.. > -> < is_flat : bool.. > -> < initial_children : < is_leaf : bool ; pos : int.. > array.. > as 'a -> 'a -> bool
val map_cond : < root : < data : < eq : < is_named : bool.. > as 'a -> bool ; is_named : bool.. >.. >.. > -> < root : < data : 'a.. >.. > -> bool
val find_matching_subtrees : < moderate_nchildren_threshold : int.. > -> tree_t -> tree_t -> Diffast_misc.Edit.t list -> (Spec.tree_t * Spec.tree_t) list
val compare_subtree : < dots_flag : bool ; hard_tree_size_limit : int ; moderate_nchildren_threshold : int ; prune_threshold : int ; set_tree_size_limit1 : int -> 'a ; set_tree_size_limit2 : int -> 'b ; tree_size_limit1 : int ; tree_size_limit2 : int ; tree_size_limit_percent : int ; tree_size_threshold : int.. > -> < incr : 'c ; value : int.. > -> < _get_adjacency_score : ?anchor:(Node.node_t * Node.node_t) option -> Node.t -> Node.t -> float * (Node.t * Node.t) list ; get_adjacency_score : ?anchor:(Node.node_t * Node.node_t) option -> Node.t -> Node.t -> float ; is_incompatible : Diffast_core.Node_mapping.Nodetbl.key -> Diffast_core.Node_mapping.Nodetbl.key -> Diffast_core.Node_mapping.Nodetbl.key -> Diffast_core.Node_mapping.Nodetbl.key -> bool ; ref_npairs : Spec.npairs_t ; tree1 : < fast_scan_whole_initial : (Diffast_core.Node_mapping.Nodetbl.key -> unit) -> unit ; fast_scan_whole_initial_subtree : Diffast_core.Node_mapping.Nodetbl.key -> (Diffast_core.Node_mapping.Nodetbl.key -> unit) -> 'd ; get_digest : Node_mapping.node_t -> Diffast_core.Node_mapping.Xhash.t ; initial_leftmost : Node_mapping.node_t -> Node_mapping.node_t ; iter_initial_ancestor_nodes : Diffast_core.Node_mapping.Nodetbl.key -> (Diffast_core.Node_mapping.Nodetbl.key -> unit) -> 'e ; search_node_by_gindex : int -> Diffast_core.Node_mapping.Nodetbl.key.. > ; tree2 : < fast_scan_whole_initial_subtree : Diffast_core.Node_mapping.Nodetbl.key -> (Diffast_core.Node_mapping.Nodetbl.key -> unit) -> 'f ; get_digest : Node_mapping.node_t -> Diffast_core.Node_mapping.Xhash.t ; initial_leftmost : Node_mapping.node_t -> Node_mapping.node_t ; initial_subtree_mem : Diffast_core.Node_mapping.Nodetbl.key -> Diffast_core.Node_mapping.Nodetbl.key -> bool ; iter_initial_ancestor_nodes : Diffast_core.Node_mapping.Nodetbl.key -> (Diffast_core.Node_mapping.Nodetbl.key -> unit) -> unit ; search_node_by_gindex : int -> Diffast_core.Node_mapping.Nodetbl.key.. >.. > Node.cenv_t -> string -> node_t Node_mapping.c -> < add_aborted1 : Spec.node_t -> unit ; add_aborted2 : Spec.node_t -> unit ; add_abortedl1 : Spec.node_data_t Diffast_core.Spec.SB.Otree.node2 list -> unit ; add_abortedl2 : Spec.node_data_t Diffast_core.Spec.SB.Otree.node2 list -> unit ; add_para_iso1 : Spec.node_t list -> 'g ; add_para_iso2 : Spec.node_t list -> 'h ; add_pruned_nodes : (Pruned.kind ref * (Diffast_core.Spec.SB.Otree.GI.t * Diffast_core.Spec.SB.Otree.GI.t) * (Diffast_core.Spec.SB.Otree.GI.t * Diffast_core.Spec.SB.Otree.GI.t) * Spec.node_t Info.t * Spec.node_t Info.t) list -> 'i.. > -> (tree_t * tree_t) -> node_t Node_mapping.c * (Spec.node_t * Spec.node_t) list option
val dump_sources : string -> string -> string -> unit
val get_diff_status : < check_flag : bool ; clear_fact_restricted_flag : unit ; dist_flag : bool ; dump_delta_flag : bool ; dump_dot_flag : bool ; fact_algo : Diffast_core.Triple.Xhash.algo ; fact_compression : Diffast_core.Triple.C.c ; fact_enc : Entity.encoding ; fact_for_changes_flag : bool ; fact_for_mapping_flag : bool ; fact_for_mapping_restricted_flag : bool ; fact_into_directory : string ; fact_into_virtuoso : string ; fact_proj : string ; fact_restricted_flag : bool ; fact_size_threshold : int ; fact_virtuoso_temp_dir : string ; local_cache_name : string ; set_fact_restricted_flag : unit ; verbose_flag : bool.. > as 'a -> < extract_change : 'a -> tree_t -> tree_t -> node_t Node_mapping.c -> (Diffast_core.Edit.Nodetbl.key, Edit.tree_t) Edit.seq_base -> (string * int * string list) list * < data : < gid : Diffast_core.Info.GI.t ; label : string.. > ; gindex : Diffast_core.Info.GI.t ; initial_pos : int ; is_collapsed : bool ; uid : Diffast_core.Info.UID.t.. > Edit.t list * 'b * Triple.t Diffast_core.Edit.Xset.t ; node_pair_filter : 'a -> Diffast_core.Node_mapping.Nodetbl.key -> Diffast_core.Node_mapping.Nodetbl.key -> bool.. > -> < cache_path : string.. > -> Edit.seq -> Edit.seq -> node_t Node_mapping.c -> tree_t -> tree_t -> Stat.File.diff_stat
val find_boundary : < _replace_children : ?initial:bool -> (int * Spec.node_data_t Diffast_core.Spec.SB.Otree.node2 array) list -> unit ; _set_is_collapsed : bool -> unit ; add_child : int -> Spec.node_data_t Diffast_core.Spec.SB.Otree.node2 -> unit ; add_child_leftmost : Spec.node_data_t Diffast_core.Spec.SB.Otree.node2 -> unit ; add_child_rightmost : Spec.node_data_t Diffast_core.Spec.SB.Otree.node2 -> unit ; add_children_leftmost : Spec.node_data_t Diffast_core.Spec.SB.Otree.node2 array -> unit ; add_children_rightmost : Spec.node_data_t Diffast_core.Spec.SB.Otree.node2 array -> unit ; add_substance : Spec.node_data_t Diffast_core.Spec.SB.Otree.node2 -> unit ; apath : Diffast_misc.Path.t ; begin_mutation : unit -> unit ; children : Spec.node_data_t Diffast_core.Spec.SB.Otree.node2 array ; children_indexes : int list ; children_uids : Diffast_misc.UID.t list ; clear_collapsible : unit ; clear_in_path : unit ; collapse : int -> Diffast_misc.Xhash.t -> unit ; collapse_locked : bool ; collapse_not_locked : bool ; collapsible : bool ; data : < _annotation : Obj.t ; _anonymized2_label : Obj.t ; _anonymized3_label : Obj.t ; _anonymized_label : Obj.t ; _digest : Diffast_misc.Xhash.t option ; _digest_string : string ; _label : Obj.t ; _set_digest : Diffast_core.Spec.SB.Xhash.t -> unit ; _stripped_label : Obj.t ; _stripped_orig_label : Obj.t ; add_binding : Diffast_core.Spec.Binding.t -> unit ; add_successor : Spec.node_data_t Diffast_core.Spec.Otree.node2 -> unit ; add_to_ordinal_list : int list -> unit ; anonymized2_label : string ; anonymized3_label : string ; anonymized_label : string ; binding : Diffast_core.Spec.SB.Binding.t ; bindings : Diffast_core.Spec.SB.Binding.t list ; change_attr : string -> string -> unit ; char : char ; delete_attr : string -> unit ; digest : Diffast_misc.Xhash.t option ; digest_string : string ; elem_attrs_for_delta : (string * string) list ; elem_name_for_delta : string ; eq : Spec.node_data_t -> bool ; equals : Spec.node_data_t -> bool ; feature : Obj.t * Diffast_core.Spec.SB.Xhash.t option ; frommacro : string ; get_category : string ; get_ident_use : string ; get_name : string ; get_ordinal : int -> int ; get_orig_name : string ; get_prefix : string ; get_stripped_name : string ; get_suffix : string ; get_value : string ; gid : Diffast_core.Spec.SB.Otree.GI.t ; has_non_trivial_tid : bool ; has_non_trivial_value : bool ; has_ordinal : bool ; has_value : bool ; id_loc : Diffast_core.Spec.Loc.t ; insert_attr : string -> string -> unit ; is_anonymous : bool ; is_anonymous_orig : bool ; is_block : bool ; is_boundary : bool ; is_common : bool ; is_compatible_with : ?weak:bool -> Spec.node_data_t -> bool ; is_frommacro : bool ; is_int_literal : bool ; is_literal : bool ; is_named : bool ; is_named_orig : bool ; is_ntuple : bool ; is_op : bool ; is_order_insensitive : bool ; is_partition : bool ; is_phantom : bool ; is_primary : bool ; is_real_literal : bool ; is_scope_creating : bool ; is_sequence : bool ; is_special : bool ; is_statement : bool ; is_string_literal : bool ; label : string ; mid : Diffast_core.Spec.SB.MID.t ; more_anonymized_label : string ; move_disallowed : bool ; not_frommacro : bool ; orig_elem_attrs_for_delta : (string * string) list ; orig_elem_name_for_delta : string ; orig_lab_opt : Obj.t option ; orig_to_elem_data_for_delta : string * (string * string) list * string ; orig_to_elem_data_for_eq : string * (string * string) list * string ; quasi_eq : Spec.node_data_t -> bool ; relabel_allowed : Spec.node_data_t -> bool ; reset_digest : unit ; scope_node : Spec.node_data_t Diffast_core.Spec.Otree.node2 ; set_binding : Diffast_core.Spec.Binding.t -> unit ; set_bindings : Diffast_core.Spec.Binding.t list -> unit ; set_digest : Diffast_misc.Xhash.t -> unit ; set_frommacro : string -> unit ; set_gid : Diffast_core.Spec.SB.Otree.GI.t -> unit ; set_loc : Diffast_core.Spec.SB.Loc.t -> unit ; set_mid : Diffast_core.Spec.SB.MID.t -> unit ; set_prefix : string -> unit ; set_scope_node : Spec.node_data_t Diffast_core.Spec.Otree.node2 -> unit ; set_source_fid : string -> unit ; set_suffix : string -> unit ; set_weight : int -> unit ; source_fid : string ; src_loc : Diffast_core.Spec.SB.Loc.t ; stripped_label : string ; subtree_equals : Spec.node_data_t -> bool ; successors : Spec.node_data_t Diffast_core.Spec.Otree.node2 Diffast_core.Spec.Xset.t ; to_be_notified : bool ; to_elem_data : string * (string * string) list * string ; to_elem_data_for_delta : string * (string * string) list * string ; to_rep : string ; to_short_string : string ; to_simple_string : string ; to_string : string ; weight : int > ; decide_collapsible_or_not : unit ; del_leftmost_child : unit -> unit ; del_rightmost_child : unit -> unit ; end_mutation : ?overwrite:bool -> unit -> unit ; expand : unit ; get_substances : Spec.node_data_t Diffast_core.Spec.SB.Otree.node2 list ; gindex : Diffast_core.Spec.SB.Otree.GI.t ; has_hidden_parent : bool ; has_initial_parent : bool ; has_later_mutation : bool ; has_parent : bool ; hash : int ; hidden_children : Spec.node_data_t Diffast_core.Spec.SB.Otree.node2 array ; hidden_parent : Spec.node_data_t Diffast_core.Spec.SB.Otree.node2 ; hide_parent : unit ; in_path : bool ; index : int ; init_mutation : unit -> unit ; initial_ancestor_nodes : Spec.node_data_t Diffast_core.Spec.SB.Otree.node2 list ; initial_children : Spec.node_data_t Diffast_core.Spec.SB.Otree.node2 array ; initial_children_uids : Diffast_misc.UID.t list ; initial_nchildren : int ; initial_parent : 'a ; initial_pos : int ; initial_to_string : string ; insert_path : Spec.node_data_t Diffast_core.Spec.SB.Otree.node2 list -> unit ; is_collapsed : bool ; is_contracted : bool ; is_leaf : bool ; is_valid : bool ; iter_initial_ancestor_nodes : (Spec.node_data_t Diffast_core.Spec.SB.Otree.node2 -> unit) -> unit ; lock_collapse : unit ; nchildren : int ; nth_child : int -> Spec.node_data_t Diffast_core.Spec.SB.Otree.node2 ; parent : Spec.node_data_t Diffast_core.Spec.SB.Otree.node2 ; parent_edge : Spec.node_data_t Diffast_core.Spec.SB.Otree.node2 option ; path : Spec.node_data_t Diffast_core.Spec.SB.Otree.node2 Diffast_core.Spec.SB.Otree.path ; pos : int ; preorder_index : int ; print : unit ; prune : unit ; prune_all_children : unit ; prune_children : int list -> unit ; prune_initial_children : int list -> unit ; prune_nth_child : int -> unit ; replace_children : (int * Spec.node_data_t Diffast_core.Spec.SB.Otree.node2 array) list -> unit ; replace_nth_child : int -> Spec.node_data_t Diffast_core.Spec.SB.Otree.node2 array -> unit ; set_apath : Diffast_misc.Path.t -> unit ; set_children : Spec.node_data_t Diffast_core.Spec.SB.Otree.node2 array -> unit ; set_collapsible : unit ; set_data : Spec.node_data_t -> unit ; set_digest : Diffast_misc.Xhash.t -> unit ; set_gindex : Diffast_core.Spec.SB.Otree.GI.t -> unit ; set_hidden_children : Spec.node_data_t Diffast_core.Spec.SB.Otree.node2 array -> unit ; set_in_path : unit ; set_index : int -> unit ; set_initial_children : Spec.node_data_t Diffast_core.Spec.SB.Otree.node2 array -> unit ; set_initial_parent : Spec.node_data_t Diffast_core.Spec.SB.Otree.node2 -> unit ; set_initial_pos : int -> unit ; set_parent : Spec.node_data_t Diffast_core.Spec.SB.Otree.node2 -> unit ; set_parent_edge : Spec.node_data_t Diffast_core.Spec.SB.Otree.node2 option -> unit ; set_path : Spec.node_data_t Diffast_core.Spec.SB.Otree.node2 list -> unit ; set_pos : int -> unit ; set_preorder_index : int -> unit ; to_dot : ?mklab:(Spec.node_data_t Diffast_core.Spec.SB.Otree.node2 -> string) -> unit -> string ; to_dot_str : ?mklab:(Spec.node_data_t Diffast_core.Spec.SB.Otree.node2 -> string) -> unit -> string ; to_dot_str_ini : ?mklab:(Spec.node_data_t Diffast_core.Spec.SB.Otree.node2 -> string) -> unit -> string ; to_qualified_string : string ; to_rep : string ; to_string : string ; uid : Diffast_misc.UID.t ; unhide_parent : unit ; unlock_collapse : unit ; v_delete_child : int -> unit ; v_delete_children : int list -> unit ; v_insert_child : ?later:bool -> ?offset:float -> int -> Spec.node_data_t Diffast_core.Spec.SB.Otree.node2 -> unit ; v_insert_children : ?later:bool -> ?offset:float -> int -> Spec.node_data_t Diffast_core.Spec.SB.Otree.node2 list -> unit ; v_update_child : int -> Spec.node_data_t Diffast_core.Spec.SB.Otree.node2 -> unit ; v_update_children : int -> Spec.node_data_t Diffast_core.Spec.SB.Otree.node2 list -> unit > as 'a -> 'a
val has_mapped_boundary : < find : < _replace_children : ?initial:bool -> (int * Spec.node_data_t Diffast_core.Spec.SB.Otree.node2 array) list -> unit ; _set_is_collapsed : bool -> unit ; add_child : int -> Spec.node_data_t Diffast_core.Spec.SB.Otree.node2 -> unit ; add_child_leftmost : Spec.node_data_t Diffast_core.Spec.SB.Otree.node2 -> unit ; add_child_rightmost : Spec.node_data_t Diffast_core.Spec.SB.Otree.node2 -> unit ; add_children_leftmost : Spec.node_data_t Diffast_core.Spec.SB.Otree.node2 array -> unit ; add_children_rightmost : Spec.node_data_t Diffast_core.Spec.SB.Otree.node2 array -> unit ; add_substance : Spec.node_data_t Diffast_core.Spec.SB.Otree.node2 -> unit ; apath : Diffast_misc.Path.t ; begin_mutation : unit -> unit ; children : Spec.node_data_t Diffast_core.Spec.SB.Otree.node2 array ; children_indexes : int list ; children_uids : Diffast_misc.UID.t list ; clear_collapsible : unit ; clear_in_path : unit ; collapse : int -> Diffast_misc.Xhash.t -> unit ; collapse_locked : bool ; collapse_not_locked : bool ; collapsible : bool ; data : < _annotation : Obj.t ; _anonymized2_label : Obj.t ; _anonymized3_label : Obj.t ; _anonymized_label : Obj.t ; _digest : Diffast_misc.Xhash.t option ; _digest_string : string ; _label : Obj.t ; _set_digest : Diffast_core.Spec.SB.Xhash.t -> unit ; _stripped_label : Obj.t ; _stripped_orig_label : Obj.t ; add_binding : Diffast_core.Spec.Binding.t -> unit ; add_successor : Spec.node_data_t Diffast_core.Spec.Otree.node2 -> unit ; add_to_ordinal_list : int list -> unit ; anonymized2_label : string ; anonymized3_label : string ; anonymized_label : string ; binding : Diffast_core.Spec.SB.Binding.t ; bindings : Diffast_core.Spec.SB.Binding.t list ; change_attr : string -> string -> unit ; char : char ; delete_attr : string -> unit ; digest : Diffast_misc.Xhash.t option ; digest_string : string ; elem_attrs_for_delta : (string * string) list ; elem_name_for_delta : string ; eq : Spec.node_data_t -> bool ; equals : Spec.node_data_t -> bool ; feature : Obj.t * Diffast_core.Spec.SB.Xhash.t option ; frommacro : string ; get_category : string ; get_ident_use : string ; get_name : string ; get_ordinal : int -> int ; get_orig_name : string ; get_prefix : string ; get_stripped_name : string ; get_suffix : string ; get_value : string ; gid : Diffast_core.Spec.SB.Otree.GI.t ; has_non_trivial_tid : bool ; has_non_trivial_value : bool ; has_ordinal : bool ; has_value : bool ; id_loc : Diffast_core.Spec.Loc.t ; insert_attr : string -> string -> unit ; is_anonymous : bool ; is_anonymous_orig : bool ; is_block : bool ; is_boundary : bool ; is_common : bool ; is_compatible_with : ?weak:bool -> Spec.node_data_t -> bool ; is_frommacro : bool ; is_int_literal : bool ; is_literal : bool ; is_named : bool ; is_named_orig : bool ; is_ntuple : bool ; is_op : bool ; is_order_insensitive : bool ; is_partition : bool ; is_phantom : bool ; is_primary : bool ; is_real_literal : bool ; is_scope_creating : bool ; is_sequence : bool ; is_special : bool ; is_statement : bool ; is_string_literal : bool ; label : string ; mid : Diffast_core.Spec.SB.MID.t ; more_anonymized_label : string ; move_disallowed : bool ; not_frommacro : bool ; orig_elem_attrs_for_delta : (string * string) list ; orig_elem_name_for_delta : string ; orig_lab_opt : Obj.t option ; orig_to_elem_data_for_delta : string * (string * string) list * string ; orig_to_elem_data_for_eq : string * (string * string) list * string ; quasi_eq : Spec.node_data_t -> bool ; relabel_allowed : Spec.node_data_t -> bool ; reset_digest : unit ; scope_node : Spec.node_data_t Diffast_core.Spec.Otree.node2 ; set_binding : Diffast_core.Spec.Binding.t -> unit ; set_bindings : Diffast_core.Spec.Binding.t list -> unit ; set_digest : Diffast_misc.Xhash.t -> unit ; set_frommacro : string -> unit ; set_gid : Diffast_core.Spec.SB.Otree.GI.t -> unit ; set_loc : Diffast_core.Spec.SB.Loc.t -> unit ; set_mid : Diffast_core.Spec.SB.MID.t -> unit ; set_prefix : string -> unit ; set_scope_node : Spec.node_data_t Diffast_core.Spec.Otree.node2 -> unit ; set_source_fid : string -> unit ; set_suffix : string -> unit ; set_weight : int -> unit ; source_fid : string ; src_loc : Diffast_core.Spec.SB.Loc.t ; stripped_label : string ; subtree_equals : Spec.node_data_t -> bool ; successors : Spec.node_data_t Diffast_core.Spec.Otree.node2 Diffast_core.Spec.Xset.t ; to_be_notified : bool ; to_elem_data : string * (string * string) list * string ; to_elem_data_for_delta : string * (string * string) list * string ; to_rep : string ; to_short_string : string ; to_simple_string : string ; to_string : string ; weight : int > ; decide_collapsible_or_not : unit ; del_leftmost_child : unit -> unit ; del_rightmost_child : unit -> unit ; end_mutation : ?overwrite:bool -> unit -> unit ; expand : unit ; get_substances : Spec.node_data_t Diffast_core.Spec.SB.Otree.node2 list ; gindex : Diffast_core.Spec.SB.Otree.GI.t ; has_hidden_parent : bool ; has_initial_parent : bool ; has_later_mutation : bool ; has_parent : bool ; hash : int ; hidden_children : Spec.node_data_t Diffast_core.Spec.SB.Otree.node2 array ; hidden_parent : Spec.node_data_t Diffast_core.Spec.SB.Otree.node2 ; hide_parent : unit ; in_path : bool ; index : int ; init_mutation : unit -> unit ; initial_ancestor_nodes : Spec.node_data_t Diffast_core.Spec.SB.Otree.node2 list ; initial_children : Spec.node_data_t Diffast_core.Spec.SB.Otree.node2 array ; initial_children_uids : Diffast_misc.UID.t list ; initial_nchildren : int ; initial_parent : 'a ; initial_pos : int ; initial_to_string : string ; insert_path : Spec.node_data_t Diffast_core.Spec.SB.Otree.node2 list -> unit ; is_collapsed : bool ; is_contracted : bool ; is_leaf : bool ; is_valid : bool ; iter_initial_ancestor_nodes : (Spec.node_data_t Diffast_core.Spec.SB.Otree.node2 -> unit) -> unit ; lock_collapse : unit ; nchildren : int ; nth_child : int -> Spec.node_data_t Diffast_core.Spec.SB.Otree.node2 ; parent : Spec.node_data_t Diffast_core.Spec.SB.Otree.node2 ; parent_edge : Spec.node_data_t Diffast_core.Spec.SB.Otree.node2 option ; path : Spec.node_data_t Diffast_core.Spec.SB.Otree.node2 Diffast_core.Spec.SB.Otree.path ; pos : int ; preorder_index : int ; print : unit ; prune : unit ; prune_all_children : unit ; prune_children : int list -> unit ; prune_initial_children : int list -> unit ; prune_nth_child : int -> unit ; replace_children : (int * Spec.node_data_t Diffast_core.Spec.SB.Otree.node2 array) list -> unit ; replace_nth_child : int -> Spec.node_data_t Diffast_core.Spec.SB.Otree.node2 array -> unit ; set_apath : Diffast_misc.Path.t -> unit ; set_children : Spec.node_data_t Diffast_core.Spec.SB.Otree.node2 array -> unit ; set_collapsible : unit ; set_data : Spec.node_data_t -> unit ; set_digest : Diffast_misc.Xhash.t -> unit ; set_gindex : Diffast_core.Spec.SB.Otree.GI.t -> unit ; set_hidden_children : Spec.node_data_t Diffast_core.Spec.SB.Otree.node2 array -> unit ; set_in_path : unit ; set_index : int -> unit ; set_initial_children : Spec.node_data_t Diffast_core.Spec.SB.Otree.node2 array -> unit ; set_initial_parent : Spec.node_data_t Diffast_core.Spec.SB.Otree.node2 -> unit ; set_initial_pos : int -> unit ; set_parent : Spec.node_data_t Diffast_core.Spec.SB.Otree.node2 -> unit ; set_parent_edge : Spec.node_data_t Diffast_core.Spec.SB.Otree.node2 option -> unit ; set_path : Spec.node_data_t Diffast_core.Spec.SB.Otree.node2 list -> unit ; set_pos : int -> unit ; set_preorder_index : int -> unit ; to_dot : ?mklab:(Spec.node_data_t Diffast_core.Spec.SB.Otree.node2 -> string) -> unit -> string ; to_dot_str : ?mklab:(Spec.node_data_t Diffast_core.Spec.SB.Otree.node2 -> string) -> unit -> string ; to_dot_str_ini : ?mklab:(Spec.node_data_t Diffast_core.Spec.SB.Otree.node2 -> string) -> unit -> string ; to_qualified_string : string ; to_rep : string ; to_string : string ; uid : Diffast_misc.UID.t ; unhide_parent : unit ; unlock_collapse : unit ; v_delete_child : int -> unit ; v_delete_children : int list -> unit ; v_insert_child : ?later:bool -> ?offset:float -> int -> Spec.node_data_t Diffast_core.Spec.SB.Otree.node2 -> unit ; v_insert_children : ?later:bool -> ?offset:float -> int -> Spec.node_data_t Diffast_core.Spec.SB.Otree.node2 list -> unit ; v_update_child : int -> Spec.node_data_t Diffast_core.Spec.SB.Otree.node2 -> unit ; v_update_children : int -> Spec.node_data_t Diffast_core.Spec.SB.Otree.node2 list -> unit > as 'a -> 'b.. > -> 'a -> 'b -> bool
val compare_tree : < check_flag : bool ; clear_cache_flag : bool ; clear_fact_restricted_flag : unit ; conflicting_pairs_threshold : int ; conservative_flag : bool ; default_dir_permission : Unix.file_perm ; delta_compression : Diffast_misc.Compression.c ; dist_flag : bool ; dots_flag : bool ; dump_delta_flag : bool ; dump_delta_out : string ; dump_dot_flag : bool ; dump_size_threshold : int ; fact_algo : Diffast_core.Triple.Xhash.algo ; fact_compression : Diffast_core.Triple.C.c ; fact_enc : Entity.encoding ; fact_for_changes_flag : bool ; fact_for_delta_flag : bool ; fact_for_mapping_flag : bool ; fact_for_mapping_restricted_flag : bool ; fact_into_directory : string ; fact_into_virtuoso : string ; fact_proj : string ; fact_restricted_flag : bool ; fact_size_threshold : int ; fact_virtuoso_temp_dir : string ; group_relabels_flag : bool ; hard_tree_size_limit : int ; ignore_move_of_unordered_flag : bool ; ignore_non_orig_relabel_flag : bool ; irreversible_flag : bool ; local_cache_name : string ; lock_matches_flag : bool ; lower_ee_flag : bool ; mapped_neighbours_difference_threshold : float ; match_algo_threshold : int ; minimize_delta_flag : bool ; moderate_nchildren_threshold : int ; moveid_generator : < gen : Edit.move_id.. > ; movrel_ratio_threshold : float ; movrel_stability_threshold : float ; multi_node_match_flag : bool ; no_enclave_elim_flag : bool ; no_glue_flag : bool ; no_moves_flag : bool ; no_movrels_flag : bool ; no_odd_relabel_elim_flag : bool ; no_unnamed_node_move_flag : bool ; pp_anonymized_match_threshold : float ; pp_relabel_criteria : float ; prematch_cands_threshold : int ; prematch_flag : bool ; prematch_subtree_cands_threshold : int ; preprune_flag : bool ; prune_threshold : int ; recover_orig_ast_flag : bool ; rename_rectification_level : int ; set_fact_restricted_flag : unit ; set_tree_size_limit1 : int -> 'b ; set_tree_size_limit2 : int -> 'c ; shrink_moves_flag : bool ; simple_glue_flag : bool ; sort_unordered_flag : bool ; split_hunk_flag : bool ; subtree_match_ratio_threshold : float ; tree_size_limit1 : int ; tree_size_limit2 : int ; tree_size_limit_percent : int ; tree_size_threshold : int ; trust_tree_matcher_flag : bool ; use_adjacency_matches_flag : bool ; verbose_flag : bool ; viewer_flag : bool ; weak_eq_flag : bool.. > as 'a -> < elaborate_edits : ('a -> (Postprocessing.node_t, Postprocessing.tree_t) Comparison.c -> Postprocessing.node_t Node_mapping.c -> Edit.seq -> 'd) option ; extract_change : 'a -> tree_t -> tree_t -> node_t Node_mapping.c -> (Diffast_core.Edit.Nodetbl.key, Edit.tree_t) Edit.seq_base -> (string * int * string list) list * < data : < gid : Diffast_core.Info.GI.t ; label : string.. > ; gindex : Diffast_core.Info.GI.t ; initial_pos : int ; is_collapsed : bool ; uid : Diffast_core.Info.UID.t.. > Edit.t list * 'e * Triple.t Diffast_core.Edit.Xset.t ; has_elaborate_edits : bool ; node_pair_filter : 'a -> Diffast_core.Node_mapping.Nodetbl.key -> Diffast_core.Node_mapping.Nodetbl.key -> bool.. > -> (node_t, tree_t) Comparison.c -> node_t Node_mapping.c -> Diffast_core.Node_mapping.Nodetbl.key Diffast_core.Node_mapping.Xset.t -> Diffast_core.Node_mapping.Nodetbl.key Diffast_core.Node_mapping.Xset.t -> Postprocessing.node_t Node_mapping.c -> tree_t -> tree_t -> Stat.File.diff_stat
class tree_comparator : < elaborate_edits : (< check_flag : bool ; clear_cache_flag : bool ; clear_fact_restricted_flag : unit ; conflicting_pairs_threshold : int ; conservative_flag : bool ; default_dir_permission : Unix.file_perm ; delta_compression : Diffast_misc.Compression.c ; dist_flag : bool ; dots_flag : bool ; dump_delta_flag : bool ; dump_delta_out : string ; dump_dot_flag : bool ; dump_size_threshold : int ; fact_algo : Diffast_core.Triple.Xhash.algo ; fact_compression : Diffast_core.Triple.C.c ; fact_enc : Entity.encoding ; fact_flag : bool ; fact_for_changes_flag : bool ; fact_for_delta_flag : bool ; fact_for_mapping_flag : bool ; fact_for_mapping_restricted_flag : bool ; fact_into_directory : string ; fact_into_virtuoso : string ; fact_proj : string ; fact_proj_roots : string array ; fact_restricted_flag : bool ; fact_size_threshold : int ; fact_versions : (Entity.vkind * string) array ; fact_virtuoso_temp_dir : string ; get_cache_path_for_file1 : 'b -> string ; get_cache_path_for_file2 : 'b -> 'b -> string ; group_relabels_flag : bool ; hard_tree_size_limit : int ; ignore_move_of_unordered_flag : bool ; ignore_non_orig_relabel_flag : bool ; irreversible_flag : bool ; local_cache_name : string ; lock_matches_flag : bool ; lower_ee_flag : bool ; mapped_neighbours_difference_threshold : float ; match_algo_threshold : int ; minimize_delta_flag : bool ; moderate_nchildren_threshold : int ; moveid_generator : < gen : Edit.move_id.. > ; movrel_ratio_threshold : float ; movrel_stability_threshold : float ; multi_node_match_flag : bool ; no_collapse_flag : bool ; no_enclave_elim_flag : bool ; no_glue_flag : bool ; no_moves_flag : bool ; no_movrels_flag : bool ; no_odd_relabel_elim_flag : bool ; no_unnamed_node_move_flag : bool ; pp_anonymized_match_threshold : float ; pp_relabel_criteria : float ; prematch_cands_threshold : int ; prematch_early_resolve_flag : bool ; prematch_flag : bool ; prematch_subtree_cands_threshold : int ; preprune_flag : bool ; prune_threshold : int ; recover_orig_ast_flag : bool ; rename_rectification_level : int ; set_fact_restricted_flag : unit ; set_simple_glue_flag : 'c ; set_subtree_match_threshold : int -> 'd ; set_tree_size_limit1 : int -> 'e ; set_tree_size_limit2 : int -> 'f ; shrink_moves_flag : bool ; simple_glue_flag : bool ; sort_unordered_flag : bool ; split_hunk_flag : bool ; subtree_match_ratio_threshold : float ; subtree_match_threshold : int ; tree_size_limit1 : int ; tree_size_limit2 : int ; tree_size_limit_percent : int ; tree_size_threshold : int ; trust_tree_matcher_flag : bool ; use_adjacency_matches_flag : bool ; verbose_flag : bool ; viewer_flag : bool ; weak_eq_flag : bool.. > as 'a -> (Postprocessing.node_t, Postprocessing.tree_t) Comparison.c -> Postprocessing.node_t Node_mapping.c -> Edit.seq -> 'g) option ; extract_change : 'a -> tree_t -> tree_t -> node_t Node_mapping.c -> (Diffast_core.Edit.Nodetbl.key, Edit.tree_t) Edit.seq_base -> (string * int * string list) list * < data : < gid : Diffast_core.Info.GI.t ; label : string.. > ; gindex : Diffast_core.Info.GI.t ; initial_pos : int ; is_collapsed : bool ; uid : Diffast_core.Info.UID.t.. > Edit.t list * 'h * Triple.t Diffast_core.Edit.Xset.t ; extract_fact : 'a -> string -> tree_t -> unit ; has_elaborate_edits : bool ; make_tree_builder : 'a -> < build_tree : 'b -> tree_t ; extra_source_files : Diffast_core.Lang_base.S.file list.. > ; node_pair_filter : 'a -> Diffast_core.Node_mapping.Nodetbl.key -> Diffast_core.Node_mapping.Nodetbl.key -> bool.. > -> 'a -> ?cache_path:string option -> 'b -> 'b -> object ... end
OCaml

Innovation. Community. Security.