Scompiler is a project mainly written in C++ and ASSEMBLY, it's free.
A compiler for the S language (really a translator to C, paired with gcc)
Viene con varias macros básicas para usar (ubicadas en s_source/simple):
Y algunos ejemplos (ubicados en s_source):
###############################
Los archivos .s son de la forma:
// valen los comentarios con doble barra
X4 <- X4 + 1 // upper o lower case X1000 <- X1000 - 1
[G54] Z4 <- Z4 + 1 [A1] [w5000] if X1000 != 0 goto [G54] if Y != 0 goto [w5000]
// uso de macros: x1 <- mi_macro( 5, 8, Y, Z4, x1, mi_macro2( ) )
// se pueden pasar los parámetros que se quieran if mi_macro( mi_macro2( 5 ) ) != 0 goto [f123]
// los macros se pueden usar solo en asignaciones e ifs
// busca automáticamente los archivos en la carpeta s_source, y en // s_source/basic
// para usar archivos de macros en otras carpetas hay // 2 opciones: // modificar el código del compilador (agregarle a la variable dirs // ";mi_carpeta;" ) // o hacer:
x1 <- mi_carpeta/mi_macro( 1, 2, mi_otra_carpeta/mi_macro2() )
###############################
También se pueden usar las siguientes extensiones
{X4} ó {Y} - hace un printf de la variable cada vez que pasa por ese lugar {wait} - espera a que apretes una tecla para continuar (getchar();) {debug} - cada vez que entra a un macro hace un printf avisando en qué macro está. Puede estar en cualquier parte del código {inline} - hace que la función sea inline en C (para eficiencia en funciones chicas y muy usadas)