Lines Matching refs:macro
54 struct cil_tree_node *macro;
5247 struct cil_macro *macro = NULL;
5268 cil_macro_init(¯o);
5289 if (macro->params == NULL) {
5290 cil_list_init(¯o->params, CIL_LIST_ITEM);
5341 cil_list_for_each(curr_param, macro->params) {
5349 cil_list_append(macro->params, CIL_PARAM, param);
5354 /* we don't want the tree walker to walk the macro parameters (they were just handled above), so the subtree is deleted, and the next pointer of the
5355 node containing the macro name is updated to point to the start of the macro content */
5360 /* No statements in macro and macro parameter list was last node */
5364 rc = cil_gen_node(db, ast_node, (struct cil_symtab_datum*)macro, (hashtab_key_t)key, CIL_SYM_BLOCKS, CIL_MACRO);
5372 cil_tree_log(parse_current, CIL_ERR, "Bad macro declaration");
5373 cil_destroy_macro(macro);
5378 void cil_destroy_macro(struct cil_macro *macro)
5380 if (macro == NULL) {
5384 cil_symtab_datum_destroy(¯o->datum);
5385 cil_symtab_array_destroy(macro->symtab);
5387 if (macro->params != NULL) {
5388 cil_list_destroy(¯o->params, 1);
5391 free(macro);
5430 cil_tree_log(parse_current, CIL_ERR, "Bad macro call");
5441 call->macro = NULL;
6192 if (args->macro != NULL) {
6199 cil_tree_log(parse_current, CIL_ERR, "%s is not allowed in macro", (char *)parse_current->data);
6536 args->macro = ast;
6566 args->macro = NULL;
6609 extra_args.macro = NULL;