Home | History | Annotate | Line # | Download | only in include
cpp-id-data.h revision 1.1.1.1.8.2
      1  1.1.1.1.8.2  tls /* Structures that hang off cpp_identifier, for PCH.
      2  1.1.1.1.8.2  tls    Copyright (C) 1986, 1987, 1989, 1992, 1993, 1994, 1995, 1996, 1997, 1998,
      3  1.1.1.1.8.2  tls    1999, 2000, 2001, 2002, 2003, 2004, 2009 Free Software Foundation, Inc.
      4  1.1.1.1.8.2  tls 
      5  1.1.1.1.8.2  tls This program is free software; you can redistribute it and/or modify it
      6  1.1.1.1.8.2  tls under the terms of the GNU General Public License as published by the
      7  1.1.1.1.8.2  tls Free Software Foundation; either version 3, or (at your option) any
      8  1.1.1.1.8.2  tls later version.
      9  1.1.1.1.8.2  tls 
     10  1.1.1.1.8.2  tls This program is distributed in the hope that it will be useful,
     11  1.1.1.1.8.2  tls but WITHOUT ANY WARRANTY; without even the implied warranty of
     12  1.1.1.1.8.2  tls MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
     13  1.1.1.1.8.2  tls GNU General Public License for more details.
     14  1.1.1.1.8.2  tls 
     15  1.1.1.1.8.2  tls You should have received a copy of the GNU General Public License
     16  1.1.1.1.8.2  tls along with this program; see the file COPYING3.  If not see
     17  1.1.1.1.8.2  tls <http://www.gnu.org/licenses/>.  */
     18  1.1.1.1.8.2  tls 
     19  1.1.1.1.8.2  tls #include "cpplib.h"
     20  1.1.1.1.8.2  tls 
     21  1.1.1.1.8.2  tls #if !defined (HAVE_UCHAR) && !defined (IN_GCC)
     22  1.1.1.1.8.2  tls typedef unsigned char uchar;
     23  1.1.1.1.8.2  tls #endif
     24  1.1.1.1.8.2  tls 
     25  1.1.1.1.8.2  tls #define UC (const unsigned char *)  /* Intended use: UC"string" */
     26  1.1.1.1.8.2  tls 
     27  1.1.1.1.8.2  tls /* Chained list of answers to an assertion.  */
     28  1.1.1.1.8.2  tls struct GTY(()) answer {
     29  1.1.1.1.8.2  tls   struct answer *next;
     30  1.1.1.1.8.2  tls   unsigned int count;
     31  1.1.1.1.8.2  tls   cpp_token GTY ((length ("%h.count"))) first[1];
     32  1.1.1.1.8.2  tls };
     33  1.1.1.1.8.2  tls 
     34  1.1.1.1.8.2  tls /* Each macro definition is recorded in a cpp_macro structure.
     35  1.1.1.1.8.2  tls    Variadic macros cannot occur with traditional cpp.  */
     36  1.1.1.1.8.2  tls struct GTY(()) cpp_macro {
     37  1.1.1.1.8.2  tls   /* Parameters, if any.  */
     38  1.1.1.1.8.2  tls   cpp_hashnode ** GTY ((nested_ptr (union tree_node,
     39  1.1.1.1.8.2  tls 		"%h ? CPP_HASHNODE (GCC_IDENT_TO_HT_IDENT (%h)) : NULL",
     40  1.1.1.1.8.2  tls 			"%h ? HT_IDENT_TO_GCC_IDENT (HT_NODE (%h)) : NULL"),
     41  1.1.1.1.8.2  tls 			length ("%h.paramc")))
     42  1.1.1.1.8.2  tls     params;
     43  1.1.1.1.8.2  tls 
     44  1.1.1.1.8.2  tls   /* Replacement tokens (ISO) or replacement text (traditional).  See
     45  1.1.1.1.8.2  tls      comment at top of cpptrad.c for how traditional function-like
     46  1.1.1.1.8.2  tls      macros are encoded.  */
     47  1.1.1.1.8.2  tls   union cpp_macro_u
     48  1.1.1.1.8.2  tls   {
     49  1.1.1.1.8.2  tls     cpp_token * GTY ((tag ("0"), length ("%0.count"))) tokens;
     50  1.1.1.1.8.2  tls     const unsigned char * GTY ((tag ("1"))) text;
     51  1.1.1.1.8.2  tls   } GTY ((desc ("%1.traditional"))) exp;
     52  1.1.1.1.8.2  tls 
     53  1.1.1.1.8.2  tls   /* Definition line number.  */
     54  1.1.1.1.8.2  tls   source_location line;
     55  1.1.1.1.8.2  tls 
     56  1.1.1.1.8.2  tls   /* Number of tokens in expansion, or bytes for traditional macros.  */
     57  1.1.1.1.8.2  tls   unsigned int count;
     58  1.1.1.1.8.2  tls 
     59  1.1.1.1.8.2  tls   /* Number of parameters.  */
     60  1.1.1.1.8.2  tls   unsigned short paramc;
     61  1.1.1.1.8.2  tls 
     62  1.1.1.1.8.2  tls   /* If a function-like macro.  */
     63  1.1.1.1.8.2  tls   unsigned int fun_like : 1;
     64  1.1.1.1.8.2  tls 
     65  1.1.1.1.8.2  tls   /* If a variadic macro.  */
     66  1.1.1.1.8.2  tls   unsigned int variadic : 1;
     67  1.1.1.1.8.2  tls 
     68  1.1.1.1.8.2  tls   /* If macro defined in system header.  */
     69  1.1.1.1.8.2  tls   unsigned int syshdr   : 1;
     70  1.1.1.1.8.2  tls 
     71  1.1.1.1.8.2  tls   /* Nonzero if it has been expanded or had its existence tested.  */
     72  1.1.1.1.8.2  tls   unsigned int used     : 1;
     73  1.1.1.1.8.2  tls 
     74  1.1.1.1.8.2  tls   /* Indicate which field of 'exp' is in use.  */
     75  1.1.1.1.8.2  tls   unsigned int traditional : 1;
     76  1.1.1.1.8.2  tls 
     77  1.1.1.1.8.2  tls   /* Indicate whether the tokens include extra CPP_PASTE tokens at the
     78  1.1.1.1.8.2  tls      end to track invalid redefinitions with consecutive CPP_PASTE
     79  1.1.1.1.8.2  tls      tokens.  */
     80  1.1.1.1.8.2  tls   unsigned int extra_tokens : 1;
     81  1.1.1.1.8.2  tls };
     82