Page 1 sur 1

fonction sommet() sur une chaine

Publié : jeu. mai 22, 2014 6:42 am
par cdeval
Bonjour,
j'aimerais détecter qu'une opération est une affectation.
Je sais faire en tapant

Code : Tout sélectionner

sommet('a:=1')
qui renvoie 'sto'. Mais mon instruction est dans une chaine :

Code : Tout sélectionner

ins:="a:=1"
et, même en jouant avec expr, quote, execute je n'arrive pas à sortir 'sto' de la variable ins.
Y a-t-il un moyen ?

Re: fonction sommet() sur une chaine

Publié : jeu. mai 22, 2014 6:56 am
par parisse
Je vais rajouter une option quote a expr pour que la chaine parsee ne soit pas evaluee.

Re: fonction sommet() sur une chaine

Publié : jeu. mai 22, 2014 7:14 am
par cdeval
ok merci. Ce sera dans la prochaine mise à jour ?

Re: fonction sommet() sur une chaine

Publié : jeu. mai 22, 2014 11:02 am
par parisse
Voila, mise a jour faite.

Re: fonction sommet() sur une chaine

Publié : jeu. mai 22, 2014 2:34 pm
par cdeval
Merci pour la maj, plus de problème avec (un)archive.
parisse a écrit :Je vais rajouter une option quote a expr pour que la chaine parsee ne soit pas evaluee.
Je n'ai pas réussi, quelle est la syntaxe de cette option ? Je voudrais que sommet de "a:=1" renvoie 'sto'

Re: fonction sommet() sur une chaine

Publié : jeu. mai 22, 2014 3:38 pm
par parisse

Code : Tout sélectionner

expr("a:=1",quote)
renvoie a:=1 sans l'évaluer.

Re: fonction sommet() sur une chaine

Publié : jeu. mai 22, 2014 4:20 pm
par cdeval
Ah oui. J'ai été induit en erreur par le retour qui ne vaut pas a:=1 mais 1, je pensais que l'expression avait été évaluée. Ça marche si je compose avec sommet.
Sélection_012.jpeg
Sélection_012.jpeg (20.73 Kio) Consulté 10531 fois
Merci encore.

Re: fonction sommet() sur une chaine

Publié : jeu. mai 22, 2014 4:40 pm
par parisse
En fait il semble y avoir une évaluation supplémentaire un peu parasite dans Xcas, il vaut mieux tester avec icas en ligne de commande.

Re: fonction sommet() sur une chaine

Publié : jeu. mai 22, 2014 6:18 pm
par cdeval
effectivement, ça marche au poil en ligne de commande.