-/* Demangler defs for GNU C++ style demangling.
+/* Defs for interface to demanglers.
Copyright 1992 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
#define DMGL_PARAMS (1 << 0) /* Include function args */
#define DMGL_ANSI (1 << 1) /* Include const, volatile, etc */
+
+/* Enumeration of possible demangling styles.
+
+ Lucid and cfront styles are still kept logically distinct, even though
+ they now both behave identically. The resulting style is actual the
+ union of both. I.E. either style recognizes both "__pt__" and "__rf__"
+ for operator "->", even though the first is lucid style and the second
+ is cfront/ARM style. (FIXME?) */
+
+extern enum demangling_styles
+{
+ unknown_demangling = 0,
+ auto_demangling,
+ gnu_demangling,
+ lucid_demangling,
+ cfront_demangling
+} current_demangling_style;
+
+/* Define string names for the various demangling styles. */
+
+#define AUTO_DEMANGLING_STYLE_STRING "auto"
+#define GNU_DEMANGLING_STYLE_STRING "gnu"
+#define LUCID_DEMANGLING_STYLE_STRING "lucid"
+#define CFRONT_DEMANGLING_STYLE_STRING "cfront"
+
+/* Some macros to test what demangling style is active. */
+
+#define AUTO_DEMANGLING (current_demangling_style == auto_demangling)
+#define GNU_DEMANGLING (current_demangling_style == gnu_demangling)
+#define LUCID_DEMANGLING (current_demangling_style == lucid_demangling)
+#define CFRONT_DEMANGLING (current_demangling_style == cfront_demangling)
+
+extern void
+set_demangling_style PARAMS ((char *));