instruction_list * isl_ast_to_noclock_ast (isl_ast_node * ast) { enum isl_ast_node_type t = isl_ast_node_get_type (ast); instruction_list * list = NULL; switch (t) { case isl_ast_node_for: list = isl_for_to_noclock (ast); break; case isl_ast_node_if: list = isl_if_to_noclock (ast); break; case isl_ast_node_block: list = isl_block_to_noclock (ast); break; case isl_ast_node_user: list = isl_user_to_noclock (ast); break; default: fdebug (stderr, "isl_ast_to_noclock_ast(): " "Unexpected node_type: %u\n", t); break; } return list; }
void cpp_from_isl::process_node(isl_ast_node *node) { auto type = isl_ast_node_get_type(node); switch(type) { case isl_ast_node_for: process_for(node); break; case isl_ast_node_if: process_if(node); break; case isl_ast_node_block: process_block(node); break; case isl_ast_node_user: process_user(node); break; case isl_ast_node_mark: { // TODO: label the stmt? auto marked_node = isl_ast_node_mark_get_node(node); process_node(marked_node); isl_ast_node_free(marked_node); break; } default: throw error("Unexpected AST node type."); } }