Coxeter
Bien que Coxeter
ne soit pas pourvu d'un langage de programmation,
il n'est cependant pas difficile de rajouter au programme quelques commandes
personnelles, pourvu que l'on connaisse la programmation C++. Cela se fait
en éditant le fichier special.cpp, qui est prévu à
cet effet.
La manière la plus simple consiste à éditer la fonction
special_f
, qui par défaut se contente d'imprimer "not
implemented". Le contenu de la fonction est executé, après
recompilation, en tapant la commande special.
Mais il est à peine plus difficile de rajouter des noms de commande
au programme; il suffit pour cela de rajouter une ligne à la fonction
addSpecialCommands
, sur le modè de celle aui définit
la commande special. Il suffit alors de définir la fonction
associée à la commande, et de recompiler, en tapant simplement
make. Bien sûr, tout ceci suppose que vous ayez les droits
d'écriture sur
les fichiers source du programme --- pour ce genre d'utilisation, il vaut
d'ailleurs mieux travailler sur une copie du programme résidant dans
votre répertoire personnel.
Il me faut malheureusement ici faire un aveu embarassant: l'état actuel du code rend l'utilisation sérieuse du programme dans ce mode d'extension beaucoup plus difficile que ce ne devrait être le cas. Le problève est que ce projet a servi pour moi de terrain d'apprentissage pour le C++. Faute de temps ou de courage pour apprendre certaines techniques (telles que l'organisation des entrées-sorties, et les éléments de la STL), j'ai continué à faire mes entrées-sorties en style C, donc avec des FILE* au lieu de streams, et ai essentiellement redéfini un certain nombre de choses qui se trouvent dans la STL --- en particulier mon template List, qui est omniprésent dans le programme, est essentiellement équivalent au vector de la STL. Une raison plus profonde que l'ignorance ou la paresse d'adopter ces types est que, après quelques mésaventures avec le new-système, j'ai décidé de gérer moi-même les allocations-mémoire; par endroits, cela a conduit à une augmentation de vitesse d'un facteur au moins dix! Cet aspect-là aussi est paramétrisable dans la STL, mais c'est encore une chose qui reste pour moi à maîtriser.