summaryrefslogtreecommitdiffstats
path: root/src/tree.mli
diff options
context:
space:
mode:
Diffstat (limited to 'src/tree.mli')
-rw-r--r--src/tree.mli57
1 files changed, 57 insertions, 0 deletions
diff --git a/src/tree.mli b/src/tree.mli
new file mode 100644
index 0000000..3cdf219
--- /dev/null
+++ b/src/tree.mli
@@ -0,0 +1,57 @@
+open Types
+
+type special_export = Re_export_all | Fake_export_all
+
+type exports = {
+ export_ok : (context * string) list;
+ export_auto : (context * string) list;
+ export_tags : (string * (context * string) list) list;
+ special_export : special_export option;
+}
+
+
+type uses = (string * ((context * string) list option * pos)) list
+
+type prototype = {
+ proto_nb_min : int ;
+ proto_nb_max : int option ;
+ }
+
+type variable_used = Access_none | Access_write_only | Access_various
+
+type per_package = {
+ package_name : string ; has_package_name : bool ;
+ vars_declared : (context * string, pos * variable_used ref * prototype option) Hashtbl.t;
+ imported : ((context * string) * (string * variable_used ref * prototype option)) list option ref;
+ exports : exports ;
+ uses : uses ;
+ required_packages : (string * pos) list ;
+ body : fromparser list;
+ isa : (string * pos) list option ;
+ }
+
+type per_file = {
+ file_name : string ;
+ require_name : string option ;
+ lines_starts : int list ;
+ build_time : float ;
+ packages : per_package list ;
+ from_basedir : bool ;
+ }
+
+val empty_exports : exports
+val ignore_package : string -> unit
+val use_lib : string list ref
+val uses_external_package : string -> bool
+val findfile : string list -> string -> string
+
+val get_global_info_from_package : bool -> string option -> float -> fromparser list -> per_file
+
+val has_proto : string option -> fromparser -> ((context * string) list * pos * fromparser list) option
+val get_vars_declaration : (context * string * string, pos * prototype option) Hashtbl.t -> string -> per_package -> unit
+
+val die_with_pos : string * int * int -> string -> 'a
+val warn_with_pos : Types.warning list -> string * int * int -> string -> unit
+
+val fold_tree : ('a -> fromparser -> 'a option) -> 'a -> fromparser -> 'a
+val from_qw : fromparser -> (context * string) list