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