summaryrefslogtreecommitdiffstats
path: root/perl_checker.src/tree.mli
blob: e5d19c1888a340370f68ce494dce91653d66ba07 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
open Types

type special_export = Re_export_all | 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 per_package = {
    file_name : string ;
    package_name : string ; has_package_name : bool ;
    vars_declared : (context * string, pos) Hashtbl.t;
    imported : ((context * string) * string) list option ref;
    exports : exports ;
    uses : uses ;
    body : fromparser list;
  }
type state = {
    per_package : (string * per_package) list;
    files_parsed : string list;
    global_vars_declared : (context * string * string, pos) Hashtbl.t;
    global_vars_used : ((context * string * string) * pos) list ref;
  } 

val ignored_packages : string list ref
val use_lib : string list ref

val default_state : state
val get_global_info_from_package : fromparser list -> per_package list * (string * pos) list
val get_vars_declaration : state -> per_package -> unit
val check_tree : state -> per_package -> unit

val die_with_pos : string * int * int -> string -> 'a
val warn_with_pos : string * int * int -> string -> unit
val add_package_to_state : state -> per_package -> state