package lustre-v6

  1. Overview
  2. Docs

Maps ident to entities (const, type et oper) in some particular contexts.

type 'a elt =
  1. | Local of 'a
  2. | Imported of Lv6Id.long * AstCore.static_param Lxm.srcflagged list

Symbol table elements.

type t
val create : unit -> t

Manip de AstTabSymbol.t

Raise a proper compil error message if not found

val find_pack_of_type : t -> Lv6Id.t -> Lxm.t -> Lv6Id.pack_name
val find_pack_of_const : t -> Lv6Id.t -> Lxm.t -> Lv6Id.pack_name
val add_import_const : t -> Lv6Id.pack_name -> Lv6Id.t -> Lv6Id.long -> unit

Ajout de nom d'item importés (via uses)

val add_import_type : t -> Lv6Id.t -> Lv6Id.long -> unit
val add_import_node : t -> Lv6Id.t -> Lv6Id.long -> AstCore.static_param Lxm.srcflagged list -> unit
val add_type : t -> Lv6Id.pack_name -> Lv6Id.t -> AstCore.type_info Lxm.srcflagged -> unit

Add local items declaration

val add_const : t -> Lv6Id.pack_name -> Lv6Id.t -> AstCore.const_info Lxm.srcflagged -> unit
val add_node : t -> Lv6Id.t -> AstCore.node_info Lxm.srcflagged -> unit

Itérer sur les items

val iter_types : t -> (Lv6Id.t -> AstCore.type_info Lxm.srcflagged elt -> unit) -> unit
val iter_consts : t -> (Lv6Id.t -> AstCore.const_info Lxm.srcflagged elt -> unit) -> unit
val iter_nodes : t -> (Lv6Id.t -> AstCore.node_info Lxm.srcflagged elt -> unit) -> unit