Bon, je vais en fait refaire une estack. C'est peut-être pas beau et lourd, j'en sais rien, mais ... je suis pas bon.

Voilà comment ça va être organisé, sur la pile :
Caractères à traiter
#
012345679abcdefABCDEF
%$
+-/*
()
~
<< >>
& |
----------------------------------
Priorités
~
()
<< >>
*/
+-
----------------------------------
EStack
0000 END_STACK
0001 32 bits integer, next there is a 32 bits integer
0002 +
0003 -
0004 *
0005 /
0006 (
0007 )
0008 <<
0009 >>
000A ~
000B |
000C &
000D espace vidé, à ignorer.
----------------------------------
Séparateurs
VIRGULE,SPACE,EOL,EOF,TAB
Un truc me turlupine. Comment différencier proprement :
TRUC(a0), qui est un pointeur vers a0+truc
et
TRUC(a0), qui est le produit de truc par la valeur numérique du symbole a0 ?

Oublié de préciser : une expression peut aussi être _ROM_CALL_xyz ou _RAM_CALL_xyz. MAis pour ça, je sais comment je vais faire je crois.
(en fait, je me rends compte que je vais faire quelque chose qui ressemblait à ce que m'a proposé sasume, non ? Au moins dans la décomposition de mon expression.)