Buenas!
Acabo de subir al área de ficheros la nueva versión JPreter. Las
novedades son:
Soporte de la directiva @LINE
Soporte de macros con parámetros
@MACRO TEST {0}+{1}
PRINT @TEST(1,3)
Os pongo aquí la escasa documentación que por ahora he hecho....
JPreter v0.1alpha by Tin Whistle Software. 2005
===============================================
JPreter es una clase Java que toma como fuente un programa BASIC en formato
texto y genera un fichero de texto con ese programa BASIC, comprimiendo su
tamaño para ocupar el mínimo espacio posible en memoria.
Esto no es ningún invento nuevo. Existe un programa MSX-DOS, creado por
Nestor Soriano (nestorpreter), que realiza esta tarea. La idea es hacer
esto
mismo en cualquier máquina, para pasar finalmente el programa
"comprimido" a
un MSX.
JPreter permite:
* Editar los programas BASIC sin incluir los números de línea.
* Utilizar tabulaciones e la hora de escribir programas
* Eliminar comentarios en el programa a cargar. (Pueden usarse las
directivas @REMOFF y @REMON de nestorpreter.
* Utilizar el caracter ' como comentario al principio de una línea.
* Utilizar etiquetas (con la misma nomenclatura que nestorperter).
Soporta:
- Etiquetas de tipo ~XXXX
- Etiquetas de tipo ~XXXX:
- Etiquetas de tipo ~~
* Utilizar macros (con la misma nomenclatura que nestorpreter)
* Utilizar macros anidadas
* Cuando una línea comienza por el carácter ~, la siguiente línea
no se concatenará con la actual (se fuerza la creación de una nueva
línea basic). Igual que nestorpreter.
* Utilizar la directiva @LINE de nestorpreter:
@LINE [nuevoNumeroDeLinea],[nuevoIncrementoDeLinea]
* Soporte de macros con parámetros:
@MACRO TEST {0}+{1}
...
PRINT @TEST(6,8)
Resultado: 14
Los parámetros recibidos se sustituirán por {0} {1} {...}
Un añadido respecto a nestorpreter es la posibilidad de usar la instrucción
endif para cerrar las instrucciones if-else. Ejemplo:
IF I=3 THEN
I=I+1
ENDIF
IF I=3 THEN
I=I+1
ELSE
I=I-1
ENDIF
Otro añadido importante es la posibilidad de hacer "includes", es decir,
a partir de la instrucción @INCLUDE XXXXX includir el contenido del fichero
XXXXX en el fichero que estamos procesando. La ruta del fichero XXXX será
relativa al fichero que estamos procesando. Por ejemplo, si estamos
procesando el fichero c:\msx\test.asc, y queremos incluir el contenido del
fichero c:\msx\includes\include.asc, tendremos que incluir la siguiente
línea
en test.asc:
@INCLUDE includes\include.asc
Para procesar un fichero, utilizar los scripts .bat y .sh incluídos en la
distribución. Los parámetros que acepta son:
-IN FICHERO_ENTRADA: fichero a procesar
-OUT FICHERO_SALIDA: fichero destino (si no se informa, será el
de entrada con extensión .bas)
-verbose: si se informa, saca información sobre el
proceso
-showRate: si se informa, saca información sobre el
ratio de "compresión"
-toConsole: si se informa, saca el programa resultante
por consola
-?: muestra la ayuda.
El único parámetro obligatorio es -IN
Estoy trabajando en una documentación un poco más exhaustiva, así que por
el momento tendréis que conformaros con esta... :-)
Para cualquier duda, sugerencia, petición etc.... no dudéis en contactar
conmigo en fifeton(_en_)hotmail(_punto_)com