package lutin
Lutin: modeling stochastic reactive systems
Install
Dune Dependency
Authors
Maintainers
Sources
lutin.v2.71.15.tgz
md5=a7da42464f4ad0619bc4e759f2defca3
sha512=2142fe82b22c10f1baaf8591d177f2497c00b93e4f9d92b50e4ff24b34ecbc9d5dc8537efa21c94c09623501a1ef26292cfad36fa12fdde5cbe0add716b9c7cb
doc/lutin/Expand/index.html
Module Expand
Source
EXPANSION : main
------------------------------------------------------------
L'expansion consiste essentiellement à construire 3 tables globales indexées par des ident target :
- Table des variables (support) : elle contient les entrées/sorties et les locales (cf. exist) remontées au top via un nommage unique.
- Table des alias : associe à des idents cible des expressions algébriques. Les idents cible correpondent au instances de macros utilisées dans le corps du node.
- Table des traces : à chaque trace nommée est associée une expression de trace expansée.
- Table des fonctions externes utilisees, pour + tard
----------------------------------------------------------
Les paramètres de l'expansion sont : -------------------------------------------------------
- Le CheckEnv.t qui résulte du type/binding check. Il permet de retrouver le type effectif (sémantique) de toute expression source et l'info associée à toute instance d'identificateur. -------------------------------------------------------
- Le code source (type Syntaxe.package) -------------------------------------------------------
- Le node "main" (string) -------------------------------------------------------
Le résultat de l'expansion consiste en 3 tables indexées par des idents cibles (CoIdent.t) :
- Table des variables (support)
- Table des alias (d'expressions algébriques)
- la liste d'alias
- Table des traces
Info et table des variables support
Source
type support_info = {
si_ident : CoIdent.t;
si_nature : support_nature;
si_type : CkTypeEff.t;
si_ref_exp : CoAlgExp.t;
si_src : CoIdent.src_stack;
si_pre_ref_exp : CoAlgExp.t option;
si_default : CoAlgExp.t option;
si_scope : support_scope option;
si_init : CoAlgExp.t option;
si_range : (CoAlgExp.t * CoAlgExp.t) option;
}
Source
type alias_info = {
ai_type : CkTypeEff.t;
ai_def_exp : CoAlgExp.t;
ai_ref_exp : CoAlgExp.t;
ai_src : CoIdent.src_stack;
}
Info et table des alias algébriques
Info et table des alias trace
Info et table des externes utilisées on garde le CkIdentInfo.t tel quel pour usage ultérieur (génération de code) N.B. le source est un lexeme
Source
type extern_info = {
xi_decl : Syntaxe.let_info;
xi_prof : CkTypeEff.profile;
xi_src : Lexeme.t;
}
sectionYPositions = computeSectionYPositions($el), 10)"
x-init="setTimeout(() => sectionYPositions = computeSectionYPositions($el), 10)"
>