La sintaxis de Lux no busca ser compleja, es muy parecida (por no decir igual) a la sintaxis de C. Lo que lo diferencia de otros lenguajes de guiones es:
- Tipos diferenciados
- Memoria dinámica
- Punteros
- POO
- Librería estándar (listas, vectores, mapas, matemática...)
Un guión de ¡Hola mundo! en Lux
#print '¡Hola mundo!';
Y algo mas complejo (manejo de archivos), este ejemplo lo que hará es escribir "Test" en un archivo llamado "test".
file_t file = file_t.Open("test", APPEND);
file.Write("Test");
El programa escrito en Lux (llamado por el intérprete), puede recibir parámetros, para eso, el comienzo del guión está en la función _start, que recibe un parámetro, que es una lista de 'string'. Un ejemplo, donde el intérprete recibiría el nombre del archivo a renombrar, y el nuevo nombre.
int8_t _start(Lux.List<string> argv)
{
if(argv.Size() != 2)
{
#print "Error, número invalido de parámetros (deben ser 2)";
return -1;
/* Indica al intérprete que ha habido un error, para que se cierre el script,
active el recolector de basuras y remueva todo lo que hemos creado */
}
file_t file = file_t.Open(argv.Index(0), WRITE);
file.Rename(argv.Index(1));
file.Close();
return 0; // El programa sale correctamente
}
En la entrada del intérprete deberíamos poner:
lux script.lux --params="file.old;file.renamed"
Esta es la estructura pensada para el lenguaje, no cambiará hasta la primera revisión (que espero tenerla lo antes posible).
0 comentarios:
Publicar un comentario