jueves, mayo 12, 2005

Semántica del Proyecto ....

Entre los pocos avances que tuve esta semana estan:
- Verificación de #parametros < 4
- Identificación de los siguientes puntos en el chequeo de tipos (expresiones):
1) Si el tipo de cualquiera de los dos operandos es erróneo, entonces el tipo de la expresión es erróneo.
2) En las asignaciones el tipo que se pasa al padre es vacio, que lo he definido como un token mas del lexer.
3) En las comparaciones el tipo es vacio, deberia ser booleano, pero MicroC solo soporta 2 tipos básicos: int, char.
4) En las operaciones suma,resta,multiplicación,divisón los dos operandos deben poseer el mismo tipo y la expresion tendrá ese mismo tipo; pero hay algo que me confunde, la Gramatica permite efectuar todas estas operaciones sobre Constantes char y string. entonces, ¿es permitido realizar algo como: char_constant / char_constant ? creo que no, pero nose como ni donde manejar este caso...
5) Debemos también, en este caso establecer cuando son Obligatorios los Lvalue y Rvalue.
6) Por el momento las expresiones deben acarrear dos atributos: tipo y valor, para mantener la coherencia de las operaciones y poder mostrar en resultado.


- Se me hizo muy dificil mover el manejo de errores a otra clase, estuve colocando algunas de las acciones del analizador semantico, no fue muy bien. Espero avanzar un poco mas este fin.

- Por cierto, estuve pensando un poco en el código de asembler que debemos ejecutar, mas que todo como vamos a correr el código de SPIM en Java?