[HELP] Portage de Golem sur Nspire
Posté: 28 Sep 2019, 13:19
Bonjour,
Je ne sais pas si vous avez vu, mais j'ai fait un portage d'un interpréteur/compilateur de Golem sur Nspire, disponible ici.
Je suis actuellement en train de l'améliorer, et je rencontre un problème vraiment bizarre.
Dans le fichier neuron.gs, à la fin, ces quelques lignes ne marchent pas comme il faudrait:
C'est à dire que le
En faisant quelques tests sur les implémentations des fonctions
C'est donc la ligne
Mais je ne comprends pas pourquoi cela ne marcherait pas avec
Comment le
Le code complet est disponible sur github : https://github.com/Ti64CLi/golem-nspire
En espérant que quelqu'un puisse m'aider,
Ti64CLi++
Je ne sais pas si vous avez vu, mais j'ai fait un portage d'un interpréteur/compilateur de Golem sur Nspire, disponible ici.
Je suis actuellement en train de l'améliorer, et je rencontre un problème vraiment bizarre.
Dans le fichier neuron.gs, à la fin, ces quelques lignes ne marchent pas comme il faudrait:
- Code: Tout sélectionner
println("Enter two values:")
print("V1: ")
let v1 = parseFloat(getline())
print("V2: ")
let v2 = parseFloat(getline())
C'est à dire que le
print("V1: ")
est affiché après l'exécution des getline()
, de même pour le print("V2: ")
.En faisant quelques tests sur les implémentations des fonctions
print(
et println(
, j'ai remarqué qu'en remplaçant le print
par un println
, cela s'affichait bien dans l'ordre.C'est donc la ligne
putchar('\n');
qui fait que le texte s'affiche avant ou pas, dans le fichier corelib.c:- Code: Tout sélectionner
void core_print(vm_t* vm) {
val_print(vm_pop(vm));
vm_push(vm, NULL_VAL);
}
void core_println(vm_t* vm) {
val_print(vm_pop(vm));
putchar('\n');
vm_push(vm, NULL_VAL);
}
Mais je ne comprends pas pourquoi cela ne marcherait pas avec
print
alors que ça marche avec println
.Comment le
putchar('\n');
conditionne l'affichage direct ou non avec val_print?Le code complet est disponible sur github : https://github.com/Ti64CLi/golem-nspire
En espérant que quelqu'un puisse m'aider,
Ti64CLi++