X-Git-Url: http://git.efficios.com/?a=blobdiff_plain;f=gdb%2Flanguage.h;h=6fd0958820ffc19a709683a410f1a3c0314f73cc;hb=5f579bc5f9ba6cc5a444fa49f25fbfa5274bd37b;hp=511c1cbe0ea67e071fd7425c855b2aefb0191361;hpb=f290d38e06f4f311d4fe339e50afa3fd57fc1b4b;p=deliverable%2Fbinutils-gdb.git diff --git a/gdb/language.h b/gdb/language.h index 511c1cbe0e..6fd0958820 100644 --- a/gdb/language.h +++ b/gdb/language.h @@ -96,6 +96,17 @@ extern enum case_mode } case_mode; +/* array_ordering == + array_row_major: Arrays are in row major order + array_column_major: Arrays are in column major order.*/ + +extern enum array_ordering + { + array_row_major, array_column_major + } +array_ordering; + + /* case_sensitivity == case_sensitive_on: Case sensitivity in name matching is used case_sensitive_off: Case sensitivity in name matching is not used */ @@ -106,46 +117,15 @@ extern enum case_sensitivity } case_sensitivity; -/* Information for doing language dependent formatting of printed values. */ - -struct language_format_info - { - /* The format that can be passed directly to standard C printf functions - to generate a completely formatted value in the format appropriate for - the language. */ - - char *la_format; - - /* The prefix to be used when directly printing a value, or constructing - a standard C printf format. This generally is everything up to the - conversion specification (the part introduced by the '%' character - and terminated by the conversion specifier character). */ - - char *la_format_prefix; - - /* The conversion specifier. This is generally everything after the - field width and precision, typically only a single character such - as 'o' for octal format or 'x' for hexadecimal format. */ - - char *la_format_specifier; - - /* The suffix to be used when directly printing a value, or constructing - a standard C printf format. This generally is everything after the - conversion specification (the part introduced by the '%' character - and terminated by the conversion specifier character). */ - - char *la_format_suffix; /* Suffix for custom format string */ - }; - /* Per architecture (OS/ABI) language information. */ struct language_arch_info { - /* Its primative types. This is a vector ended by a NULL pointer. + /* Its primitive types. This is a vector ended by a NULL pointer. These types can be specified by name in parsing types in expressions, regardless of whether the program being debugged actually defines such a type. */ - struct type **primative_type_vector; + struct type **primitive_type_vector; /* Type of elements of strings. */ struct type *string_char_type; }; @@ -153,7 +133,7 @@ struct language_arch_info struct type *language_string_char_type (const struct language_defn *l, struct gdbarch *gdbarch); -struct type *language_lookup_primative_type_by_name (const struct language_defn *l, +struct type *language_lookup_primitive_type_by_name (const struct language_defn *l, struct gdbarch *gdbarch, const char *name); @@ -187,6 +167,9 @@ struct language_defn /* Default case sensitivity */ enum case_sensitivity la_case_sensitivity; + /* Multi-dimensional array ordering */ + enum array_ordering la_array_ordering; + /* Definitions related to expression printing, prefixifying, and dumping */ @@ -210,7 +193,7 @@ struct language_defn void (*la_printchar) (int ch, struct ui_file * stream); - void (*la_printstr) (struct ui_file * stream, char *string, + void (*la_printstr) (struct ui_file * stream, const bfd_byte *string, unsigned int length, int width, int force_ellipses); @@ -225,7 +208,7 @@ struct language_defn /* Print a value using syntax appropriate for this language. */ - int (*la_val_print) (struct type *, char *, int, CORE_ADDR, + int (*la_val_print) (struct type *, const bfd_byte *, int, CORE_ADDR, struct ui_file *, int, int, int, enum val_prettyprint); @@ -270,22 +253,6 @@ struct language_defn /* Return class name of a mangled method name or NULL. */ char *(*la_class_name_from_physname) (const char *physname); - /* Base 2 (binary) formats. */ - - struct language_format_info la_binary_format; - - /* Base 8 (octal) formats. */ - - struct language_format_info la_octal_format; - - /* Base 10 (decimal) formats */ - - struct language_format_info la_decimal_format; - - /* Base 16 (hexadecimal) formats */ - - struct language_format_info la_hex_format; - /* Table for printing expressions */ const struct op_print *la_op_print_tab; @@ -388,47 +355,6 @@ extern enum language set_language (enum language); #define LA_VALUE_PRINT(val,stream,fmt,pretty) \ (current_language->la_value_print(val,stream,fmt,pretty)) -/* Return a format string for printf that will print a number in one of - the local (language-specific) formats. Result is static and is - overwritten by the next call. Takes printf options like "08" or "l" - (to produce e.g. %08x or %lx). */ - -#define local_binary_format() \ - (current_language->la_binary_format.la_format) -#define local_binary_format_prefix() \ - (current_language->la_binary_format.la_format_prefix) -#define local_binary_format_specifier() \ - (current_language->la_binary_format.la_format_specifier) -#define local_binary_format_suffix() \ - (current_language->la_binary_format.la_format_suffix) - -#define local_octal_format() \ - (current_language->la_octal_format.la_format) -#define local_octal_format_prefix() \ - (current_language->la_octal_format.la_format_prefix) -#define local_octal_format_specifier() \ - (current_language->la_octal_format.la_format_specifier) -#define local_octal_format_suffix() \ - (current_language->la_octal_format.la_format_suffix) - -#define local_decimal_format() \ - (current_language->la_decimal_format.la_format) -#define local_decimal_format_prefix() \ - (current_language->la_decimal_format.la_format_prefix) -#define local_decimal_format_specifier() \ - (current_language->la_decimal_format.la_format_specifier) -#define local_decimal_format_suffix() \ - (current_language->la_decimal_format.la_format_suffix) - -#define local_hex_format() \ - (current_language->la_hex_format.la_format) -#define local_hex_format_prefix() \ - (current_language->la_hex_format.la_format_prefix) -#define local_hex_format_specifier() \ - (current_language->la_hex_format.la_format_specifier) -#define local_hex_format_suffix() \ - (current_language->la_hex_format.la_format_suffix) - #define LA_PRINT_CHAR(ch, stream) \ (current_language->la_printchar(ch, stream)) #define LA_PRINT_STRING(stream, string, length, width, force_ellipses) \ @@ -447,17 +373,6 @@ extern enum language set_language (enum language); && ((c) < 0x7F || (c) >= 0xA0) \ && (!sevenbit_strings || (c) < 0x80)) -/* Return a format string for printf that will print a number in one of - the local (language-specific) formats. Result is static and is - overwritten by the next call. Takes printf options like "08" or "l" - (to produce e.g. %08x or %lx). */ - -extern char *local_decimal_format_custom (char *); /* language.c */ - -extern char *local_octal_format_custom (char *); /* language.c */ - -extern char *local_hex_format_custom (char *); /* language.c */ - #if 0 /* FIXME: cagney/2000-03-04: This function does not appear to be used. It can be deleted once 5.0 has been released. */ @@ -467,14 +382,6 @@ extern char *local_hex_format_custom (char *); /* language.c */ extern char *longest_raw_hex_string (LONGEST); #endif -/* Return a string that contains a number formatted in one of the local - (language-specific) formats. Result is static and is overwritten by - the next call. Takes printf options like "08l" or "l". */ - -extern char *local_hex_string (LONGEST); /* language.c */ - -extern char *local_hex_string_custom (LONGEST, char *); /* language.c */ - /* Type predicates */ extern int simple_type (struct type *);