Mensajes de Error
En 01c1edf9 se corrigieron algunos mensajes de error para que el parser pueda dar información más descriptiva sobre alguna posible falla a la hora de compilar. De todas formas queda pendiente corregir los mensajes de error de las siguientes construcciones:
- Funciones: Implementadas con try debido a que usan los mismos identificadores que las locations.
parseString "f(end)"
*** Exception: "<stdin>" (line 1, column 2):
unexpected '('
expecting rest of identifier, operator or end of input
- Procedimientos: Implementados con try debido a que usan los mismos identificadores que las locations.
parseString "s(if)"
*** Exception: "<stdin>" (line 1, column 2):
unexpected "("
expecting rest of identifier or assign operator :=
- Alloc / Free: Necesitamos un mejor mensaje de error.
parseString "free()"
*** Exception: "<stdin>" (line 1, column 6):
unexpected ")"
expecting variable
- Keywords: Necesitamos modificar los mensajes de error en base a si un identificador es esperable o no.
parseString "if true then"
*** Exception: "<stdin>" (line 1, column 13):
unexpected end of input
expecting rest of identifier or statement block