Skip to content

LyndsCorp/Infernal

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

49 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Infernal

Infernal es un lenguaje de programación cuyo intérprete está escrito en C. Combina ideas de Lua, Bash y Python:

  • Lua: súper fácil crear bloques.
  • Bash: súper fácil ejecutar comandos del shell.
  • Python: súper fácil importar librerías.

Si necesitas documentación, entra a: https://github.com/LyndsCorp/Infernal-Documentation

Para compilar el intérprete, solo tienes que poner en la terminal:

make

Y ya se crea el intérprete como el archivo llamado infernal. Puedes borrar la carpeta build después de compilarlo; solo se utiliza durante la compilación.

Desarrollo

Infernal se desarrolla y prueba en sistemas POSIX con make, un compilador C11 y las APIs GNU/POSIX usadas por el intérprete. Ejecuta make test para la batería de regresión y make sanitize para compilar y ejecutar pruebas con AddressSanitizer y UndefinedBehaviorSanitizer.

Cómo personalizar/adaptar el intérprete

Personalizar el intérprete adaptándolo a tu aplicación es sencillo. En la carpeta llamada config tienes todas las configuraciones.

config/
└── infernal/
    ├── bins/
    │   └── ALGO
    └── fire/
        └── ALGO-lib.fire

En bins se encuentran los binarios embebidos en el intérprete de Infernal. Resulta muy útil cuando no puedes implementar algo con Infernal puro y necesitas hacerlo en C o en cualquier lenguaje de programación (se pueden meter scripts). En fire se encuentran las librerías .fire. Estas contienen funciones escritas en Infernal. En un script en Infernal, se llaman así:

import ALGO-lib

ALGO-lib.funcion()

Igual que en Python, básicamente. El archivo .fire debe tener un nombre distinto al del bin, por eso en el ejemplo usé ALGO-lib.fire.

Lo de embeber binarios sirve principalmente para esto:

# Ejemplo de una librería .fire

function funcion()
    !ALGO! # Como usa estos signos de exclamación, ejecuta el binario embebido.
fi

About

Un lenguaje de programación escrito en C. Es fácil y es como una fusión de Lua + Bash + Python

Topics

Resources

License

Stars

1 star

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors