1cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* Lists of symbols for Bison 2cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 305436638acc7c010349a69c3395f1a57c642dc62Ying Wang Copyright (C) 2002, 2005-2007, 2009-2012 Free Software Foundation, 405436638acc7c010349a69c3395f1a57c642dc62Ying Wang Inc. 5cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 6cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project This file is part of Bison, the GNU Compiler Compiler. 7cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 805436638acc7c010349a69c3395f1a57c642dc62Ying Wang This program is free software: you can redistribute it and/or modify 9cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project it under the terms of the GNU General Public License as published by 1005436638acc7c010349a69c3395f1a57c642dc62Ying Wang the Free Software Foundation, either version 3 of the License, or 1105436638acc7c010349a69c3395f1a57c642dc62Ying Wang (at your option) any later version. 12cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 1305436638acc7c010349a69c3395f1a57c642dc62Ying Wang This program is distributed in the hope that it will be useful, 14cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project but WITHOUT ANY WARRANTY; without even the implied warranty of 15cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project GNU General Public License for more details. 17cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 18cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project You should have received a copy of the GNU General Public License 1905436638acc7c010349a69c3395f1a57c642dc62Ying Wang along with this program. If not, see <http://www.gnu.org/licenses/>. */ 20cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 21cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#include <config.h> 22cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#include "system.h" 23cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 24cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#include "complain.h" 25cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#include "symlist.h" 26cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 27cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 28cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/*--------------------------------------. 29cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project| Create a list containing SYM at LOC. | 30cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project`--------------------------------------*/ 31cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 32cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectsymbol_list * 3305436638acc7c010349a69c3395f1a57c642dc62Ying Wangsymbol_list_sym_new (symbol *sym, location loc) 34cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project{ 35cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project symbol_list *res = xmalloc (sizeof *res); 36cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 3705436638acc7c010349a69c3395f1a57c642dc62Ying Wang res->content_type = SYMLIST_SYMBOL; 3805436638acc7c010349a69c3395f1a57c642dc62Ying Wang res->content.sym = sym; 3905436638acc7c010349a69c3395f1a57c642dc62Ying Wang res->location = res->sym_loc = loc; 40cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 41cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project res->midrule = NULL; 4205436638acc7c010349a69c3395f1a57c642dc62Ying Wang res->midrule_parent_rule = NULL; 4305436638acc7c010349a69c3395f1a57c642dc62Ying Wang res->midrule_parent_rhs_index = 0; 44cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 4505436638acc7c010349a69c3395f1a57c642dc62Ying Wang code_props_none_init (&res->action_props); 46cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 47cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project res->ruleprec = NULL; 48cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project res->dprec = 0; 49cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project res->merger = 0; 50cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 5105436638acc7c010349a69c3395f1a57c642dc62Ying Wang res->named_ref = NULL; 5205436638acc7c010349a69c3395f1a57c642dc62Ying Wang 5305436638acc7c010349a69c3395f1a57c642dc62Ying Wang res->next = NULL; 5405436638acc7c010349a69c3395f1a57c642dc62Ying Wang 5505436638acc7c010349a69c3395f1a57c642dc62Ying Wang return res; 5605436638acc7c010349a69c3395f1a57c642dc62Ying Wang} 5705436638acc7c010349a69c3395f1a57c642dc62Ying Wang 5805436638acc7c010349a69c3395f1a57c642dc62Ying Wang 5905436638acc7c010349a69c3395f1a57c642dc62Ying Wang/*--------------------------------------------. 6005436638acc7c010349a69c3395f1a57c642dc62Ying Wang| Create a list containing TYPE_NAME at LOC. | 6105436638acc7c010349a69c3395f1a57c642dc62Ying Wang`--------------------------------------------*/ 6205436638acc7c010349a69c3395f1a57c642dc62Ying Wang 6305436638acc7c010349a69c3395f1a57c642dc62Ying Wangsymbol_list * 6405436638acc7c010349a69c3395f1a57c642dc62Ying Wangsymbol_list_type_new (uniqstr type_name, location loc) 6505436638acc7c010349a69c3395f1a57c642dc62Ying Wang{ 6605436638acc7c010349a69c3395f1a57c642dc62Ying Wang symbol_list *res = xmalloc (sizeof *res); 6705436638acc7c010349a69c3395f1a57c642dc62Ying Wang 6805436638acc7c010349a69c3395f1a57c642dc62Ying Wang res->content_type = SYMLIST_TYPE; 6905436638acc7c010349a69c3395f1a57c642dc62Ying Wang res->content.type_name = type_name; 7005436638acc7c010349a69c3395f1a57c642dc62Ying Wang res->location = res->sym_loc = loc; 7105436638acc7c010349a69c3395f1a57c642dc62Ying Wang res->named_ref = NULL; 7205436638acc7c010349a69c3395f1a57c642dc62Ying Wang res->next = NULL; 7305436638acc7c010349a69c3395f1a57c642dc62Ying Wang 7405436638acc7c010349a69c3395f1a57c642dc62Ying Wang return res; 7505436638acc7c010349a69c3395f1a57c642dc62Ying Wang} 7605436638acc7c010349a69c3395f1a57c642dc62Ying Wang 7705436638acc7c010349a69c3395f1a57c642dc62Ying Wang 7805436638acc7c010349a69c3395f1a57c642dc62Ying Wang/*----------------------------------------. 7905436638acc7c010349a69c3395f1a57c642dc62Ying Wang| Create a list containing a <*> at LOC. | 8005436638acc7c010349a69c3395f1a57c642dc62Ying Wang`----------------------------------------*/ 8105436638acc7c010349a69c3395f1a57c642dc62Ying Wang 8205436638acc7c010349a69c3395f1a57c642dc62Ying Wangsymbol_list * 8305436638acc7c010349a69c3395f1a57c642dc62Ying Wangsymbol_list_default_tagged_new (location loc) 8405436638acc7c010349a69c3395f1a57c642dc62Ying Wang{ 8505436638acc7c010349a69c3395f1a57c642dc62Ying Wang symbol_list *res = xmalloc (sizeof *res); 8605436638acc7c010349a69c3395f1a57c642dc62Ying Wang 8705436638acc7c010349a69c3395f1a57c642dc62Ying Wang res->content_type = SYMLIST_DEFAULT_TAGGED; 8805436638acc7c010349a69c3395f1a57c642dc62Ying Wang res->location = res->sym_loc = loc; 8905436638acc7c010349a69c3395f1a57c642dc62Ying Wang res->named_ref = NULL; 90cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project res->next = NULL; 91cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 92cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project return res; 93cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project} 94cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 95cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 9605436638acc7c010349a69c3395f1a57c642dc62Ying Wang/*---------------------------------------. 9705436638acc7c010349a69c3395f1a57c642dc62Ying Wang| Create a list containing a <> at LOC. | 9805436638acc7c010349a69c3395f1a57c642dc62Ying Wang`---------------------------------------*/ 9905436638acc7c010349a69c3395f1a57c642dc62Ying Wang 10005436638acc7c010349a69c3395f1a57c642dc62Ying Wangsymbol_list * 10105436638acc7c010349a69c3395f1a57c642dc62Ying Wangsymbol_list_default_tagless_new (location loc) 10205436638acc7c010349a69c3395f1a57c642dc62Ying Wang{ 10305436638acc7c010349a69c3395f1a57c642dc62Ying Wang symbol_list *res = xmalloc (sizeof *res); 10405436638acc7c010349a69c3395f1a57c642dc62Ying Wang 10505436638acc7c010349a69c3395f1a57c642dc62Ying Wang res->content_type = SYMLIST_DEFAULT_TAGLESS; 10605436638acc7c010349a69c3395f1a57c642dc62Ying Wang res->location = res->sym_loc = loc; 10705436638acc7c010349a69c3395f1a57c642dc62Ying Wang res->named_ref = NULL; 10805436638acc7c010349a69c3395f1a57c642dc62Ying Wang res->next = NULL; 10905436638acc7c010349a69c3395f1a57c642dc62Ying Wang 11005436638acc7c010349a69c3395f1a57c642dc62Ying Wang return res; 11105436638acc7c010349a69c3395f1a57c642dc62Ying Wang} 11205436638acc7c010349a69c3395f1a57c642dc62Ying Wang 11305436638acc7c010349a69c3395f1a57c642dc62Ying Wang 11405436638acc7c010349a69c3395f1a57c642dc62Ying Wang/*-----------------------------------------------------------------------. 11505436638acc7c010349a69c3395f1a57c642dc62Ying Wang| Print this list, for which every content_type must be SYMLIST_SYMBOL. | 11605436638acc7c010349a69c3395f1a57c642dc62Ying Wang`-----------------------------------------------------------------------*/ 117cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 118cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectvoid 11905436638acc7c010349a69c3395f1a57c642dc62Ying Wangsymbol_list_syms_print (const symbol_list *l, FILE *f) 120cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project{ 12105436638acc7c010349a69c3395f1a57c642dc62Ying Wang for (/* Nothing. */; l && l->content.sym; l = l->next) 122cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project { 12305436638acc7c010349a69c3395f1a57c642dc62Ying Wang symbol_print (l->content.sym, f); 12405436638acc7c010349a69c3395f1a57c642dc62Ying Wang fprintf (stderr, l->action_props.is_value_used ? " used" : " unused"); 12505436638acc7c010349a69c3395f1a57c642dc62Ying Wang if (l && l->content.sym) 126cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project fprintf (f, ", "); 127cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project } 128cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project} 129cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 130cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 13105436638acc7c010349a69c3395f1a57c642dc62Ying Wang/*---------------------------. 13205436638acc7c010349a69c3395f1a57c642dc62Ying Wang| Prepend NODE to the LIST. | 13305436638acc7c010349a69c3395f1a57c642dc62Ying Wang`---------------------------*/ 134cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 135cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectsymbol_list * 13605436638acc7c010349a69c3395f1a57c642dc62Ying Wangsymbol_list_prepend (symbol_list *list, symbol_list *node) 137cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project{ 13805436638acc7c010349a69c3395f1a57c642dc62Ying Wang node->next = list; 13905436638acc7c010349a69c3395f1a57c642dc62Ying Wang return node; 140cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project} 141cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 142cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 14305436638acc7c010349a69c3395f1a57c642dc62Ying Wang/*-----------------------------------------------. 14405436638acc7c010349a69c3395f1a57c642dc62Ying Wang| Free the LIST, but not the items it contains. | 14505436638acc7c010349a69c3395f1a57c642dc62Ying Wang`-----------------------------------------------*/ 146cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 147cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectvoid 148cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectsymbol_list_free (symbol_list *list) 149cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project{ 15005436638acc7c010349a69c3395f1a57c642dc62Ying Wang symbol_list *node, *next; 15105436638acc7c010349a69c3395f1a57c642dc62Ying Wang for (node = list; node; node = next) 15205436638acc7c010349a69c3395f1a57c642dc62Ying Wang { 15305436638acc7c010349a69c3395f1a57c642dc62Ying Wang next = node->next; 15405436638acc7c010349a69c3395f1a57c642dc62Ying Wang named_ref_free (node->named_ref); 15505436638acc7c010349a69c3395f1a57c642dc62Ying Wang free (node); 15605436638acc7c010349a69c3395f1a57c642dc62Ying Wang } 157cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project} 158cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 159cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 160cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/*--------------------. 161cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project| Return its length. | 162cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project`--------------------*/ 163cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 16405436638acc7c010349a69c3395f1a57c642dc62Ying Wangint 16505436638acc7c010349a69c3395f1a57c642dc62Ying Wangsymbol_list_length (symbol_list const *l) 166cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project{ 167cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project int res = 0; 16805436638acc7c010349a69c3395f1a57c642dc62Ying Wang for (/* Nothing. */; 16905436638acc7c010349a69c3395f1a57c642dc62Ying Wang l && !(l->content_type == SYMLIST_SYMBOL && l->content.sym == NULL); 17005436638acc7c010349a69c3395f1a57c642dc62Ying Wang l = l->next) 171cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project ++res; 172cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project return res; 173cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project} 174cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 175cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 17605436638acc7c010349a69c3395f1a57c642dc62Ying Wang/*------------------------------. 17705436638acc7c010349a69c3395f1a57c642dc62Ying Wang| Get item N in symbol list L. | 17805436638acc7c010349a69c3395f1a57c642dc62Ying Wang`------------------------------*/ 179cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 180cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectsymbol_list * 181cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectsymbol_list_n_get (symbol_list *l, int n) 182cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project{ 183cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project int i; 184cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 185cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project if (n < 0) 186cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project return NULL; 187cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 188cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project for (i = 0; i < n; ++i) 189cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project { 190cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project l = l->next; 19105436638acc7c010349a69c3395f1a57c642dc62Ying Wang if (l == NULL 19205436638acc7c010349a69c3395f1a57c642dc62Ying Wang || (l->content_type == SYMLIST_SYMBOL && l->content.sym == NULL)) 193cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project return NULL; 194cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project } 195cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 196cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project return l; 197cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project} 198cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 199cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 200cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/*--------------------------------------------------------------. 201cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project| Get the data type (alternative in the union) of the value for | 202cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project| symbol N in symbol list L. | 203cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project`--------------------------------------------------------------*/ 204cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 205cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectuniqstr 206cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectsymbol_list_n_type_name_get (symbol_list *l, location loc, int n) 207cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project{ 208cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project l = symbol_list_n_get (l, n); 209cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project if (!l) 210cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project { 211cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project complain_at (loc, _("invalid $ value: $%d"), n); 212cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project return NULL; 213cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project } 21405436638acc7c010349a69c3395f1a57c642dc62Ying Wang aver (l->content_type == SYMLIST_SYMBOL); 21505436638acc7c010349a69c3395f1a57c642dc62Ying Wang return l->content.sym->type_name; 216cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project} 217cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 21805436638acc7c010349a69c3395f1a57c642dc62Ying Wangbool 21905436638acc7c010349a69c3395f1a57c642dc62Ying Wangsymbol_list_null (symbol_list *node) 22005436638acc7c010349a69c3395f1a57c642dc62Ying Wang{ 22105436638acc7c010349a69c3395f1a57c642dc62Ying Wang return !node || 22205436638acc7c010349a69c3395f1a57c642dc62Ying Wang (node->content_type == SYMLIST_SYMBOL && !(node->content.sym)); 22305436638acc7c010349a69c3395f1a57c642dc62Ying Wang} 224cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 22505436638acc7c010349a69c3395f1a57c642dc62Ying Wangvoid 22605436638acc7c010349a69c3395f1a57c642dc62Ying Wangsymbol_list_destructor_set (symbol_list *node, code_props const *destructor) 22705436638acc7c010349a69c3395f1a57c642dc62Ying Wang{ 22805436638acc7c010349a69c3395f1a57c642dc62Ying Wang switch (node->content_type) 22905436638acc7c010349a69c3395f1a57c642dc62Ying Wang { 23005436638acc7c010349a69c3395f1a57c642dc62Ying Wang case SYMLIST_SYMBOL: 23105436638acc7c010349a69c3395f1a57c642dc62Ying Wang symbol_destructor_set (node->content.sym, destructor); 23205436638acc7c010349a69c3395f1a57c642dc62Ying Wang break; 23305436638acc7c010349a69c3395f1a57c642dc62Ying Wang case SYMLIST_TYPE: 23405436638acc7c010349a69c3395f1a57c642dc62Ying Wang semantic_type_destructor_set ( 23505436638acc7c010349a69c3395f1a57c642dc62Ying Wang semantic_type_get (node->content.type_name), destructor); 23605436638acc7c010349a69c3395f1a57c642dc62Ying Wang break; 23705436638acc7c010349a69c3395f1a57c642dc62Ying Wang case SYMLIST_DEFAULT_TAGGED: 23805436638acc7c010349a69c3395f1a57c642dc62Ying Wang default_tagged_destructor_set (destructor); 23905436638acc7c010349a69c3395f1a57c642dc62Ying Wang break; 24005436638acc7c010349a69c3395f1a57c642dc62Ying Wang case SYMLIST_DEFAULT_TAGLESS: 24105436638acc7c010349a69c3395f1a57c642dc62Ying Wang default_tagless_destructor_set (destructor); 24205436638acc7c010349a69c3395f1a57c642dc62Ying Wang break; 24305436638acc7c010349a69c3395f1a57c642dc62Ying Wang } 24405436638acc7c010349a69c3395f1a57c642dc62Ying Wang} 245cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 246cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectvoid 24705436638acc7c010349a69c3395f1a57c642dc62Ying Wangsymbol_list_printer_set (symbol_list *node, code_props const *printer) 248cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project{ 24905436638acc7c010349a69c3395f1a57c642dc62Ying Wang switch (node->content_type) 25005436638acc7c010349a69c3395f1a57c642dc62Ying Wang { 25105436638acc7c010349a69c3395f1a57c642dc62Ying Wang case SYMLIST_SYMBOL: 25205436638acc7c010349a69c3395f1a57c642dc62Ying Wang symbol_printer_set (node->content.sym, printer); 25305436638acc7c010349a69c3395f1a57c642dc62Ying Wang break; 25405436638acc7c010349a69c3395f1a57c642dc62Ying Wang case SYMLIST_TYPE: 25505436638acc7c010349a69c3395f1a57c642dc62Ying Wang semantic_type_printer_set ( 25605436638acc7c010349a69c3395f1a57c642dc62Ying Wang semantic_type_get (node->content.type_name), printer); 25705436638acc7c010349a69c3395f1a57c642dc62Ying Wang break; 25805436638acc7c010349a69c3395f1a57c642dc62Ying Wang case SYMLIST_DEFAULT_TAGGED: 25905436638acc7c010349a69c3395f1a57c642dc62Ying Wang default_tagged_printer_set (printer); 26005436638acc7c010349a69c3395f1a57c642dc62Ying Wang break; 26105436638acc7c010349a69c3395f1a57c642dc62Ying Wang case SYMLIST_DEFAULT_TAGLESS: 26205436638acc7c010349a69c3395f1a57c642dc62Ying Wang default_tagless_printer_set (printer); 26305436638acc7c010349a69c3395f1a57c642dc62Ying Wang break; 26405436638acc7c010349a69c3395f1a57c642dc62Ying Wang } 265cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project} 266