Para acceder a la documentación online, generada con docmd, dirigirse a:
Documentación del Compilador C-TDS
main: Versión estable del compilador.parser: Versión terminal del parser.analizador-semantico: Versión terminal del analizador semantico.codigo-intermedio: Versión terminal del generador de código intermedio.assembly: Versión terminal del generador de código ensamblador.optimizations: Versión terminal con optimizaciones implementadas.
Para compilar el compilador:
makeEsto genera el ejecutable c-tds.
c-tds [opcion] nombreArchivo.ctds-o <salida>: Renombra el archivo ejecutable a<salida>-target <etapa>: Compila hasta la etapa especificadascan: Análisis léxico (genera.lex)parse: Análisis sintáctico (genera.sint)codinter: Código intermedio (genera.ci)assembly: Ensamblador (genera.ass)
-opt [optimización]: Realiza optimizaciones sobre el código intermedio (TAC)constant-propagation: Propagación de constantes y constant foldingdead-code: Eliminación de código muerto (no implementado)pattern-matching: Búqueda de patrones en expresiones aritmeticasall: Aplica todas las optimizaciones disponibles
-debug: Imprime información de debugging. Si la opción no es dada, cuando la compilación es exitosa no se imprime ninguna salida
Compilar hasta análisis sintáctico (comportamiento por defecto):
./c-tds programa.ctdsCompilar con información de debugging:
./c-tds -debug programa.ctdsCompilar hasta la etapa de análisis léxico:
./c-tds -target scan programa.ctdsEspecificar nombre de salida:
./c-tds -o mi_programa programa.ctdsCombinar múltiples opciones:
./c-tds -target assembly -o programa.asm -opt all -debug programa.ctdsAplicar optimización de propagación de constantes:
./c-tds -opt constant-propagation programa.ctdsGenerar código intermedio optimizado:
./c-tds -target codinter -opt constant-propagation -debug programa.ctdsPara ejecutar tests usando el Makefile:
make test-correct # Test sintácticamente correcto
make test-incorrect # Test sintácticamente incorrecto
make test # Ambos testsPara ejecutar con archivo personalizado:
make run FILE=mi_archivo.txtPara limpiar archivos generados:
make clean- El archivo de entrada debe tener extensión
.ctds. - El nombre del archivo no puede comenzar con
-. - Por defecto, sin especificar
-target, la compilación procede hasta la etapa corriente. - Sin
-o, el archivo de salida tiene el nombre base del archivo de entrada con extensión según la etapa (.outpor defecto). - Sin
-debug, cuando la compilación es exitosa no se imprime el AST ni la tabla de símbolos.