Oooh. J'ai explosé la mise en page avec mon bloc pre de
./11. Je vais éditer ça...
G++/GCC est passé d'un parser auto-généré à un parser fait à la main, pour plus d'efficacité.
ReadLine:
cmpi.b #0x0d,(%a3) |EOL ?
bne.s NoNewline |no
addq.l #1,%a3 |else get next char
addq.w #1,%d4 |update line counter
bra.s ReadLine |and loop
NoNewline:
Si ReadLine est (et c'est probable) un label de début de fonction,

NewLine:
addq.l #1,%a3 | get next char
addq.w #1,%d4 |update line counter
ReadLine:
cmpi.b #0x0d,(%a3) |EOL ?
beq.s Newline |no
NoNewline:

GCC peut faire des optimisations de ce genre. Mais l'optimisation prématurée, c'est assez mal ^^
J'ai entendu dire à plusieurs reprises, par des gens qui aiment bien ces langages, que les capacités de "pattern matching" et de représentation arborescente "transparente" de certains langages type ML les rendent bien adaptés à du parsing. Mais je ne connais pas assez ces langages pour avoir une idée là-dessus
