Muchos cambios.

- Estuve como dos horas (o más) intentando hacer que pudieras usar
reglas que se definieran más adelante en el programa, y viendo cómo
sería posible hacer el correspondiente reemplazo.
- Llegué a la conclusión de que el enfoque apestaba.
- Leyendo material me doy cuenta que lo más lógico es construir el
Abstract Syntax Tree que nos quede cómodo. Es más fácil de debuggear,
fácil de ver, seguir las reglas etc.
- Una vez terminado el AST, se puede recorrer para "decidir qué hacer".
Es simple ver que puedo recorrerlo enteramente para encontrar
definiciones y luego releerlo para decidir qué dibujo.

-- Actualmente:
+ Por hoy me voy que no doy más.
+ Hace bien la prioritización del "&" sobre el "|".
+ No reconoce (syntax error) cosas de la pinta: "ball:sx2|box".
+ No prioritiza transformaciones sobre operadores: "ball|box:sx2" lo
entiende como "[ball|box]:sx2".
+ Creo que ambas están asociadas y se resuelven igual, toqueteando un
poco las producciones. Alguno podría amigablemente ocuparse de eso.

+ Mañana sigo.