Line 1... |
Line 1... |
/* Defs for interface to demanglers.
|
/* Defs for interface to demanglers.
|
Copyright 1992, 1993, 1994, 1995, 1996, 1997, 1998, 2000, 2001, 2002,
|
Copyright 1992, 1993, 1994, 1995, 1996, 1997, 1998, 2000, 2001, 2002,
|
2003, 2004, 2005, 2007 Free Software Foundation, Inc.
|
2003, 2004, 2005, 2007, 2008, 2009 Free Software Foundation, Inc.
|
|
|
This program is free software; you can redistribute it and/or
|
This program is free software; you can redistribute it and/or
|
modify it under the terms of the GNU Library General Public License
|
modify it under the terms of the GNU Library General Public License
|
as published by the Free Software Foundation; either version 2, or
|
as published by the Free Software Foundation; either version 2, or
|
(at your option) any later version.
|
(at your option) any later version.
|
Line 219... |
Line 219... |
subtree is a template argument list. */
|
subtree is a template argument list. */
|
DEMANGLE_COMPONENT_TEMPLATE,
|
DEMANGLE_COMPONENT_TEMPLATE,
|
/* A template parameter. This holds a number, which is the template
|
/* A template parameter. This holds a number, which is the template
|
parameter index. */
|
parameter index. */
|
DEMANGLE_COMPONENT_TEMPLATE_PARAM,
|
DEMANGLE_COMPONENT_TEMPLATE_PARAM,
|
|
/* A function parameter. This holds a number, which is the index. */
|
|
DEMANGLE_COMPONENT_FUNCTION_PARAM,
|
/* A constructor. This holds a name and the kind of
|
/* A constructor. This holds a name and the kind of
|
constructor. */
|
constructor. */
|
DEMANGLE_COMPONENT_CTOR,
|
DEMANGLE_COMPONENT_CTOR,
|
/* A destructor. This holds a name and the kind of destructor. */
|
/* A destructor. This holds a name and the kind of destructor. */
|
DEMANGLE_COMPONENT_DTOR,
|
DEMANGLE_COMPONENT_DTOR,
|
Line 317... |
Line 319... |
DEMANGLE_COMPONENT_ARRAY_TYPE,
|
DEMANGLE_COMPONENT_ARRAY_TYPE,
|
/* A pointer to member type. The left subtree is the class type,
|
/* A pointer to member type. The left subtree is the class type,
|
and the right subtree is the member type. CV-qualifiers appear
|
and the right subtree is the member type. CV-qualifiers appear
|
on the latter. */
|
on the latter. */
|
DEMANGLE_COMPONENT_PTRMEM_TYPE,
|
DEMANGLE_COMPONENT_PTRMEM_TYPE,
|
|
/* A fixed-point type. */
|
|
DEMANGLE_COMPONENT_FIXED_TYPE,
|
/* An argument list. The left subtree is the current argument, and
|
/* An argument list. The left subtree is the current argument, and
|
the right subtree is either NULL or another ARGLIST node. */
|
the right subtree is either NULL or another ARGLIST node. */
|
DEMANGLE_COMPONENT_ARGLIST,
|
DEMANGLE_COMPONENT_ARGLIST,
|
/* A template argument list. The left subtree is the current
|
/* A template argument list. The left subtree is the current
|
template argument, and the right subtree is either NULL or
|
template argument, and the right subtree is either NULL or
|
Line 368... |
Line 372... |
DEMANGLE_COMPONENT_JAVA_RESOURCE,
|
DEMANGLE_COMPONENT_JAVA_RESOURCE,
|
/* A name formed by the concatenation of two parts. The left
|
/* A name formed by the concatenation of two parts. The left
|
subtree is the first part and the right subtree the second. */
|
subtree is the first part and the right subtree the second. */
|
DEMANGLE_COMPONENT_COMPOUND_NAME,
|
DEMANGLE_COMPONENT_COMPOUND_NAME,
|
/* A name formed by a single character. */
|
/* A name formed by a single character. */
|
DEMANGLE_COMPONENT_CHARACTER
|
DEMANGLE_COMPONENT_CHARACTER,
|
|
/* A decltype type. */
|
|
DEMANGLE_COMPONENT_DECLTYPE,
|
|
/* Global constructors keyed to name. */
|
|
DEMANGLE_COMPONENT_GLOBAL_CONSTRUCTORS,
|
|
/* Global destructors keyed to name. */
|
|
DEMANGLE_COMPONENT_GLOBAL_DESTRUCTORS,
|
|
/* A pack expansion. */
|
|
DEMANGLE_COMPONENT_PACK_EXPANSION
|
};
|
};
|
|
|
/* Types which are only used internally. */
|
/* Types which are only used internally. */
|
|
|
struct demangle_operator_info;
|
struct demangle_operator_info;
|
Line 413... |
Line 425... |
int args;
|
int args;
|
/* Name. */
|
/* Name. */
|
struct demangle_component *name;
|
struct demangle_component *name;
|
} s_extended_operator;
|
} s_extended_operator;
|
|
|
|
/* For DEMANGLE_COMPONENT_FIXED_TYPE. */
|
|
struct
|
|
{
|
|
/* The length, indicated by a C integer type name. */
|
|
struct demangle_component *length;
|
|
/* _Accum or _Fract? */
|
|
short accum;
|
|
/* Saturating or not? */
|
|
short sat;
|
|
} s_fixed;
|
|
|
/* For DEMANGLE_COMPONENT_CTOR. */
|
/* For DEMANGLE_COMPONENT_CTOR. */
|
struct
|
struct
|
{
|
{
|
/* Kind of constructor. */
|
/* Kind of constructor. */
|
enum gnu_v3_ctor_kinds kind;
|
enum gnu_v3_ctor_kinds kind;
|
Line 447... |
Line 470... |
const char* string;
|
const char* string;
|
/* Length of string. */
|
/* Length of string. */
|
int len;
|
int len;
|
} s_string;
|
} s_string;
|
|
|
/* For DEMANGLE_COMPONENT_TEMPLATE_PARAM. */
|
/* For DEMANGLE_COMPONENT_*_PARAM. */
|
struct
|
struct
|
{
|
{
|
/* Template parameter index. */
|
/* Parameter index. */
|
long number;
|
long number;
|
} s_number;
|
} s_number;
|
|
|
/* For DEMANGLE_COMPONENT_CHARACTER. */
|
/* For DEMANGLE_COMPONENT_CHARACTER. */
|
struct
|
struct
|