Added return of node_init

main
Øyvind Skaaden 2022-02-21 13:48:13 +01:00
parent fa6c6f3849
commit e8482f39ea
2 changed files with 14 additions and 4 deletions

View File

@ -10,8 +10,16 @@ typedef struct n {
struct n **children;
} node_t;
// Export the initializer function, it is needed by the parser
void node_init (
/**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, ...
);
#endif

View File

@ -73,8 +73,8 @@ print_syntax_tree ( void )
//tree_print(root, 0);
}
void
// Changed so it returns the pointer to the new node, can be used as before, but makes the parser file cleaner
node_t*
node_init (node_t *nd, node_index_t type, void *data, uint64_t n_children, ...)
{
va_list child_list;
@ -89,6 +89,8 @@ node_init (node_t *nd, node_index_t type, void *data, uint64_t n_children, ...)
for ( uint64_t i=0; i<n_children; i++ )
nd->children[i] = va_arg ( child_list, node_t * );
va_end ( child_list );
return nd;
}