He visto el archivo y está muy bien. El hecho de tener que designar las variables de una forma predeterminada para que funcione el optimizador... me chirría un poco aunque entiendo el razonamiento
-Poner LET antes de cada declaración de variables ayudaría al optimizador aunque seguimos "forzando" la escritura de código
-Una forma para detectar variables es que a la izquierda de un = suele haber una. Excepciones que se me ocurren:
Arrays: a(3)=x
Funciones definidas: DEF FNa(i,j)=VAL(MID$(b$,i,j))
He probado el Toolkit para concatenar líneas y no lo hace bien. Después de RETURN me mete líneas que, obviamente, nunca se llegaran a ejecutar. Recuerdo de haberlo utilizado anteriormente y funcionar bien. Curioso.
He visto el archivo y está muy bien. El hecho de tener que designar las variables de una forma predeterminada para que funcione el optimizador... me chirría un poco aunque entiendo el razonamiento
Eso es necesario para las constantes pero para las variables no, podrás tener variables como "energiaEnemigo" que luego serán truncadas y no necesitarás declararla de forma predeterminada antes o fuera del código, pero las constantes si es necesario declararlas, no hay otro modo para las constantes me temo.
-Una forma para detectar variables es que a la izquierda de un = suele haber una. Excepciones que se me ocurren:
Arrays: a(3)=x
Funciones definidas: DEF FNa(i,j)=VAL(MID$(b$,i,j))
Esas excepciones... no las estoy controlando, necesitaría un código de ejemplo que haga algo mínimamente para yo poder testearlo y que tras ser optimizado siga funcionando correctamente. Un código de pocas líneas que incluya esos casos más raros pero que deben ser soportados claro.
Ahora mismo también le implementé un renum, los casos que he tenido en cuenta para ser readaptados son:
GOTO xxx
THEN xxx
GOSUB xxx
Esos valores son reasignados a su nuevo número de línea, que yo sepa no hay otros ¿estoy en lo cierto?.