package lustre-v6

  1. Overview
  2. Docs
Legend:
Page
Library
Module
Module type
Parameter
Class
Class type
Source

Module LicPrgSource

The data structure resulting from the compilation process

Réorganisation de la compil :

Un LicPrg est :

  • un programme Lustre SIMPLE, vérifié et cohérent, à base de Lic.xx
  • du lv6, on passe à LicPrg via licTab, qui fait UNIQUEMENT le boulot de base : * dé-packaging * résolution de l'ordre sup statique, y compris la récursion, en tirant "le fil" du main node * SAUF pour les macros prédéfinies (non-programmables) * résolution de la surcharge
  • les transformations (expansions etc.) qui étaient faites dans licTab sont (appelées à devenir) des phases apres coup du type LicPrg -> LicPrg

Pas très différent des infos de licTab.t Sauf que on utilise des map

Sourcetype t
Sourceval add_type : Lic.item_key -> Lic.type_ -> t -> t

nb: previous bindings disappear

Sourceval add_const : Lic.item_key -> Lic.const -> t -> t
Sourceval add_node : Lic.node_key -> Lic.node_exp -> t -> t
Sourceval del_node : Lic.node_key -> t -> t
Sourceval empty : t
Sourceval fold_consts : (Lic.item_key -> Lic.const -> 'a -> 'a) -> t -> 'a -> 'a
Sourceval fold_types : (Lic.item_key -> Lic.type_ -> 'a -> 'a) -> t -> 'a -> 'a
Sourceval fold_nodes : (Lic.node_key -> Lic.node_exp -> 'a -> 'a) -> t -> 'a -> 'a
Sourceval list_nodes : t -> (Lic.node_key * Lic.node_exp) list
Sourceval iter_consts : (Lic.item_key -> Lic.const -> unit) -> t -> unit
Sourceval iter_types : (Lic.item_key -> Lic.type_ -> unit) -> t -> unit
Sourceval iter_nodes : (Lic.node_key -> Lic.node_exp -> unit) -> t -> unit
Sourceval to_file : Lv6MainArgs.t -> t -> Lv6Id.idref option -> unit
Sourceval find_type : t -> Lic.item_key -> Lic.type_ option
Sourceval find_const : t -> Lic.item_key -> Lic.const option
Sourceval find_node : t -> Lic.node_key -> Lic.node_exp option
Sourceval node_exists : t -> Lic.node_key -> bool
Sourceval choose_node : t -> (Lic.node_key * Lic.node_exp) option

choose a user node

Sourceval find_var : Lv6Id.t -> Lic.node_exp -> Lic.var_info option
Sourceval fresh_type_id : t -> Lv6Id.pack_name -> string -> Lv6Id.long
OCaml

Innovation. Community. Security.