package lustre-v6

  1. Overview
  2. Docs

(Raw) Abstract syntax tree of source Lustre V6 programs.

This is a syntax tree represented by Hash tables.

type 'a error =
  1. | Ok of 'a
  2. | Error of string

Constructeur de type "avec erreur info"

type t =
  1. | PRPackBody of string list * packbody
  2. | PRPack_or_models of string list * pack_or_model list
and pack_or_model =
  1. | NSPack of pack_info Lxm.srcflagged
  2. | NSModel of model_info Lxm.srcflagged
and model_info = {
  1. mo_name : Lv6Id.pack_name;
  2. mo_uses : Lv6Id.pack_name Lxm.srcflagged list;
  3. mo_needs : AstCore.static_param Lxm.srcflagged list;
  4. mo_provides : AstCore.item_info Lxm.srcflagged list option;
  5. mo_body : packbody;
}
and pack_info = {
  1. pa_name : Lv6Id.pack_name;
  2. pa_def : pack_def;
}
and pack_def =
  1. | PackGiven of pack_given
  2. | PackInstance of pack_instance
and pack_given = {
  1. pg_uses : Lv6Id.pack_name Lxm.srcflagged list;
  2. pg_provides : AstCore.item_info Lxm.srcflagged list option;
  3. pg_body : packbody;
}
and pack_instance = {
  1. pi_model : Lv6Id.t;
  2. pi_args : (Lv6Id.t * AstCore.static_arg Lxm.srcflagged) list;
}
and packbody = {
  1. pk_const_table : (Lv6Id.t, AstCore.const_info Lxm.srcflagged) Stdlib.Hashtbl.t;
  2. pk_type_table : (Lv6Id.t, AstCore.type_info Lxm.srcflagged) Stdlib.Hashtbl.t;
  3. pk_node_table : (Lv6Id.t, AstCore.node_info Lxm.srcflagged) Stdlib.Hashtbl.t;
  4. pk_def_list : AstCore.item_ident list;
}
val give_pack_this_name : Lv6Id.pack_name -> packbody -> pack_info
val make_packbody : (Lv6Id.t, AstCore.const_info Lxm.srcflagged) Stdlib.Hashtbl.t -> (Lv6Id.t, AstCore.type_info Lxm.srcflagged) Stdlib.Hashtbl.t -> (Lv6Id.t, AstCore.node_info Lxm.srcflagged) Stdlib.Hashtbl.t -> AstCore.item_ident list -> packbody
val lexeme_of_left_part : AstCore.left_part -> Lxm.t
val pack_or_model_to_string : pack_or_model -> string