Folco (./3) :
comment fait-il pour ne pas boucler jusqu'à épuisement de la mémoire ?
Mais qui te dit que ce n'est pas le cas ? Tu as essayé ? ^^
Bon OK, sur TI89 c'est probablement pas une bonne idée de laisser un programme épuiser toute la RAM.
Une solution simple est de limiter explicitement le nombre d'inclusions récursives (par exemple, 16 niveaux).
Si le fait d'avoir une limite arbitraire ne te plaît pas, tu peux faire ça :
1) tu crées une liste chaînée
2) quand tu commences à traiter un fichier, tu regardes si le nom complet du fichier est déjà dans la liste
3) si oui, alors il y a une dépendance circulaire -> erreur
4) si non, tu ajoutes le nom complet du fichier à la liste
5) pendant le parsing du fichier, pour chaque include, tu reprends récursivement au point 2 avec le fichier inclus (sans effacer la liste)
6) une fois le parsing terminé, tu effaces le fichier de la liste