Manuel §1.2.6    

Piles et Files

Sisal permet de déclarer des piles et des files de données. Ces structures de données disposent de deux fonctions Push et Pull qui permettent respectivement d'introduire une donnée et de retirer une donnée.

La différence de fonctionnement entre les deux structures réside dans le fait qu'avec une pile le premier sorti est le dernier arrivé (LIFO), alors qu'avec une file le premier sorti est le premier arrivé (FIFO).

Cette structure doit être déclarée dans une partie Var d ’un script ou d ’un synoptique.

Stack;

Queue;

L'exemple suivant montre l'utilisation des deux structures.

Attendus Queue;
Stock Stack;

...

Push( Attendus, " AZ25332"); Push( Stock, "  BY32767");

If Count( Attendus) then ProduitAttendu = Pull( Attendus);
PrisAuStock = Pull( Stock);
If PrisAuStock then ...

Des fonctions système spécifiques permettent de gérer les piles et files.

La fonction Push permet de rajouter une donnée dans la structure.

Push( StackOrQueue, donnée)

La fonction Pull permet de retirer une donnée de la structure.

Pull( StackOrQueue) : donnee

Si la structure est vide la valeur rendue est indéfinie.

La fonction Count permet de compter le nombre d'enregistrement d'une pile ou d'une file.

Count(StackOrQueue): Entier

Dans les autres cas de référencement d'une variable Pile ou File, la donnée accédée est la prochaine donnée à être extraite. On peut par exemple modifier sa valeur.

If EnCours == "AZ3855314" then EnCours = "AZ385514";

Il n'est par contre pas possible de consulter les autres données enregistrées, ni d'itérer sur chacune d'entre elles.