Add poc files
This commit is contained in:
parent
30da2412e3
commit
fa600b98f7
220 changed files with 45679 additions and 0 deletions
63
h_program-lang/layer_code.mli
Normal file
63
h_program-lang/layer_code.mli
Normal file
|
|
@ -0,0 +1,63 @@
|
|||
|
||||
type color = string (* Simple_color.emacs_color *)
|
||||
(* The filenames in this data structure are in readable format
|
||||
* so one can use the layer generated by another user on
|
||||
* his own repository (this also saves some space in the generated
|
||||
* JSON file).
|
||||
*)
|
||||
type layer = {
|
||||
title: string;
|
||||
description: string;
|
||||
files: (Common.filename * file_info) list;
|
||||
kinds: (kind * color) list;
|
||||
}
|
||||
and file_info = {
|
||||
micro_level: (int (* line *) * kind) list;
|
||||
macro_level: (kind * float (* percentage of rectangle *)) list;
|
||||
}
|
||||
(* ugly: the first letter of the propery cannot be in uppercase because
|
||||
* of the ugly way Ocaml.json_of_v currently works.
|
||||
*)
|
||||
and kind = string
|
||||
|
||||
val red_green_properties: (kind * color) list
|
||||
val heat_map_properties: (kind * color) list
|
||||
|
||||
(* The filenames are in absolute path format in the index. *)
|
||||
type layers_with_index = {
|
||||
root: Common.dirname;
|
||||
layers: (layer * bool (* is active *)) list;
|
||||
|
||||
micro_index:
|
||||
(Common.filename, (int, color) Hashtbl.t) Hashtbl.t;
|
||||
macro_index:
|
||||
(Common.filename, (float * color) list) Hashtbl.t;
|
||||
}
|
||||
|
||||
val build_index_of_layers:
|
||||
root:Common.dirname ->
|
||||
(layer * bool) list ->
|
||||
layers_with_index
|
||||
val has_active_layers: layers_with_index -> bool
|
||||
|
||||
(* save either in a (readable) json format or (fast) marshalled form
|
||||
* depending on the extension of the filename
|
||||
*)
|
||||
val load_layer: Common.filename -> layer
|
||||
val save_layer: layer -> Common.filename -> unit
|
||||
|
||||
(* helpers *)
|
||||
val json_of_layer: layer -> Json_type.t
|
||||
val layer_of_json: Json_type.t -> layer
|
||||
|
||||
val simple_layer_of_parse_infos:
|
||||
root:Common.dirname ->
|
||||
title:string ->
|
||||
?description:string ->
|
||||
(Parse_info.info * kind) list ->
|
||||
(kind * color) list ->
|
||||
layer
|
||||
|
||||
val stat_of_layer: layer -> (kind * int) list
|
||||
|
||||
val filter_layer: (Common.filename -> bool) -> layer -> layer
|
||||
Loading…
Add table
Add a link
Reference in a new issue