Ante todo presentarme. Me llamo Jose, aunque uso el pseudo Boriel (cosas del Rol). Suelo leer mucho este foro (y el grupo de news). Pero suelo escribir poco (cosas de la timidez y la falta de tiempo).

El caso es que he hecho una herramienta para crear compiladores (si alguien conoce LEX y YACC -fLEX y Bison en Linux), pues algo así. Y para probarlo, se me ha ocurrido hacer un analizador sintáctico al que se le meta un código fuente de BASIC de ZX Spectrum y escupa el ASM ya generado.
El caso es que de ZX Spectrum BASIC ya no me acuerdo mucho (estoy tirando del emulador, para ver algunas cosas). De momento estoy definiendo lo básico (nunca mejor dicho

También comentar que, dado mi escaso tiempo (estoy haciendo doctorado en la universidad, y trabajando, así que...) casi no puedo hacer nada. El generador de compiladores me ha llevado 6 meses (en los que apenas he dedicado un par de horas a la semana). Así que esto es a largo plazo.
Saludos,
Jose
http://www.boriel.com
PD: También comentar que he encontrado un bug en el intérprete de BASIC del ZX. En matemáticas, el operador de potencia (^) es asociativo por la derecha, o sea que 2^1^3 se evalúa como 2^(1^3) = 1. En cambio en el ZX se evalúa de izquierda a derecha, por lo que 2^1^3 = (2^1)^3 = 8. Supongo que habrá que tenerlo en cuenta, para compatibilidad (también es verdad que dada la limitada memoria, es lógico que se evalúe así).