push

push — Pousse une valeur dans la pile globale.

Description

Pousse une valeur dans la pile globale.

Syntaxe

push  xval1, [xval2, ... , xval31]
push  ival1, [ival2, ... , ival31]

Initialisation

ival1 ... ival31 -- valeurs à pousser sur la pile.

Performance

xval1 ... xval31 -- valeurs à pousser sur la pile.

Les valeurs données sont poussées dans la pile globale sous la forme d'un paquet. La pile globale fonctionne en mode dernier entré, premier sorti : après de multiples appels à push, il faut utiliser pop dans l'ordre inverse.

Chaque opération push ou pop peut traiter un "paquet" de variables. Lorsque l'on utilise pop, le nombre, le type et l'ordre des éléments doivent être les mêmes que ceux utilisés par le push correspondant. Ainsi après un "push Sfoo, ibar", il faut un appel comme "Sbar, ifoo pop", et pas, par exemple deux instructions "pop" séparées.

Les opcodes push et pop acceptent des variables de n'importe quel type (taux-i, -k, -a et chaînes de caractères). On peut utiliser n'importe quelle combinaison de types-i, -k, -a ou -S. Les variables de type 'a' et 'k' ne sont passées que pendant l'exécution, tandis que celles de type 'i' et 'S' ne sont passées que pendant l'initialisation.

push/pop pour les types a, k, i et S copient les données par valeur. Au contraire, push_f ne pousse qu'une référence du f-signal et le pop_f correspondant copiera directement depuis la variable originale dans le signal de sortie. Pour cette raison, il n'est pas recommandé de changer le f-signal source de push_f avant l'appel à pop_f. De même, si l'instance d'instrument possédant la variable passée à push_f est désactivée avant que pop_f ne soit appelé, il peut en résulter un comportement indéfini.

Toutes les erreurs de pile (tentative de pousser des données alors qu'il n'y a plus d'espace ou d'extraire des données d'une pile vide, nombre ou types d'arguments inconsistants, etc) sont fatales et terminent l'exécution.

Voir Aussi

stack, pop, pop_f and push_f.

Crédits

Par Istvan Varga.

2006