return gdb_demangle (mangled, options | DMGL_JAVA);
}
+/* la_sniff_from_mangled_name for Java. */
+
+static int
+java_sniff_from_mangled_name (const char *mangled, char **demangled)
+{
+ *demangled = java_demangle (mangled, DMGL_PARAMS | DMGL_ANSI);
+ return *demangled != NULL;
+}
+
/* Find the member function name of the demangled name NAME. NAME
must be a method name including arguments, in order to correctly
locate the last component.
evaluate_subexp_java
};
+static const char *java_extensions[] =
+{
+ ".java", ".class", NULL
+};
+
const struct language_defn java_language_defn =
{
"java", /* Language name */
case_sensitive_on,
array_row_major,
macro_expansion_no,
+ java_extensions,
&exp_descriptor_java,
java_parse,
java_yyerror,
basic_lookup_symbol_nonlocal, /* lookup_symbol_nonlocal */
basic_lookup_transparent_type,/* lookup_transparent_type */
java_demangle, /* Language specific symbol demangler */
+ java_sniff_from_mangled_name,
java_class_name_from_physname,/* Language specific class name */
java_op_print_tab, /* expression operators for printing */
0, /* not c-style arrays */
builtin_java_type->builtin_char
= arch_character_type (gdbarch, 16, 1, "char");
builtin_java_type->builtin_float
- = arch_float_type (gdbarch, 32, "float", NULL);
+ = arch_float_type (gdbarch, 32, "float", floatformats_ieee_single);
builtin_java_type->builtin_double
- = arch_float_type (gdbarch, 64, "double", NULL);
+ = arch_float_type (gdbarch, 64, "double", floatformats_ieee_double);
builtin_java_type->builtin_void
= arch_type (gdbarch, TYPE_CODE_VOID, 1, "void");