[Lux] Sintaxis

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
Aunque también tiene algunas simplificaciones.
  • POO
  • Librería estándar (listas, vectores, mapas, matemática...)
Será un lenguaje extensible a través de una API escrita en C.

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: