GDB (xrefs)
Classes | Macros | Typedefs | Enumerations | Functions | Variables
/tmp/gdb-7.10/gdb/cp-name-parser.c File Reference
#include "defs.h"
#include <unistd.h>
#include "safe-ctype.h"
#include "demangle.h"
#include "cp-support.h"
#include <stddef.h>

Go to the source code of this file.

Classes

struct  demangle_info
 
union  YYSTYPE
 
struct  YYSTYPE::nested
 
union  yyalloc
 

Macros

#define YYBISON   1
 
#define YYBISON_VERSION   "3.0.2"
 
#define YYSKELETON_NAME   "yacc.c"
 
#define YYPURE   0
 
#define YYPUSH   0
 
#define YYPULL   1
 
#define ALLOC_CHUNK   100
 
#define QUAL_CONST   1
 
#define QUAL_RESTRICT   2
 
#define QUAL_VOLATILE   4
 
#define INT_CHAR   (1 << 0)
 
#define INT_SHORT   (1 << 1)
 
#define INT_LONG   (1 << 2)
 
#define INT_LLONG   (1 << 3)
 
#define INT_SIGNED   (1 << 4)
 
#define INT_UNSIGNED   (1 << 5)
 
#define yymaxdepth   cpname_maxdepth
 
#define yyparse   cpname_parse
 
#define yylex   cpname_lex
 
#define yyerror   cpname_error
 
#define yylval   cpname_lval
 
#define yychar   cpname_char
 
#define yydebug   cpname_debug
 
#define yypact   cpname_pact
 
#define yyr1   cpname_r1
 
#define yyr2   cpname_r2
 
#define yydef   cpname_def
 
#define yychk   cpname_chk
 
#define yypgo   cpname_pgo
 
#define yyact   cpname_act
 
#define yyexca   cpname_exca
 
#define yyerrflag   cpname_errflag
 
#define yynerrs   cpname_nerrs
 
#define yyps   cpname_ps
 
#define yypv   cpname_pv
 
#define yys   cpname_s
 
#define yy_yys   cpname_yys
 
#define yystate   cpname_state
 
#define yytmp   cpname_tmp
 
#define yyv   cpname_v
 
#define yy_yyv   cpname_yyv
 
#define yyval   cpname_val
 
#define yylloc   cpname_lloc
 
#define yyreds   cpname_reds /* With YYDEBUG defined */
 
#define yytoks   cpname_toks /* With YYDEBUG defined */
 
#define yyname   cpname_name /* With YYDEBUG defined */
 
#define yyrule   cpname_rule /* With YYDEBUG defined */
 
#define yylhs   cpname_yylhs
 
#define yylen   cpname_yylen
 
#define yydefred   cpname_yydefred
 
#define yydgoto   cpname_yydgoto
 
#define yysindex   cpname_yysindex
 
#define yyrindex   cpname_yyrindex
 
#define yygindex   cpname_yygindex
 
#define yytable   cpname_yytable
 
#define yycheck   cpname_yycheck
 
#define yyss   cpname_yyss
 
#define yysslim   cpname_yysslim
 
#define yyssp   cpname_yyssp
 
#define yystacksize   cpname_yystacksize
 
#define yyvs   cpname_yyvs
 
#define yyvsp   cpname_yyvsp
 
#define d_left(dc)   (dc)->u.s_binary.left
 
#define d_right(dc)   (dc)->u.s_binary.right
 
#define YY_NULLPTR   0
 
#define YYERROR_VERBOSE   0
 
#define YYDEBUG   0
 
#define YYTOKENTYPE
 
#define INT   258
 
#define FLOAT   259
 
#define NAME   260
 
#define STRUCT   261
 
#define CLASS   262
 
#define UNION   263
 
#define ENUM   264
 
#define SIZEOF   265
 
#define UNSIGNED   266
 
#define COLONCOLON   267
 
#define TEMPLATE   268
 
#define ERROR   269
 
#define NEW   270
 
#define DELETE   271
 
#define OPERATOR   272
 
#define STATIC_CAST   273
 
#define REINTERPRET_CAST   274
 
#define DYNAMIC_CAST   275
 
#define SIGNED_KEYWORD   276
 
#define LONG   277
 
#define SHORT   278
 
#define INT_KEYWORD   279
 
#define CONST_KEYWORD   280
 
#define VOLATILE_KEYWORD   281
 
#define DOUBLE_KEYWORD   282
 
#define BOOL   283
 
#define ELLIPSIS   284
 
#define RESTRICT   285
 
#define VOID   286
 
#define FLOAT_KEYWORD   287
 
#define CHAR   288
 
#define WCHAR_T   289
 
#define ASSIGN_MODIFY   290
 
#define TRUEKEYWORD   291
 
#define FALSEKEYWORD   292
 
#define DEMANGLER_SPECIAL   293
 
#define CONSTRUCTION_VTABLE   294
 
#define CONSTRUCTION_IN   295
 
#define OROR   296
 
#define ANDAND   297
 
#define EQUAL   298
 
#define NOTEQUAL   299
 
#define LEQ   300
 
#define GEQ   301
 
#define LSH   302
 
#define RSH   303
 
#define UNARY   304
 
#define INCREMENT   305
 
#define DECREMENT   306
 
#define ARROW   307
 
#define YYSTYPE_IS_TRIVIAL   1
 
#define YYSTYPE_IS_DECLARED   1
 
#define YYSIZE_T   size_t
 
#define YYSIZE_MAXIMUM   ((YYSIZE_T) -1)
 
#define YY_(Msgid)   Msgid
 
#define YY_ATTRIBUTE(Spec)   /* empty */
 
#define YY_ATTRIBUTE_PURE   YY_ATTRIBUTE ((__pure__))
 
#define YY_ATTRIBUTE_UNUSED   YY_ATTRIBUTE ((__unused__))
 
#define YYUSE(E)   ((void) (E))
 
#define YY_INITIAL_VALUE(Value)   Value
 
#define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
 
#define YY_IGNORE_MAYBE_UNINITIALIZED_END
 
#define YYSTACK_ALLOC   YYMALLOC
 
#define YYSTACK_FREE   YYFREE
 
#define YYSTACK_ALLOC_MAXIMUM   YYSIZE_MAXIMUM
 
#define YYMALLOC   xmalloc
 
#define YYFREE   xfree
 
#define YYSTACK_GAP_MAXIMUM   (sizeof (union yyalloc) - 1)
 
#define YYSTACK_BYTES(N)
 
#define YYCOPY_NEEDED   1
 
#define YYSTACK_RELOCATE(Stack_alloc, Stack)
 
#define YYCOPY(Dst, Src, Count)
 
#define YYFINAL   84
 
#define YYLAST   1072
 
#define YYNTOKENS   75
 
#define YYNNTS   40
 
#define YYNRULES   194
 
#define YYNSTATES   324
 
#define YYUNDEFTOK   2
 
#define YYMAXUTOK   307
 
#define YYTRANSLATE(YYX)    ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
 
#define YYPACT_NINF   -203
 
#define yypact_value_is_default(Yystate)   (!!((Yystate) == (-203)))
 
#define YYTABLE_NINF   -1
 
#define yytable_value_is_error(Yytable_value)   0
 
#define yyerrok   (yyerrstatus = 0)
 
#define yyclearin   (yychar = YYEMPTY)
 
#define YYEMPTY   (-2)
 
#define YYEOF   0
 
#define YYACCEPT   goto yyacceptlab
 
#define YYABORT   goto yyabortlab
 
#define YYERROR   goto yyerrorlab
 
#define YYRECOVERING()   (!!yyerrstatus)
 
#define YYBACKUP(Token, Value)
 
#define YYTERROR   1
 
#define YYERRCODE   256
 
#define YYDPRINTF(Args)
 
#define YY_SYMBOL_PRINT(Title, Type, Value, Location)
 
#define YY_STACK_PRINT(Bottom, Top)
 
#define YY_REDUCE_PRINT(Rule)
 
#define YYINITDEPTH   200
 
#define YYMAXDEPTH   10000
 
#define YYPOPSTACK(N)    (yyvsp -= (N), yyssp -= (N))
 
#define HANDLE_QUAL(TYPE, MTYPE, QUAL)
 
#define HANDLE_SPECIAL(string, comp)
 
#define HANDLE_TOKEN2(string, token)
 
#define HANDLE_TOKEN3(string, token)
 

Typedefs

typedef union YYSTYPE YYSTYPE
 
typedef unsigned char yytype_uint8
 
typedef signed char yytype_int8
 
typedef unsigned short int yytype_uint16
 
typedef short int yytype_int16
 

Enumerations

enum  yytokentype {
  INT = 258, NULL_PTR = 259, CHARLIT = 260, FLOAT = 261,
  TRUEKEYWORD = 262, FALSEKEYWORD = 263, COLONCOLON = 264, STRING = 265,
  NAME = 266, DOT_ID = 267, DOT_ALL = 268, SPECIAL_VARIABLE = 269,
  ASSIGN = 270, _AND_ = 271, OR = 272, XOR = 273,
  THEN = 274, ELSE = 275, NOTEQUAL = 276, LEQ = 277,
  GEQ = 278, IN = 279, DOTDOT = 280, UNARY = 281,
  MOD = 282, REM = 283, STARSTAR = 284, ABS = 285,
  NOT = 286, VAR = 287, ARROW = 288, TICK_ACCESS = 289,
  TICK_ADDRESS = 290, TICK_FIRST = 291, TICK_LAST = 292, TICK_LENGTH = 293,
  TICK_MAX = 294, TICK_MIN = 295, TICK_MODULUS = 296, TICK_POS = 297,
  TICK_RANGE = 298, TICK_SIZE = 299, TICK_TAG = 300, TICK_VAL = 301,
  NEW = 302, OTHERS = 303, INT = 258, FLOAT = 259,
  DECFLOAT = 260, STRING = 261, NSSTRING = 262, SELECTOR = 263,
  CHAR = 264, NAME = 265, UNKNOWN_CPP_NAME = 266, COMPLETE = 267,
  TYPENAME = 268, CLASSNAME = 269, OBJC_LBRAC = 270, NAME_OR_INT = 271,
  OPERATOR = 272, STRUCT = 273, CLASS = 274, UNION = 275,
  ENUM = 276, SIZEOF = 277, UNSIGNED = 278, COLONCOLON = 279,
  TEMPLATE = 280, ERROR = 281, NEW = 282, DELETE = 283,
  REINTERPRET_CAST = 284, DYNAMIC_CAST = 285, STATIC_CAST = 286, CONST_CAST = 287,
  ENTRY = 288, TYPEOF = 289, DECLTYPE = 290, TYPEID = 291,
  SIGNED_KEYWORD = 292, LONG = 293, SHORT = 294, INT_KEYWORD = 295,
  CONST_KEYWORD = 296, VOLATILE_KEYWORD = 297, DOUBLE_KEYWORD = 298, VARIABLE = 299,
  ASSIGN_MODIFY = 300, TRUEKEYWORD = 301, FALSEKEYWORD = 302, ABOVE_COMMA = 303,
  OROR = 304, ANDAND = 305, EQUAL = 306, NOTEQUAL = 307,
  LEQ = 308, GEQ = 309, LSH = 310, RSH = 311,
  UNARY = 312, INCREMENT = 313, DECREMENT = 314, ARROW = 315,
  ARROW_STAR = 316, DOT_STAR = 317, BLOCKNAME = 318, FILENAME = 319,
  DOTDOTDOT = 320, INT = 258, FLOAT = 259, NAME = 260,
  STRUCT = 261, CLASS = 262, UNION = 263, ENUM = 264,
  SIZEOF = 265, UNSIGNED = 266, COLONCOLON = 267, TEMPLATE = 268,
  ERROR = 269, NEW = 270, DELETE = 271, OPERATOR = 272,
  STATIC_CAST = 273, REINTERPRET_CAST = 274, DYNAMIC_CAST = 275, SIGNED_KEYWORD = 276,
  LONG = 277, SHORT = 278, INT_KEYWORD = 279, CONST_KEYWORD = 280,
  VOLATILE_KEYWORD = 281, DOUBLE_KEYWORD = 282, BOOL = 283, ELLIPSIS = 284,
  RESTRICT = 285, VOID = 286, FLOAT_KEYWORD = 287, CHAR = 288,
  WCHAR_T = 289, ASSIGN_MODIFY = 290, TRUEKEYWORD = 291, FALSEKEYWORD = 292,
  DEMANGLER_SPECIAL = 293, CONSTRUCTION_VTABLE = 294, CONSTRUCTION_IN = 295, OROR = 296,
  ANDAND = 297, EQUAL = 298, NOTEQUAL = 299, LEQ = 300,
  GEQ = 301, LSH = 302, RSH = 303, UNARY = 304,
  INCREMENT = 305, DECREMENT = 306, ARROW = 307, IDENTIFIER = 258,
  TYPENAME = 259, COMPLETE = 260, NAME_OR_INT = 261, INTEGER_LITERAL = 262,
  FLOAT_LITERAL = 263, CHARACTER_LITERAL = 264, STRING_LITERAL = 265, ENTRY = 266,
  ERROR = 267, TRUE_KEYWORD = 268, FALSE_KEYWORD = 269, NULL_KEYWORD = 270,
  SUPER_KEYWORD = 271, CAST_KEYWORD = 272, SIZEOF_KEYWORD = 273, TYPEOF_KEYWORD = 274,
  TYPEID_KEYWORD = 275, INIT_KEYWORD = 276, IMMUTABLE_KEYWORD = 277, CONST_KEYWORD = 278,
  SHARED_KEYWORD = 279, STRUCT_KEYWORD = 280, UNION_KEYWORD = 281, CLASS_KEYWORD = 282,
  INTERFACE_KEYWORD = 283, ENUM_KEYWORD = 284, TEMPLATE_KEYWORD = 285, DELEGATE_KEYWORD = 286,
  FUNCTION_KEYWORD = 287, DOLLAR_VARIABLE = 288, ASSIGN_MODIFY = 289, OROR = 290,
  ANDAND = 291, EQUAL = 292, NOTEQUAL = 293, LEQ = 294,
  GEQ = 295, LSH = 296, RSH = 297, HATHAT = 298,
  IDENTITY = 299, NOTIDENTITY = 300, INCREMENT = 301, DECREMENT = 302,
  DOTDOT = 303, INT = 258, FLOAT = 259, STRING_LITERAL = 260,
  BOOLEAN_LITERAL = 261, NAME = 262, TYPENAME = 263, NAME_OR_INT = 264,
  SIZEOF = 265, ERROR = 266, INT_KEYWORD = 267, INT_S2_KEYWORD = 268,
  LOGICAL_S1_KEYWORD = 269, LOGICAL_S2_KEYWORD = 270, LOGICAL_S8_KEYWORD = 271, LOGICAL_KEYWORD = 272,
  REAL_KEYWORD = 273, REAL_S8_KEYWORD = 274, REAL_S16_KEYWORD = 275, COMPLEX_S8_KEYWORD = 276,
  COMPLEX_S16_KEYWORD = 277, COMPLEX_S32_KEYWORD = 278, BOOL_AND = 279, BOOL_OR = 280,
  BOOL_NOT = 281, CHARACTER = 282, VARIABLE = 283, ASSIGN_MODIFY = 284,
  ABOVE_COMMA = 285, EQUAL = 286, NOTEQUAL = 287, LESSTHAN = 288,
  GREATERTHAN = 289, LEQ = 290, GEQ = 291, LSH = 292,
  RSH = 293, STARSTAR = 294, UNARY = 295, INT = 258,
  FLOAT = 259, RAW_STRING = 260, STRING = 261, CHAR = 262,
  NAME = 263, TYPENAME = 264, COMPLETE = 265, NAME_OR_INT = 266,
  TRUE_KEYWORD = 267, FALSE_KEYWORD = 268, STRUCT_KEYWORD = 269, INTERFACE_KEYWORD = 270,
  TYPE_KEYWORD = 271, CHAN_KEYWORD = 272, SIZEOF_KEYWORD = 273, LEN_KEYWORD = 274,
  CAP_KEYWORD = 275, NEW_KEYWORD = 276, IOTA_KEYWORD = 277, NIL_KEYWORD = 278,
  CONST_KEYWORD = 279, DOTDOTDOT = 280, ENTRY = 281, ERROR = 282,
  BYTE_KEYWORD = 283, DOLLAR_VARIABLE = 284, ASSIGN_MODIFY = 285, ABOVE_COMMA = 286,
  OROR = 287, ANDAND = 288, ANDNOT = 289, EQUAL = 290,
  NOTEQUAL = 291, LEQ = 292, GEQ = 293, LSH = 294,
  RSH = 295, UNARY = 296, INCREMENT = 297, DECREMENT = 298,
  LEFT_ARROW = 299, INTEGER_LITERAL = 258, FLOATING_POINT_LITERAL = 259, IDENTIFIER = 260,
  STRING_LITERAL = 261, BOOLEAN_LITERAL = 262, TYPENAME = 263, NAME_OR_INT = 264,
  ERROR = 265, LONG = 266, SHORT = 267, BYTE = 268,
  INT = 269, CHAR = 270, BOOLEAN = 271, DOUBLE = 272,
  FLOAT = 273, VARIABLE = 274, ASSIGN_MODIFY = 275, SUPER = 276,
  NEW = 277, OROR = 278, ANDAND = 279, EQUAL = 280,
  NOTEQUAL = 281, LEQ = 282, GEQ = 283, LSH = 284,
  RSH = 285, INCREMENT = 286, DECREMENT = 287, INT = 258,
  HEX = 259, ERROR = 260, UINT = 261, M2_TRUE = 262,
  M2_FALSE = 263, CHAR = 264, FLOAT = 265, STRING = 266,
  NAME = 267, BLOCKNAME = 268, IDENT = 269, VARNAME = 270,
  TYPENAME = 271, SIZE = 272, CAP = 273, ORD = 274,
  HIGH = 275, ABS = 276, MIN_FUNC = 277, MAX_FUNC = 278,
  FLOAT_FUNC = 279, VAL = 280, CHR = 281, ODD = 282,
  TRUNC = 283, TSIZE = 284, INC = 285, DEC = 286,
  INCL = 287, EXCL = 288, COLONCOLON = 289, INTERNAL_VAR = 290,
  ABOVE_COMMA = 291, ASSIGN = 292, LEQ = 293, GEQ = 294,
  NOTEQUAL = 295, IN = 296, OROR = 297, LOGICAL_AND = 298,
  DIV = 299, MOD = 300, UNARY = 301, DOT = 302,
  NOT = 303, QID = 304, INT = 258, FLOAT = 259,
  STRING = 260, FIELDNAME = 261, COMPLETE = 262, NAME = 263,
  TYPENAME = 264, NAME_OR_INT = 265, STRUCT = 266, CLASS = 267,
  SIZEOF = 268, COLONCOLON = 269, ERROR = 270, VARIABLE = 271,
  THIS = 272, TRUEKEYWORD = 273, FALSEKEYWORD = 274, ABOVE_COMMA = 275,
  ASSIGN = 276, NOT = 277, OR = 278, XOR = 279,
  ANDAND = 280, NOTEQUAL = 281, LEQ = 282, GEQ = 283,
  LSH = 284, RSH = 285, DIV = 286, MOD = 287,
  UNARY = 288, INCREMENT = 289, DECREMENT = 290, ARROW = 291,
  BLOCKNAME = 292
}
 

Functions

static struct demangle_component * d_grab (void)
 
static struct demangle_component * d_qualify (struct demangle_component *, int, int)
 
static struct demangle_component * d_int_type (int)
 
static struct demangle_component * d_unary (const char *, struct demangle_component *)
 
static struct demangle_component * d_binary (const char *, struct demangle_component *, struct demangle_component *)
 
int yyparse (void)
 
static int yylex (void)
 
static void yyerror (char *)
 
static struct demangle_component * fill_comp (enum demangle_component_type d_type, struct demangle_component *lhs, struct demangle_component *rhs)
 
static struct demangle_component * make_empty (enum demangle_component_type d_type)
 
static struct demangle_component * make_operator (const char *name, int args)
 
static struct demangle_component * make_dtor (enum gnu_v3_dtor_kinds kind, struct demangle_component *name)
 
static struct demangle_component * make_builtin_type (const char *name)
 
static struct demangle_component * make_name (const char *name, int len)
 
void * xmalloc (YYSIZE_T)
 
void xfree (void *)
 
static void yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep)
 
static const char * symbol_end (const char *lexptr)
 
static int parse_number (const char *p, int len, int parsed_float)
 
static int c_parse_backslash (int host_char, int *target_char)
 
static int cp_parse_escape (const char **string_ptr)
 
static struct demangle_infoallocate_info (void)
 
char * cp_comp_to_string (struct demangle_component *result, int estimated_len)
 
struct demangle_parse_infocp_new_demangle_parse_info (void)
 
void cp_demangled_name_parse_free (struct demangle_parse_info *parse_info)
 
void cp_merge_demangle_parse_infos (struct demangle_parse_info *dest, struct demangle_component *target, struct demangle_parse_info *src)
 
struct demangle_parse_infocp_demangled_name_to_comp (const char *demangled_name, const char **errmsg)
 

Variables

static const char * lexptr
 
static const char * prev_lexptr
 
static const char * error_lexptr
 
static const char * global_errmsg
 
static struct demangle_infodemangle_info
 
static struct demangle_component * global_result
 
YYSTYPE yylval
 
static const yytype_uint8 yytranslate []
 
static const yytype_int16 yypact []
 
static const yytype_uint8 yydefact []
 
static const yytype_int16 yypgoto []
 
static const yytype_int16 yydefgoto []
 
static const yytype_uint16 yytable []
 
static const yytype_int16 yycheck []
 
static const yytype_uint8 yystos []
 
static const yytype_uint8 yyr1 []
 
static const yytype_uint8 yyr2 []
 
int yychar
 
int yynerrs
 
static char backslashable [] = "abefnrtv"
 
static char represented [] = "\a\b\e\f\n\r\t\v"
 

Macro Definition Documentation

#define ALLOC_CHUNK   100

Definition at line 89 of file cp-name-parser.c.

Referenced by d_grab().

#define ANDAND   297

Definition at line 419 of file cp-name-parser.c.

Referenced by yylex().

#define ARROW   307

Definition at line 429 of file cp-name-parser.c.

Referenced by yylex().

#define ASSIGN_MODIFY   290

Definition at line 412 of file cp-name-parser.c.

Referenced by yylex().

#define BOOL   283

Definition at line 405 of file cp-name-parser.c.

Referenced by yylex().

#define CHAR   288

Definition at line 410 of file cp-name-parser.c.

Referenced by yylex().

#define CLASS   262

Definition at line 384 of file cp-name-parser.c.

Referenced by yylex().

#define COLONCOLON   267

Definition at line 389 of file cp-name-parser.c.

Referenced by yylex().

#define CONST_KEYWORD   280

Definition at line 402 of file cp-name-parser.c.

Referenced by yylex().

#define CONSTRUCTION_IN   295

Definition at line 417 of file cp-name-parser.c.

Referenced by yylex().

#define CONSTRUCTION_VTABLE   294

Definition at line 416 of file cp-name-parser.c.

Referenced by yylex().

#define d_left (   dc)    (dc)->u.s_binary.left

Definition at line 291 of file cp-name-parser.c.

Referenced by yyparse().

#define d_right (   dc)    (dc)->u.s_binary.right

Definition at line 292 of file cp-name-parser.c.

Referenced by yyparse().

#define DECREMENT   306

Definition at line 428 of file cp-name-parser.c.

Referenced by yylex().

#define DELETE   271

Definition at line 393 of file cp-name-parser.c.

Referenced by yylex().

#define DEMANGLER_SPECIAL   293

Definition at line 415 of file cp-name-parser.c.

Referenced by yylex().

#define DOUBLE_KEYWORD   282

Definition at line 404 of file cp-name-parser.c.

Referenced by yylex().

#define DYNAMIC_CAST   275

Definition at line 397 of file cp-name-parser.c.

Referenced by yylex().

#define ELLIPSIS   284

Definition at line 406 of file cp-name-parser.c.

Referenced by yylex().

#define ENUM   264

Definition at line 386 of file cp-name-parser.c.

Referenced by yylex().

#define EQUAL   298

Definition at line 420 of file cp-name-parser.c.

Referenced by yylex().

#define ERROR   269

Definition at line 391 of file cp-name-parser.c.

Referenced by parse_number(), and yylex().

#define FALSEKEYWORD   292

Definition at line 414 of file cp-name-parser.c.

Referenced by yylex().

#define FLOAT   259

Definition at line 381 of file cp-name-parser.c.

Referenced by parse_number().

#define FLOAT_KEYWORD   287

Definition at line 409 of file cp-name-parser.c.

Referenced by yylex().

#define GEQ   301

Definition at line 423 of file cp-name-parser.c.

Referenced by yylex().

#define HANDLE_QUAL (   TYPE,
  MTYPE,
  QUAL 
)
Value:
if ((qualifiers & QUAL) && (type != TYPE) && (type != MTYPE)) \
{ \
*inner_p = fill_comp (is_method ? MTYPE : TYPE, \
*inner_p, NULL); \
inner_p = &d_left (*inner_p); \
type = (*inner_p)->type; \
} \
else if (type == TYPE || type == MTYPE) \
{ \
inner_p = &d_left (*inner_p); \
type = (*inner_p)->type; \
}
Definition: gdbtypes.h:749
static struct demangle_component * fill_comp(enum demangle_component_type d_type, struct demangle_component *lhs, struct demangle_component *rhs)
#define d_left(dc)

Referenced by d_qualify().

#define HANDLE_SPECIAL (   string,
  comp 
)
Value:
if (strncmp (tokstart, string, sizeof (string) - 1) == 0) \
{ \
lexptr = tokstart + sizeof (string) - 1; \
yylval.lval = comp; \
}
const char * string
Definition: signals.c:50
#define DEMANGLER_SPECIAL

Definition at line 3740 of file cp-name-parser.c.

Referenced by yylex().

#define HANDLE_TOKEN2 (   string,
  token 
)
Value:
if (lexptr[1] == string[1]) \
{ \
lexptr += 2; \
yylval.opname = string; \
return token; \
}
const char * string
Definition: signals.c:50
int token
Definition: m2-exp.c:2578
static const char * lexptr

Definition at line 3748 of file cp-name-parser.c.

Referenced by yylex().

#define HANDLE_TOKEN3 (   string,
  token 
)
Value:
if (lexptr[1] == string[1] && lexptr[2] == string[2]) \
{ \
lexptr += 3; \
yylval.opname = string; \
return token; \
}
const char * string
Definition: signals.c:50
int token
Definition: m2-exp.c:2578
static const char * lexptr

Definition at line 3756 of file cp-name-parser.c.

Referenced by yylex().

#define INCREMENT   305

Definition at line 427 of file cp-name-parser.c.

Referenced by yylex().

#define INT   258

Definition at line 380 of file cp-name-parser.c.

Referenced by parse_number(), and yylex().

#define INT_CHAR   (1 << 0)

Definition at line 148 of file cp-name-parser.c.

Referenced by d_int_type(), and yyparse().

#define INT_KEYWORD   279

Definition at line 401 of file cp-name-parser.c.

Referenced by yylex().

#define INT_LLONG   (1 << 3)

Definition at line 151 of file cp-name-parser.c.

Referenced by d_int_type(), and yyparse().

#define INT_LONG   (1 << 2)

Definition at line 150 of file cp-name-parser.c.

Referenced by d_int_type(), and yyparse().

#define INT_SHORT   (1 << 1)

Definition at line 149 of file cp-name-parser.c.

Referenced by d_int_type(), and yyparse().

#define INT_SIGNED   (1 << 4)

Definition at line 153 of file cp-name-parser.c.

Referenced by d_int_type(), and yyparse().

#define INT_UNSIGNED   (1 << 5)

Definition at line 154 of file cp-name-parser.c.

Referenced by d_int_type(), and yyparse().

#define LEQ   300

Definition at line 422 of file cp-name-parser.c.

Referenced by yylex().

#define LONG   277

Definition at line 399 of file cp-name-parser.c.

Referenced by yylex().

#define LSH   302

Definition at line 424 of file cp-name-parser.c.

Referenced by yylex().

#define NAME   260

Definition at line 382 of file cp-name-parser.c.

Referenced by yylex().

#define NEW   270

Definition at line 392 of file cp-name-parser.c.

Referenced by yylex().

#define NOTEQUAL   299

Definition at line 421 of file cp-name-parser.c.

Referenced by yylex().

#define OPERATOR   272

Definition at line 394 of file cp-name-parser.c.

Referenced by yylex().

#define OROR   296

Definition at line 418 of file cp-name-parser.c.

Referenced by yylex().

#define QUAL_CONST   1

Definition at line 142 of file cp-name-parser.c.

Referenced by d_qualify(), and yyparse().

#define QUAL_RESTRICT   2

Definition at line 143 of file cp-name-parser.c.

Referenced by d_qualify(), and yyparse().

#define QUAL_VOLATILE   4

Definition at line 144 of file cp-name-parser.c.

Referenced by d_qualify(), and yyparse().

#define REINTERPRET_CAST   274

Definition at line 396 of file cp-name-parser.c.

Referenced by yylex().

#define RESTRICT   285

Definition at line 407 of file cp-name-parser.c.

Referenced by yylex().

#define RSH   303

Definition at line 425 of file cp-name-parser.c.

Referenced by yylex().

#define SHORT   278

Definition at line 400 of file cp-name-parser.c.

Referenced by yylex().

#define SIGNED_KEYWORD   276

Definition at line 398 of file cp-name-parser.c.

Referenced by yylex().

#define SIZEOF   265

Definition at line 387 of file cp-name-parser.c.

Referenced by yylex().

#define STATIC_CAST   273

Definition at line 395 of file cp-name-parser.c.

Referenced by yylex().

#define STRUCT   261

Definition at line 383 of file cp-name-parser.c.

Referenced by yylex().

#define TEMPLATE   268

Definition at line 390 of file cp-name-parser.c.

Referenced by yylex().

#define TRUEKEYWORD   291

Definition at line 413 of file cp-name-parser.c.

Referenced by yylex().

#define UNARY   304

Definition at line 426 of file cp-name-parser.c.

#define UNION   263

Definition at line 385 of file cp-name-parser.c.

Referenced by yylex().

#define UNSIGNED   266

Definition at line 388 of file cp-name-parser.c.

Referenced by yylex().

#define VOID   286

Definition at line 408 of file cp-name-parser.c.

Referenced by yylex().

#define VOLATILE_KEYWORD   281

Definition at line 403 of file cp-name-parser.c.

Referenced by yylex().

#define WCHAR_T   289

Definition at line 411 of file cp-name-parser.c.

Referenced by yylex().

#define YY_ (   Msgid)    Msgid

Definition at line 524 of file cp-name-parser.c.

Referenced by yyparse().

#define YY_ATTRIBUTE (   Spec)    /* empty */

Definition at line 534 of file cp-name-parser.c.

#define YY_ATTRIBUTE_PURE   YY_ATTRIBUTE ((__pure__))

Definition at line 539 of file cp-name-parser.c.

#define YY_ATTRIBUTE_UNUSED   YY_ATTRIBUTE ((__unused__))

Definition at line 543 of file cp-name-parser.c.

#define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN

Definition at line 574 of file cp-name-parser.c.

Referenced by yydestruct(), and yyparse().

#define YY_IGNORE_MAYBE_UNINITIALIZED_END

Definition at line 575 of file cp-name-parser.c.

Referenced by yydestruct(), and yyparse().

#define YY_INITIAL_VALUE (   Value)    Value

Definition at line 571 of file cp-name-parser.c.

#define YY_NULLPTR   0

Definition at line 301 of file cp-name-parser.c.

#define YY_REDUCE_PRINT (   Rule)

Definition at line 1425 of file cp-name-parser.c.

Referenced by yyparse().

#define YY_STACK_PRINT (   Bottom,
  Top 
)

Definition at line 1424 of file cp-name-parser.c.

Referenced by yyparse().

#define YY_SYMBOL_PRINT (   Title,
  Type,
  Value,
  Location 
)

Definition at line 1423 of file cp-name-parser.c.

Referenced by yydestruct(), and yyparse().

#define yy_yys   cpname_yys

Definition at line 183 of file cp-name-parser.c.

#define yy_yyv   cpname_yyv

Definition at line 187 of file cp-name-parser.c.

#define YYABORT   goto yyabortlab

Definition at line 1270 of file cp-name-parser.c.

Referenced by yyparse().

#define YYACCEPT   goto yyacceptlab

Definition at line 1269 of file cp-name-parser.c.

Referenced by yyparse().

#define yyact   cpname_act

Definition at line 176 of file cp-name-parser.c.

#define YYBACKUP (   Token,
  Value 
)
Value:
{ \
yychar = (Token); \
yylval = (Value); \
YYPOPSTACK (yylen); \
yystate = *yyssp; \
goto yybackup; \
} \
else \
{ \
yyerror (YY_("syntax error: cannot back up")); \
YYERROR; \
} \
while (0)
#define yylen
#define YYEMPTY
#define yyssp
if(!(yy_init))
Definition: ada-lex.c:1072
#define yychar
#define YY_(Msgid)

Definition at line 1276 of file cp-name-parser.c.

#define YYBISON   1

Definition at line 44 of file cp-name-parser.c.

#define YYBISON_VERSION   "3.0.2"

Definition at line 47 of file cp-name-parser.c.

#define yychar   cpname_char

Definition at line 168 of file cp-name-parser.c.

#define yycheck   cpname_yycheck

Definition at line 202 of file cp-name-parser.c.

Referenced by yyparse().

#define yychk   cpname_chk

Definition at line 174 of file cp-name-parser.c.

#define yyclearin   (yychar = YYEMPTY)

Definition at line 1265 of file cp-name-parser.c.

#define YYCOPY (   Dst,
  Src,
  Count 
)
Value:
do \
{ \
YYSIZE_T yyi; \
for (yyi = 0; yyi < (Count); yyi++) \
(Dst)[yyi] = (Src)[yyi]; \
} \
while (0)

Definition at line 697 of file cp-name-parser.c.

#define YYCOPY_NEEDED   1

Definition at line 669 of file cp-name-parser.c.

#define yydebug   cpname_debug

Definition at line 169 of file cp-name-parser.c.

#define YYDEBUG   0

Definition at line 316 of file cp-name-parser.c.

#define yydef   cpname_def

Definition at line 173 of file cp-name-parser.c.

#define yydefred   cpname_yydefred

Definition at line 196 of file cp-name-parser.c.

#define yydgoto   cpname_yydgoto

Definition at line 197 of file cp-name-parser.c.

#define YYDPRINTF (   Args)

Definition at line 1422 of file cp-name-parser.c.

Referenced by yyparse().

#define YYEMPTY   (-2)

Definition at line 1266 of file cp-name-parser.c.

Referenced by yyparse().

#define YYEOF   0

Definition at line 1267 of file cp-name-parser.c.

Referenced by yyparse().

#define YYERRCODE   256

Definition at line 1295 of file cp-name-parser.c.

#define yyerrflag   cpname_errflag

Definition at line 178 of file cp-name-parser.c.

#define yyerrok   (yyerrstatus = 0)

Definition at line 1264 of file cp-name-parser.c.

#define yyerror   cpname_error

Definition at line 166 of file cp-name-parser.c.

Referenced by yylex(), and yyparse().

#define YYERROR   goto yyerrorlab

Definition at line 1271 of file cp-name-parser.c.

#define YYERROR_VERBOSE   0

Definition at line 310 of file cp-name-parser.c.

#define yyexca   cpname_exca

Definition at line 177 of file cp-name-parser.c.

#define YYFINAL   84

Definition at line 710 of file cp-name-parser.c.

Referenced by yyparse().

#define YYFREE   xfree

Definition at line 640 of file cp-name-parser.c.

#define yygindex   cpname_yygindex

Definition at line 200 of file cp-name-parser.c.

#define YYINITDEPTH   200

Definition at line 1431 of file cp-name-parser.c.

Referenced by yyparse().

#define YYLAST   1072

Definition at line 712 of file cp-name-parser.c.

Referenced by yyparse().

#define yylen   cpname_yylen

Definition at line 195 of file cp-name-parser.c.

Referenced by yyparse().

#define yylex   cpname_lex

Definition at line 165 of file cp-name-parser.c.

Referenced by yyparse().

#define yylhs   cpname_yylhs

Definition at line 194 of file cp-name-parser.c.

#define yylloc   cpname_lloc

Definition at line 189 of file cp-name-parser.c.

Referenced by yyparse().

#define yylval   cpname_lval

Definition at line 167 of file cp-name-parser.c.

Referenced by yyparse().

#define YYMALLOC   xmalloc

Definition at line 634 of file cp-name-parser.c.

#define yymaxdepth   cpname_maxdepth

Definition at line 163 of file cp-name-parser.c.

#define YYMAXDEPTH   10000

Definition at line 1442 of file cp-name-parser.c.

Referenced by yyparse().

#define YYMAXUTOK   307

Definition at line 726 of file cp-name-parser.c.

#define yyname   cpname_name /* With YYDEBUG defined */

Definition at line 192 of file cp-name-parser.c.

#define yynerrs   cpname_nerrs

Definition at line 179 of file cp-name-parser.c.

Referenced by yyparse().

#define YYNNTS   40

Definition at line 717 of file cp-name-parser.c.

#define YYNRULES   194

Definition at line 719 of file cp-name-parser.c.

#define YYNSTATES   324

Definition at line 721 of file cp-name-parser.c.

#define YYNTOKENS   75

Definition at line 715 of file cp-name-parser.c.

Referenced by yyparse().

#define yypact   cpname_pact

Definition at line 170 of file cp-name-parser.c.

Referenced by yyparse().

#define YYPACT_NINF   -203

Definition at line 840 of file cp-name-parser.c.

#define yypact_value_is_default (   Yystate)    (!!((Yystate) == (-203)))

Definition at line 842 of file cp-name-parser.c.

Referenced by yyparse().

#define yyparse   cpname_parse

Definition at line 164 of file cp-name-parser.c.

Referenced by cp_demangled_name_to_comp().

#define yypgo   cpname_pgo

Definition at line 175 of file cp-name-parser.c.

#define YYPOPSTACK (   N)    (yyvsp -= (N), yyssp -= (N))

Referenced by yyparse().

#define yyps   cpname_ps

Definition at line 180 of file cp-name-parser.c.

#define YYPULL   1

Definition at line 59 of file cp-name-parser.c.

#define YYPURE   0

Definition at line 53 of file cp-name-parser.c.

#define YYPUSH   0

Definition at line 56 of file cp-name-parser.c.

#define yypv   cpname_pv

Definition at line 181 of file cp-name-parser.c.

#define yyr1   cpname_r1

Definition at line 171 of file cp-name-parser.c.

Referenced by yyparse().

#define yyr2   cpname_r2

Definition at line 172 of file cp-name-parser.c.

Referenced by yyparse().

#define YYRECOVERING ( )    (!!yyerrstatus)

Definition at line 1274 of file cp-name-parser.c.

#define yyreds   cpname_reds /* With YYDEBUG defined */

Definition at line 190 of file cp-name-parser.c.

#define yyrindex   cpname_yyrindex

Definition at line 199 of file cp-name-parser.c.

#define yyrule   cpname_rule /* With YYDEBUG defined */

Definition at line 193 of file cp-name-parser.c.

#define yys   cpname_s

Definition at line 182 of file cp-name-parser.c.

#define yysindex   cpname_yysindex

Definition at line 198 of file cp-name-parser.c.

#define YYSIZE_MAXIMUM   ((YYSIZE_T) -1)

Definition at line 514 of file cp-name-parser.c.

#define YYSIZE_T   size_t

Definition at line 508 of file cp-name-parser.c.

Referenced by yyparse().

#define YYSKELETON_NAME   "yacc.c"

Definition at line 50 of file cp-name-parser.c.

#define yyss   cpname_yyss

Definition at line 203 of file cp-name-parser.c.

Referenced by yyparse().

#define yysslim   cpname_yysslim

Definition at line 204 of file cp-name-parser.c.

#define yyssp   cpname_yyssp

Definition at line 205 of file cp-name-parser.c.

Referenced by yyparse().

#define YYSTACK_ALLOC   YYMALLOC

Definition at line 620 of file cp-name-parser.c.

Referenced by yyparse().

#define YYSTACK_ALLOC_MAXIMUM   YYSIZE_MAXIMUM

Definition at line 623 of file cp-name-parser.c.

#define YYSTACK_BYTES (   N)
Value:
((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE)) \
union YYSTYPE YYSTYPE
#define YYSTACK_GAP_MAXIMUM
short int yytype_int16
Definition: ada-exp.c:395

Definition at line 665 of file cp-name-parser.c.

Referenced by yyparse().

#define YYSTACK_FREE   YYFREE

Definition at line 621 of file cp-name-parser.c.

Referenced by yyparse().

#define YYSTACK_GAP_MAXIMUM   (sizeof (union yyalloc) - 1)

Definition at line 661 of file cp-name-parser.c.

#define YYSTACK_RELOCATE (   Stack_alloc,
  Stack 
)
Value:
do \
{ \
YYSIZE_T yynewbytes; \
YYCOPY (&yyptr->Stack_alloc, Stack, yysize); \
Stack = &yyptr->Stack_alloc; \
yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
yyptr += yynewbytes / sizeof (*yyptr); \
} \
while (0)
#define YYSTACK_GAP_MAXIMUM
#define yystacksize

Definition at line 676 of file cp-name-parser.c.

Referenced by yyparse().

#define yystacksize   cpname_yystacksize

Definition at line 206 of file cp-name-parser.c.

Referenced by yyparse().

#define yystate   cpname_state

Definition at line 184 of file cp-name-parser.c.

Referenced by yyparse().

#define YYSTYPE_IS_DECLARED   1

Definition at line 459 of file cp-name-parser.c.

#define YYSTYPE_IS_TRIVIAL   1

Definition at line 458 of file cp-name-parser.c.

#define yytable   cpname_yytable

Definition at line 201 of file cp-name-parser.c.

Referenced by yyparse().

#define YYTABLE_NINF   -1

Definition at line 845 of file cp-name-parser.c.

#define yytable_value_is_error (   Yytable_value)    0

Definition at line 847 of file cp-name-parser.c.

Referenced by yyparse().

#define YYTERROR   1

Definition at line 1294 of file cp-name-parser.c.

Referenced by yyparse().

#define yytmp   cpname_tmp

Definition at line 185 of file cp-name-parser.c.

#define YYTOKENTYPE

Definition at line 324 of file cp-name-parser.c.

#define yytoks   cpname_toks /* With YYDEBUG defined */

Definition at line 191 of file cp-name-parser.c.

#define YYTRANSLATE (   YYX)    ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)

Definition at line 728 of file cp-name-parser.c.

Referenced by yyparse().

#define YYUNDEFTOK   2

Definition at line 725 of file cp-name-parser.c.

#define YYUSE (   E)    ((void) (E))

Definition at line 557 of file cp-name-parser.c.

Referenced by yydestruct().

#define yyv   cpname_v

Definition at line 186 of file cp-name-parser.c.

#define yyval   cpname_val

Definition at line 188 of file cp-name-parser.c.

Referenced by yyparse().

#define yyvs   cpname_yyvs

Definition at line 207 of file cp-name-parser.c.

Referenced by yyparse().

#define yyvsp   cpname_yyvsp

Definition at line 208 of file cp-name-parser.c.

Referenced by yyparse().

Typedef Documentation

typedef union YYSTYPE YYSTYPE

Definition at line 433 of file cp-name-parser.c.

typedef short int yytype_int16

Definition at line 498 of file cp-name-parser.c.

typedef signed char yytype_int8

Definition at line 486 of file cp-name-parser.c.

typedef unsigned short int yytype_uint16

Definition at line 492 of file cp-name-parser.c.

typedef unsigned char yytype_uint8

Definition at line 480 of file cp-name-parser.c.

Enumeration Type Documentation

Enumerator
INT 
NULL_PTR 
CHARLIT 
FLOAT 
TRUEKEYWORD 
FALSEKEYWORD 
COLONCOLON 
STRING 
NAME 
DOT_ID 
DOT_ALL 
SPECIAL_VARIABLE 
ASSIGN 
_AND_ 
OR 
XOR 
THEN 
ELSE 
NOTEQUAL 
LEQ 
GEQ 
IN 
DOTDOT 
UNARY 
MOD 
REM 
STARSTAR 
ABS 
NOT 
VAR 
ARROW 
TICK_ACCESS 
TICK_ADDRESS 
TICK_FIRST 
TICK_LAST 
TICK_LENGTH 
TICK_MAX 
TICK_MIN 
TICK_MODULUS 
TICK_POS 
TICK_RANGE 
TICK_SIZE 
TICK_TAG 
TICK_VAL 
NEW 
OTHERS 
INT 
FLOAT 
DECFLOAT 
STRING 
NSSTRING 
SELECTOR 
CHAR 
NAME 
UNKNOWN_CPP_NAME 
COMPLETE 
TYPENAME 
CLASSNAME 
OBJC_LBRAC 
NAME_OR_INT 
OPERATOR 
STRUCT 
CLASS 
UNION 
ENUM 
SIZEOF 
UNSIGNED 
COLONCOLON 
TEMPLATE 
ERROR 
NEW 
DELETE 
REINTERPRET_CAST 
DYNAMIC_CAST 
STATIC_CAST 
CONST_CAST 
ENTRY 
TYPEOF 
DECLTYPE 
TYPEID 
SIGNED_KEYWORD 
LONG 
SHORT 
INT_KEYWORD 
CONST_KEYWORD 
VOLATILE_KEYWORD 
DOUBLE_KEYWORD 
VARIABLE 
ASSIGN_MODIFY 
TRUEKEYWORD 
FALSEKEYWORD 
ABOVE_COMMA 
OROR 
ANDAND 
EQUAL 
NOTEQUAL 
LEQ 
GEQ 
LSH 
RSH 
UNARY 
INCREMENT 
DECREMENT 
ARROW 
ARROW_STAR 
DOT_STAR 
BLOCKNAME 
FILENAME 
DOTDOTDOT 
INT 
FLOAT 
NAME 
STRUCT 
CLASS 
UNION 
ENUM 
SIZEOF 
UNSIGNED 
COLONCOLON 
TEMPLATE 
ERROR 
NEW 
DELETE 
OPERATOR 
STATIC_CAST 
REINTERPRET_CAST 
DYNAMIC_CAST 
SIGNED_KEYWORD 
LONG 
SHORT 
INT_KEYWORD 
CONST_KEYWORD 
VOLATILE_KEYWORD 
DOUBLE_KEYWORD 
BOOL 
ELLIPSIS 
RESTRICT 
VOID 
FLOAT_KEYWORD 
CHAR 
WCHAR_T 
ASSIGN_MODIFY 
TRUEKEYWORD 
FALSEKEYWORD 
DEMANGLER_SPECIAL 
CONSTRUCTION_VTABLE 
CONSTRUCTION_IN 
OROR 
ANDAND 
EQUAL 
NOTEQUAL 
LEQ 
GEQ 
LSH 
RSH 
UNARY 
INCREMENT 
DECREMENT 
ARROW 
IDENTIFIER 
TYPENAME 
COMPLETE 
NAME_OR_INT 
INTEGER_LITERAL 
FLOAT_LITERAL 
CHARACTER_LITERAL 
STRING_LITERAL 
ENTRY 
ERROR 
TRUE_KEYWORD 
FALSE_KEYWORD 
NULL_KEYWORD 
SUPER_KEYWORD 
CAST_KEYWORD 
SIZEOF_KEYWORD 
TYPEOF_KEYWORD 
TYPEID_KEYWORD 
INIT_KEYWORD 
IMMUTABLE_KEYWORD 
CONST_KEYWORD 
SHARED_KEYWORD 
STRUCT_KEYWORD 
UNION_KEYWORD 
CLASS_KEYWORD 
INTERFACE_KEYWORD 
ENUM_KEYWORD 
TEMPLATE_KEYWORD 
DELEGATE_KEYWORD 
FUNCTION_KEYWORD 
DOLLAR_VARIABLE 
ASSIGN_MODIFY 
OROR 
ANDAND 
EQUAL 
NOTEQUAL 
LEQ 
GEQ 
LSH 
RSH 
HATHAT 
IDENTITY 
NOTIDENTITY 
INCREMENT 
DECREMENT 
DOTDOT 
INT 
FLOAT 
STRING_LITERAL 
BOOLEAN_LITERAL 
NAME 
TYPENAME 
NAME_OR_INT 
SIZEOF 
ERROR 
INT_KEYWORD 
INT_S2_KEYWORD 
LOGICAL_S1_KEYWORD 
LOGICAL_S2_KEYWORD 
LOGICAL_S8_KEYWORD 
LOGICAL_KEYWORD 
REAL_KEYWORD 
REAL_S8_KEYWORD 
REAL_S16_KEYWORD 
COMPLEX_S8_KEYWORD 
COMPLEX_S16_KEYWORD 
COMPLEX_S32_KEYWORD 
BOOL_AND 
BOOL_OR 
BOOL_NOT 
CHARACTER 
VARIABLE 
ASSIGN_MODIFY 
ABOVE_COMMA 
EQUAL 
NOTEQUAL 
LESSTHAN 
GREATERTHAN 
LEQ 
GEQ 
LSH 
RSH 
STARSTAR 
UNARY 
INT 
FLOAT 
RAW_STRING 
STRING 
CHAR 
NAME 
TYPENAME 
COMPLETE 
NAME_OR_INT 
TRUE_KEYWORD 
FALSE_KEYWORD 
STRUCT_KEYWORD 
INTERFACE_KEYWORD 
TYPE_KEYWORD 
CHAN_KEYWORD 
SIZEOF_KEYWORD 
LEN_KEYWORD 
CAP_KEYWORD 
NEW_KEYWORD 
IOTA_KEYWORD 
NIL_KEYWORD 
CONST_KEYWORD 
DOTDOTDOT 
ENTRY 
ERROR 
BYTE_KEYWORD 
DOLLAR_VARIABLE 
ASSIGN_MODIFY 
ABOVE_COMMA 
OROR 
ANDAND 
ANDNOT 
EQUAL 
NOTEQUAL 
LEQ 
GEQ 
LSH 
RSH 
UNARY 
INCREMENT 
DECREMENT 
LEFT_ARROW 
INTEGER_LITERAL 
FLOATING_POINT_LITERAL 
IDENTIFIER 
STRING_LITERAL 
BOOLEAN_LITERAL 
TYPENAME 
NAME_OR_INT 
ERROR 
LONG 
SHORT 
BYTE 
INT 
CHAR 
BOOLEAN 
DOUBLE 
FLOAT 
VARIABLE 
ASSIGN_MODIFY 
SUPER 
NEW 
OROR 
ANDAND 
EQUAL 
NOTEQUAL 
LEQ 
GEQ 
LSH 
RSH 
INCREMENT 
DECREMENT 
INT 
HEX 
ERROR 
UINT 
M2_TRUE 
M2_FALSE 
CHAR 
FLOAT 
STRING 
NAME 
BLOCKNAME 
IDENT 
VARNAME 
TYPENAME 
SIZE 
CAP 
ORD 
HIGH 
ABS 
MIN_FUNC 
MAX_FUNC 
FLOAT_FUNC 
VAL 
CHR 
ODD 
TRUNC 
TSIZE 
INC 
DEC 
INCL 
EXCL 
COLONCOLON 
INTERNAL_VAR 
ABOVE_COMMA 
ASSIGN 
LEQ 
GEQ 
NOTEQUAL 
IN 
OROR 
LOGICAL_AND 
DIV 
MOD 
UNARY 
DOT 
NOT 
QID 
INT 
FLOAT 
STRING 
FIELDNAME 
COMPLETE 
NAME 
TYPENAME 
NAME_OR_INT 
STRUCT 
CLASS 
SIZEOF 
COLONCOLON 
ERROR 
VARIABLE 
THIS 
TRUEKEYWORD 
FALSEKEYWORD 
ABOVE_COMMA 
ASSIGN 
NOT 
OR 
XOR 
ANDAND 
NOTEQUAL 
LEQ 
GEQ 
LSH 
RSH 
DIV 
MOD 
UNARY 
INCREMENT 
DECREMENT 
ARROW 
BLOCKNAME 

Definition at line 325 of file cp-name-parser.c.

Function Documentation

static struct demangle_info* allocate_info ( void  )
static

Definition at line 4166 of file cp-name-parser.c.

References demangle_info::next, demangle_info::used, and xmalloc().

Referenced by cp_demangled_name_to_comp().

static int c_parse_backslash ( int  host_char,
int target_char 
)
static

Definition at line 3649 of file cp-name-parser.c.

References backslashable.

Referenced by cp_parse_escape().

char* cp_comp_to_string ( struct demangle_component *  result,
int  estimated_len 
)
void cp_demangled_name_parse_free ( struct demangle_parse_info parse_info)
struct demangle_parse_info* cp_demangled_name_to_comp ( const char *  demangled_name,
const char **  errmsg 
)
void cp_merge_demangle_parse_infos ( struct demangle_parse_info dest,
struct demangle_component *  target,
struct demangle_parse_info src 
)
struct demangle_parse_info* cp_new_demangle_parse_info ( void  )
static int cp_parse_escape ( const char **  string_ptr)
static

Definition at line 3676 of file cp-name-parser.c.

References c_parse_backslash().

Referenced by yylex().

static struct demangle_component * d_binary ( const char *  name,
struct demangle_component *  lhs,
struct demangle_component *  rhs 
)
static

Definition at line 3516 of file cp-name-parser.c.

References fill_comp(), and make_operator().

Referenced by yyparse().

static struct demangle_component* d_grab ( void  )
static
static struct demangle_component * d_int_type ( int  flags)
static

Definition at line 3455 of file cp-name-parser.c.

References INT_CHAR, INT_LLONG, INT_LONG, INT_SHORT, INT_SIGNED, INT_UNSIGNED, make_builtin_type(), and name.

Referenced by yyparse().

struct demangle_component * d_qualify ( struct demangle_component *  lhs,
int  qualifiers,
int  is_method 
)
static

Definition at line 3420 of file cp-name-parser.c.

References HANDLE_QUAL, QUAL_CONST, QUAL_RESTRICT, QUAL_VOLATILE, and type.

Referenced by yyparse().

static struct demangle_component * d_unary ( const char *  name,
struct demangle_component *  lhs 
)
static

Definition at line 3508 of file cp-name-parser.c.

References fill_comp(), and make_operator().

Referenced by yyparse().

static struct demangle_component* fill_comp ( enum demangle_component_type  d_type,
struct demangle_component *  lhs,
struct demangle_component *  rhs 
)
static

