Voilà, la méthode conventionnelle pour trouver la fin d'une instruction
et nettoyer correctement l'estack, consiste à faire
while(p!=END_TAG) p=next_expression_index(p);
p--
top_estack=p;
il ya aurait-il un autre moyen de le faire ?
Ce que je veux savoir , c'est si le TiOS ne dispose d'une variable temporaire qui
sauvegarderait la valeur du top_estack avant de copier dans l'estack l'instruction qui lui a été passée. une sorte de last_top_estack.
En fait le prpblème auquel je suis confronté est que , j'ai reécrit next_expression_index
afin de ne supporter que :
-ENTIERS
-FLOAT
-CHAINE
les LISTES et MATRIX contenant ces type de variables étant aussi supportés.
De ce fait, lorsque quelqu'un passe un argument erroné, je diagnostique une erreur.
Mais je n'arrive pas à netoyer l'estack, car je ne peux pas sauter l'argument érronné.
Ce qui pose évident problème, car je ne trouve pas dans la doc de TIGCC quelque chose d'équivalent à last_top_estack.
Je suppose que si cela n'existe pas , il serait possible à un TSR de récupérer cette valeur.
Si quelqu'un a des suggestions, je le remercie d'avance.
Bah selon le contexte tu as peut-être une solution simple, mais.... Heu... Tu fais ça dans quel contexte ? Une librairie, un parseur de paramètres, ... ? Comment un argument erroné peut apparître ? Utilisateur, programme, ... ?
Une librairie : MyLiB.
En fait c'est un genre de Librairie Basic. Je vais bientôt intégrer la gestion des FLOAT.
L'erreur ne peut survenir que parceque l'utilisateur a saisi un argument non supporté.
A terme ,je compte écrire un analyseur de code pour palier à ce problème.
Mais pour le moment cela fonction comme une librairie : en fait comme Vertel.
Tu verras il y aura enfin une Beta aujourd'hui, avec une notice réduite au stricte minimum.
PpHd Le 14/03/2005 à 11:19 >L'erreur ne peut survenir que parceque l'utilisateur a saisi un argument non supporté.
Dans ce cas, tu utilises la version d'AMS de next_expression_index.
Oui c'est un peu chiant , mais je crois aussi qu'il n'y pas moyen de faire autrement.
Par conséquent , je vais faire le fou et autoriser dans la librairie MyLiB l'utilisation des expressions TI-Basic
directement comme arguments. Je passerai la mainn au TIOS chaque fois que la Librairie ne pourras pas traiter un Argument
en utilisant NG_execute ou NG_ratinalESI
ça devrait faire plaisir à tout le monde même si ce projet n'intersse que peu de monde.
Là ou je vais être embêté c'est pour la reconnaissance des variables locales.
Bon faut juste déclarer comme en basic ces variables locales avant de les utiliser dans MyLiB, parceque le TIOS rajoute un TAG à ces variables afin qu'il les recherches dans le répertoire temporaire.
ça va faire une drole de librairie !
Je tente le coup ce soir, sinon une petite beta privé est sortie , à l'heure où je vous parle.
La notice est très imcomplète mais suffisante pour les utilisateur de Vertel.