Parse::RecDescent
.
La gramática de Tutu es como sigue:
program block |
block declarations statements statements |
declarations declaration ';' declarations declaration ';' |
declaration INT idlist STRING idlist |
statements statement ';' statements statement |
statement ID '=' expression P expression '{' block '}' |
expression expression '+' term expression '-' term term |
term term '*' factor term '/' factor factor |
factor '(' expression ')' ID NUM STR |
idlist ID ',' idlist ID |
Las acciones deberán producir el árbol de análisis abstracto o AST. Recicle todo el código que ha escrito para las restantes fases: análisis léxico, semántico, optimización de código, cálculo de direcciones, generación de código y optimización peephole.