118334Speter/* Variables and structures for declaration processing. 2169689Skan Copyright (C) 1993, 2000, 2002, 2004, 2005 Free Software Foundation, Inc. 318334Speter 4132718SkanThis file is part of GCC. 518334Speter 6132718SkanGCC is free software; you can redistribute it and/or modify 718334Speterit under the terms of the GNU General Public License as published by 818334Speterthe Free Software Foundation; either version 2, or (at your option) 918334Speterany later version. 1018334Speter 11132718SkanGCC is distributed in the hope that it will be useful, 1218334Speterbut WITHOUT ANY WARRANTY; without even the implied warranty of 1318334SpeterMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 1418334SpeterGNU General Public License for more details. 1518334Speter 1618334SpeterYou should have received a copy of the GNU General Public License 17132718Skanalong with GCC; see the file COPYING. If not, write to 18169689Skanthe Free Software Foundation, 51 Franklin Street, Fifth Floor, 19169689SkanBoston, MA 02110-1301, USA. */ 2018334Speter 2118334Speter/* In grokdeclarator, distinguish syntactic contexts of declarators. */ 2218334Speterenum decl_context 2318334Speter{ NORMAL, /* Ordinary declaration */ 2418334Speter FUNCDEF, /* Function definition */ 2518334Speter PARM, /* Declaration of parm before function body */ 2618334Speter CATCHPARM, /* Declaration of catch parm */ 2718334Speter FIELD, /* Declaration inside struct or union */ 2818334Speter BITFIELD, /* Likewise but with specified width */ 2918334Speter TYPENAME, /* Typename (inside cast or sizeof) */ 30261188Spfg /* APPLE LOCAL blocks 6339747 */ 31261188Spfg BLOCKDEF, /* Declaratin of block literal */ 3218334Speter MEMFUNCDEF /* Member function definition */ 3318334Speter}; 3418334Speter 3518334Speter/* We need this in here to get the decl_context definition. */ 36169689Skanextern tree grokdeclarator (const cp_declarator *, 37169689Skan const cp_decl_specifier_seq *, 38169689Skan enum decl_context, int, tree*); 39261188Spfg/* APPLE LOCAL radar 4721858 */ 40261188Spfgextern void emit_instantiate_pending_templates (location_t *); 41261188Spfg/* APPLE LOCAL blocks 6040305 (ce) */ 42261188Spfgextern tree grokparms (cp_parameter_declarator *first_parm, tree *parms); 43