Import entity from "ri.newgen"
Import constant from "ri.newgen"
Equivalences = chains:chain*
Le domaine equivalences permet de calculer les adresses des variables d’un programmes Fortran. C’est une séquence de chaînes d’équivalences.
Chain = atoms:atom*
Le domaine chain est utilisé pour stocker une chaine d’équivalence. C’est une séquence d’atomes.
Atom = equivar:entity x equioff:int
Le domaine atom permet de connaître l’offset d’une variable par rapport au début de la chaine d’équivalence à laquelle cette variable appartient. L’offset peut être négatif. Une variable peut apparaître dans plus d’une chaîne.
Data = datavars:datavar* x datavals:dataval*
Le domaine data permet de calculer les valeurs initiales des variables d’un programme Fortran. Il se compose d’une liste de positions mémoire à initialiser et d’une liste de valeurs.
Datavar = variable:entity x nbelements:int
Le domaine datavar permet de représenter une séquence de positions de la mémoire. cette séquence est repérée par une variable et une longueur.
Dataval = constant x nboccurrences:int
Le domaine dataval permet de représenter une liste de valeurs. Toutes les valeurs sont identiques, et sont données par le sous-domaine constant.