yop,
C'est pas un secret, je code un assembleur on-calc sur 89/92. J'en suis à faire le parseur de source, qui crée en une passe les fichiers object (un par source... normal ^^). Le linker viendra après.
J'y arrive, mais j'ai vraiment l'impression d'écrire un algo lourd, qui se traduit par un code volumineux, et répétitif pour les différents mots que je peux rencontrer (macro, commandes [.xdef, .include, .word etc...], instructions, labels etc...).
En gros, quand je tombe sur un ".xdef", je regarde si le mot qui vient après peut être un label valide, du point de vue de sa composition : d'abord une lettre, un underscore ou un antislash, puis une combinaison de lettres, underscores et points. Ca m'oblige, pour chaque fonction rencontrée, à réécrire la détection des lettres etc..., même si j'ai quelques fonctions (CheckAlpha, CheckNum etc...).
N'y a-t-il pas une approche radicalement différente, plus efficace en termes de clarté d'algorithme et de concision du code ? Parce que bonsoir le débogage d'un parseur tel que je suis en train de l'écrire. Et encore, je n'ai pas attaqué le décodage des instructions (genre move.l #ABCD,(%a0)+), ça va donner par la suite.
Il y a des algos spécialisés dans ce domaine j'imagine ? Ca doit être connu et archi-connu j'imagine, mais je ne sais pas quel mots chercher pour bûcher sur ce type d'algo. Bien sûr, vos avis persos sont les bienvenus.
Merci d'avance.
