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.