Definition at line 223 of file cp-name-parser.c.

References d_grab(), and gdb_assert.

Referenced by d_binary(), d_unary(), parse_number(), yylex(), and yyparse().

static struct demangle_component* make_builtin_type ( const char *  name)
static

Definition at line 268 of file cp-name-parser.c.

References d_grab(), and gdb_assert.

Referenced by d_int_type(), parse_number(), yylex(), and yyparse().

static struct demangle_component* make_dtor ( enum gnu_v3_dtor_kinds  kind,
struct demangle_component *  name 
)
static

Definition at line 256 of file cp-name-parser.c.

References d_grab(), and gdb_assert.

Referenced by yyparse().

static struct demangle_component* make_empty ( enum demangle_component_type  d_type)
static

Definition at line 236 of file cp-name-parser.c.

References d_grab().

Referenced by yyparse().

static struct demangle_component* make_name ( const char *  name,
int  len 
)
static

Definition at line 280 of file cp-name-parser.c.

References d_grab(), and gdb_assert.

Referenced by parse_number(), yylex(), and yyparse().

static struct demangle_component* make_operator ( const char *  name,
int  args 
)
static

Definition at line 244 of file cp-name-parser.c.

References d_grab(), and gdb_assert.

Referenced by d_binary(), d_unary(), and yyparse().

static int parse_number ( const char *  p,
int  len,
int  parsed_float 
)
static

Definition at line 3540 of file cp-name-parser.c.

References YYSTYPE::comp, ERROR, fill_comp(), FLOAT, INT, make_builtin_type(), make_name(), name, and type.

Referenced by yylex().

static const char* symbol_end ( const char *  lexptr)
static

Definition at line 3525 of file cp-name-parser.c.

References lexptr.

Referenced by yylex().

void xfree ( void *  )

Definition at line 97 of file common-utils.c.

Referenced by cp_demangled_name_parse_free().

void* xmalloc ( YYSIZE_T  )
static void yydestruct ( const char *  yymsg,
int  yytype,
YYSTYPE yyvaluep 
)
static
static void yyerror ( char *  msg)
static

Definition at line 4152 of file cp-name-parser.c.

References error_lexptr, global_errmsg, and prev_lexptr.

static int yylex ( void  )
static
int yyparse ( void  )

Variable Documentation

char backslashable[] = "abefnrtv"
static

Definition at line 3644 of file cp-name-parser.c.

Referenced by c_parse_backslash().

struct demangle_info* demangle_info
static

Definition at line 97 of file cp-name-parser.c.

Referenced by cp_demangled_name_to_comp().

const char * error_lexptr
static

Definition at line 84 of file cp-name-parser.c.

Referenced by cp_demangled_name_to_comp(), and yyerror().

const char * global_errmsg
static

Definition at line 84 of file cp-name-parser.c.

Referenced by cp_demangled_name_to_comp(), and yyerror().

struct demangle_component* global_result
static

Definition at line 124 of file cp-name-parser.c.

Referenced by cp_demangled_name_to_comp(), and yyparse().

const char* lexptr
static
const char * prev_lexptr
static

Definition at line 84 of file cp-name-parser.c.

Referenced by cp_demangled_name_to_comp(), lex_one_token(), yyerror(), and yylex().

char represented[] = "\a\b\e\f\n\r\t\v"
static

Definition at line 3645 of file cp-name-parser.c.

int yychar

Definition at line 1689 of file cp-name-parser.c.

const yytype_int16 yycheck[]
static

Definition at line 1062 of file cp-name-parser.c.

const yytype_uint8 yydefact[]
static

Definition at line 892 of file cp-name-parser.c.

Referenced by yyparse().

const yytype_int16 yydefgoto[]
static
Initial value:
=
{
-1, 21, 155, 92, 23, 24, 25, 26, 27, 28,
118, 29, 252, 30, 31, 78, 33, 142, 143, 166,
95, 157, 34, 35, 36, 37, 38, 167, 97, 39,
169, 126, 99, 40, 254, 255, 127, 128, 209, 210
}

Definition at line 939 of file cp-name-parser.c.

Referenced by yyparse().

YYSTYPE yylval

Definition at line 1692 of file cp-name-parser.c.

int yynerrs

Definition at line 1694 of file cp-name-parser.c.

const yytype_int16 yypact[]
static

Definition at line 852 of file cp-name-parser.c.

const yytype_int16 yypgoto[]
static
Initial value:
=
{
-203, -203, 25, -35, -203, -203, -203, 1, -203, 9,
-203, -1, -34, -24, 3, 0, 150, 186, 69, -203,
-23, -149, -203, 210, 231, -203, 242, -15, -97, 188,
-18, -19, 187, 151, -202, -203, 154, -203, -6, -159
}

Definition at line 930 of file cp-name-parser.c.

Referenced by yyparse().

const yytype_uint8 yyr1[]
static
Initial value:
=
{
0, 75, 76, 77, 77, 77, 78, 78, 79, 79,
79, 79, 79, 80, 80, 81, 81, 81, 81, 81,
81, 81, 81, 81, 81, 81, 81, 81, 81, 81,
81, 81, 81, 81, 81, 81, 81, 81, 81, 81,
81, 81, 81, 81, 81, 81, 81, 81, 82, 83,
83, 83, 83, 84, 84, 84, 85, 85, 86, 86,
86, 86, 87, 87, 88, 88, 89, 89, 90, 90,
90, 90, 91, 92, 92, 93, 93, 93, 93, 93,
94, 94, 94, 94, 94, 95, 95, 95, 96, 96,
97, 97, 97, 98, 98, 99, 99, 99, 99, 99,
99, 100, 100, 101, 101, 101, 101, 101, 101, 101,
102, 102, 102, 102, 103, 103, 104, 104, 104, 104,
104, 104, 104, 104, 104, 104, 104, 104, 105, 105,
105, 106, 106, 106, 106, 107, 107, 107, 107, 107,
108, 108, 109, 109, 110, 110, 110, 110, 111, 111,
111, 111, 111, 112, 112, 112, 112, 112, 113, 114,
114, 114, 114, 113, 113, 113, 113, 113, 113, 113,
113, 113, 113, 113, 113, 113, 113, 113, 113, 113,
113, 113, 113, 113, 113, 113, 113, 113, 113, 113,
113, 113, 113, 113, 113
}

Definition at line 1214 of file cp-name-parser.c.

const yytype_uint8 yyr2[]
static
Initial value:
=
{
0, 2, 1, 1, 1, 1, 0, 2, 2, 3,
3, 2, 2, 2, 4, 2, 2, 4, 4, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 3, 2, 3, 3, 2, 2,
1, 3, 2, 1, 4, 2, 1, 2, 2, 1,
2, 1, 1, 1, 1, 2, 2, 1, 2, 3,
2, 3, 4, 1, 3, 1, 2, 2, 4, 1,
1, 2, 3, 4, 3, 4, 4, 3, 0, 1,
1, 1, 1, 1, 2, 1, 1, 1, 1, 1,
1, 1, 2, 1, 1, 1, 2, 1, 1, 1,
2, 1, 3, 4, 2, 3, 2, 1, 3, 2,
2, 1, 3, 2, 3, 2, 4, 3, 1, 2,
1, 3, 2, 2, 1, 1, 2, 1, 4, 2,
1, 2, 2, 1, 3, 2, 2, 1, 2, 1,
1, 4, 4, 4, 2, 2, 2, 2, 3, 1,
3, 2, 4, 2, 2, 2, 4, 7, 7, 7,
3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3, 3, 3, 3, 3, 3, 3, 3, 3, 5,
1, 1, 4, 1, 1
}

Definition at line 1239 of file cp-name-parser.c.

const yytype_uint8 yystos[]
static

Definition at line 1176 of file cp-name-parser.c.

Referenced by yyparse().

const yytype_uint16 yytable[]
static

Definition at line 950 of file cp-name-parser.c.

const yytype_uint8 yytranslate[]
static

Definition at line 733 of file cp-name-parser.c.