package lutin
Install
dune-project
Dependency
Authors
Maintainers
Sources
md5=4d07d1263dbc90ab18cbaec55a57dcfe
sha512=2e899aee5e44826827b3626771f7ce01241b1745d48f30b60404cc5cbaa44ac608920e9af3bf171275c429a8b823b3cee7542199b7c4c32919b6bb37e33bf8de
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