Ahora que conocemos la sintaxis, sabemos qué tipos de celdas necesitamos para almacenar el código. De hecho, cada tipo de nodo del AST tendrá que ser una celda así que tenemos los siguientes tipos de celdas por ahora:
enum CELL_TYPE { UNUSED, //Literals EMPTY_LIT, INT_LIT, STRING_LIT, //Value constructors //Code constructors NAME_CODE, COMBINE_CODE, //Value and code constructors CONS_CTOR };
Finalmente debemos saber cuáles van a ser los resultados de nuestras evaluaciones. Aparte de los literales, usaremos tres valores.
- Los booleanos.
- Las funciones definidas por el usuario (lambda).
- Las funciones predefinidas (nativas).
enum CELL_TYPE { UNUSED, //Literals EMPTY_LIT, INT_LIT, STRING_LIT, //Value constructors LAMBDA_VAL, NATIVE_VAL, ENVIR_VAL, BOOL_VAL, //Code constructors NAME_CODE, COMBINE_CODE, //Value and code constructors CONS_CTOR };
Ahora nos queda por saber qué información requiere cada tipo de celda y cómo vamos a almacenarla.
0 comentarios:
Publicar un comentario