GCC主要数据结构之cpp_token

来源:互联网 发布:淘宝店满减怎么设置 编辑:程序博客网 时间:2024/04/29 14:57
 
libcpp/include/cpplib.h/* A preprocessing token.  This has been carefully packed and should   occupy 16 bytes on 32-bit hosts and 24 bytes on 64-bit hosts.  */struct GTY(()) cpp_token {  source_location src_loc; /* Location of first char of token,       together with range of full token.  */  ENUM_BITFIELD(cpp_ttype) type : CHAR_BIT;  /* token type */  unsigned short flags;  /* flags - see above */

  union cpp_token_u  {    /* An identifier.  */    struct cpp_identifier GTY ((tag ("CPP_TOKEN_FLD_NODE"))) node;      /* Inherit padding from this token.  */    cpp_token * GTY ((tag ("CPP_TOKEN_FLD_SOURCE"))) source;

    /* A string, or number.  */    struct cpp_string GTY ((tag ("CPP_TOKEN_FLD_STR"))) str;

    /* Argument no. (and original spelling) for a CPP_MACRO_ARG.  */    struct cpp_macro_arg GTY ((tag ("CPP_TOKEN_FLD_ARG_NO"))) macro_arg;

    /* Original token no. for a CPP_PASTE (from a sequence of       consecutive paste tokens in a macro expansion).  */    unsigned int GTY ((tag ("CPP_TOKEN_FLD_TOKEN_NO"))) token_no;

    /* Caller-supplied identifier for a CPP_PRAGMA.  */    unsigned int GTY ((tag ("CPP_TOKEN_FLD_PRAGMA"))) pragma;  } GTY ((desc ("cpp_token_val_index (&%1)"))) val;};

 
0 0
原创粉丝点击