package lutin
Install
Dune Dependency
Authors
Maintainers
Sources
md5=a7da42464f4ad0619bc4e759f2defca3
sha512=2142fe82b22c10f1baaf8591d177f2497c00b93e4f9d92b50e4ff24b34ecbc9d5dc8537efa21c94c09623501a1ef26292cfad36fa12fdde5cbe0add716b9c7cb
doc/lutin/CoAlgExp/index.html
Module CoAlgExp
Source
COMPILATION/EXPANSION : expressions algébriques
------------------------------------------------------------
Représentation des expressions algébriques.
----------------------------------------------------------
C'est la structure utilisée pour toutes les expressions non "trace" (grosso/modo du Lustre !).
La structure est très simple~: on distingue plusieurs cas de feuilles, et un seul cas de noeud (opérateur).
Elle contient, dès la construction, les infos sémantiques associées : type de valeur et "controlabilité".
Rappel~: une alg_exp est contrôlable si et seulement si elle contient au moins une référence à une variable support contrôlable (output ou local).
type node =
| AE_true
| AE_false
| AE_const of string
| AE_iconst of string
| AE_rconst of string
| AE_ival of int
| AE_rval of float
| AE_support of CoIdent.t
| AE_pre of CoIdent.t
| AE_alias of CoIdent.t
| AE_call of CoIdent.t * t list
| AE_external_call of CoIdent.t * CkIdentInfo.extern_info * CkTypeEff.profile * t list
Batterie de "constructeurs"
Réference à une variable du support
Réference au pre d'une variable du support
Référence à un alias
Tout calcul est un appel, prédéfini ou non
val of_external_call :
CoIdent.t ->
CkIdentInfo.extern_info ->
CkTypeEff.profile ->
CkTypeEff.t ->
t list ->
t
Affichage prefixé sur os
Affichage infixé (autant que possible) sur os n.b. compatible Lustre/Lucky