Salut à tous !
Toujours plongé dans ma quête de traqueur de points nébuleux, j’aborde aujourd’hui un point de détails, le nom des variables temporaires et les éventuels conflits qui peuvent, ou non, en découler.
Là est justement la question : peut-il y avoir des conflits ?
J’ai pour habitude de chercher à donner uniquement des noms différents à toutes mes variables temporaires. J’ai un peu peur qu’une similitude de noms, au moment malheureux où plusieurs règles sont en cours de déroulement, puisse provoquer une confusion de valeur, donc un bug bien vicieux à détecter, ce genre de collision se déroulant en général à cause d’une combinaison involontaire et donc ignorée.
Imaginez par exemple la variable N souvent utilisées dans les boucles qui s’emmêle parce qu’il y a une boucle dans une boucle et que toutes deux utilisent N. Moi, du coup, j’ai des N1, N2, N3… N5584, enfin pas si loin, j’exagère, mais l’idée est là.
Ai-je raison de procéder ainsi ?
Je viens de trouver cet extrait de code dans l’extension des liens hypertextes de Vorple :
To place a/-- link to a/the/-- command (cmd - text) called (classes - text) reading (txt - text), without showing the command:
let silent be false;
if without showing the command:
now silent is true;
let id be unique identifier;
place "a" element called "vorple-link vorple-commandlink link-[id] [classes]" reading txt;
execute JavaScript command "$('a.link-[id]').attr('href', '#').attr('data-command', '[escaped cmd]').attr('data-silent', '[silent]')".
To place a/-- link to a/the/-- command (cmd - text) called (classes - text), without showing the command:
if without showing the command:
place a link to the command cmd called classes reading cmd, without showing the command;
otherwise:
place a link to the command cmd called classes reading cmd.
Cette structure, très pratique pour rendre flexible les définitions, sans pour autant tout recopier, provoque-t-elle une confusion qui, bien sûr dans ce cadre, n’a aucune importance ?
Je cherche juste à piger le principe sous-jacent, comment Inform7 réagit-il quand il croise un nom de variable temporaire encore employé, mais désormais utilisé dans un cadre différent de celui où il a été initialement été déclaré.
Voilà, voilà !