FarewellLe 21/10/2010 à 17:55
Tiens, question de concept du parser :
Immaginons que j'ai une ligne de code asm :
move.w #$12AB%01010,d0
En passant sur les détails de la coloration du move et du d0, si on regarde "l'entier", il est évidemment invalide.
Seulement, le parseur va y voir un nombre hexa valide (et le colorer en tant que tel), puis le '%' (donc l'état "hexa" sera droppé), puis comme '%' est un indicateur de nombre binaire, il va entrer dans l'état "binaire". On aura donc réussi à colorer cet truc "$12AB%01010", alors qu'en soi ça n'a aucun sens.
Est-ce au boulot du parser d'analyser le code pour se dire "tiens, il y a bien des nombres, mais à la suite comme ça c'est pas normal. Donc je droppe la coloration pour le nombre binaire, et tant qu'à faire pour "ce qu'il y a avant" (c'est possible de lui dire ça).
Ou est-ce que le parser doit être bête : "un nombre hexa ? je le colore. Un nombre binaire ? Pas de souci, je colore aussi" ?
Parce qu'en soi, il est certainement possible de faire le parser "parfait" qui ne colore que le code valide (en faisant l'analyse que ferait un assembleur en fait), mais c'est beaucoup plus lourd évidemment.