Add poc files
This commit is contained in:
parent
30da2412e3
commit
fa600b98f7
220 changed files with 45679 additions and 0 deletions
81
h_program-lang/database_code.mli
Normal file
81
h_program-lang/database_code.mli
Normal file
|
|
@ -0,0 +1,81 @@
|
|||
open Entity_code
|
||||
|
||||
type entity_id = int
|
||||
|
||||
type entity = {
|
||||
e_kind: entity_kind;
|
||||
(* needs to be a shortname, e.g. "map", not "List.map", otherwise the
|
||||
* highlighter (which uses only a lexer/parser) will not enlarge the
|
||||
* corresponding token in the file.
|
||||
*)
|
||||
e_name: string;
|
||||
e_fullname: string; (* can be empty *)
|
||||
e_file: Common.filename;
|
||||
e_pos: Common2.filepos;
|
||||
mutable e_number_external_users: int;
|
||||
mutable e_good_examples_of_use: entity_id list;
|
||||
e_properties: property list;
|
||||
}
|
||||
|
||||
(* for debugging *)
|
||||
(* val json_of_entity: entity -> Json_type.t *)
|
||||
|
||||
|
||||
(* The dirs and filenames in this database are in readable format
|
||||
* so one can use the database generated by another user on
|
||||
* its own repository (this also saves some space in the generated
|
||||
* JSON file). Only root is in absolute path format.
|
||||
*)
|
||||
type database = {
|
||||
root: Common.dirname;
|
||||
|
||||
(* the int are for the total number of times this file or dir is
|
||||
* externally referenced.
|
||||
*)
|
||||
dirs: (Common.filename * int) list;
|
||||
files: (Common.filename * int) list;
|
||||
|
||||
entities: entity array;
|
||||
}
|
||||
|
||||
(* builders *)
|
||||
val empty_database: unit -> database
|
||||
val default_db_name: string
|
||||
(* save either in a (readable) json format or (fast) marshalled form
|
||||
* depending on the extension of the filename
|
||||
*)
|
||||
val load_database: Common.filename -> database
|
||||
val save_database: database -> Common.filename -> unit
|
||||
(* when we want to analyze multi-languages projets *)
|
||||
val merge_databases: database -> database -> database
|
||||
|
||||
(* build database helpers *)
|
||||
val alldirs_and_parent_dirs_of_relative_dirs:
|
||||
Common.dirname list -> Common.dirname list
|
||||
val files_and_dirs_database_from_files:
|
||||
root:Common.dirname -> Common.filename list -> database
|
||||
val adjust_method_or_field_external_users:
|
||||
verbose:bool -> entity array -> unit
|
||||
|
||||
(* for displaying a summary of the important functions in a file *)
|
||||
val build_top_k_sorted_entities_per_file:
|
||||
k:int -> entity array -> (Common.filename, entity list) Hashtbl.t
|
||||
|
||||
(* for big grep *)
|
||||
val files_and_dirs_and_sorted_entities_for_completion:
|
||||
threshold_too_many_entities:int -> database -> entity list
|
||||
|
||||
(* codemap collaboration, highlighter (lexer/parser) <-> semantic database *)
|
||||
val entity_kind_of_highlight_category_def:
|
||||
Highlight_code.category -> entity_kind option
|
||||
val entity_kind_of_highlight_category_use:
|
||||
Highlight_code.category -> entity_kind option
|
||||
val is_entity_def_category:
|
||||
Highlight_code.category -> bool
|
||||
val matching_def_short_kind_kind:
|
||||
entity_kind -> entity_kind -> bool
|
||||
val matching_use_categ_kind:
|
||||
Highlight_code.category -> entity_kind -> bool
|
||||
(* use vs def *)
|
||||
val entity_and_highlight_category_correpondance:
|
||||
entity -> Highlight_code.category -> bool
|
||||
Loading…
Add table
Add a link
Reference in a new issue