#ifndef IR_H #define IR_H /* This is the tree node structure */ typedef struct n { node_index_t type; void *data; struct s *entry; uint64_t n_children; struct n **children; } node_t; /**Export the initializer function, it is needed by the parser * @param *nd node to initialize * @param type type of node (see nodetype.h) * @param *data associated data. Declared void to allow any type * @param n_children number of children * @param ... variable argument list of child nodes (node_t *) * * @return Pointer to the initialized node * */ node_t* node_init ( node_t* nd, node_index_t type, void* data, uint64_t n_children, ... ); typedef enum { SYM_GLOBAL_VAR, SYM_FUNCTION, SYM_PARAMETER, SYM_LOCAL_VAR } symtype_t; typedef struct s { char *name; symtype_t type; node_t *node; size_t seq; size_t nparms; tlhash_t *locals; } symbol_t; #endif