m2_is_string_type_p (struct type *type)
{
type = check_typedef (type);
- if (TYPE_CODE (type) == TYPE_CODE_ARRAY
+ if (type->code () == TYPE_CODE_ARRAY
&& TYPE_LENGTH (type) > 0
&& TYPE_LENGTH (TYPE_TARGET_TYPE (type)) > 0)
{
struct type *elttype = check_typedef (TYPE_TARGET_TYPE (type));
if (TYPE_LENGTH (elttype) == 1
- && (TYPE_CODE (elttype) == TYPE_CODE_INT
- || TYPE_CODE (elttype) == TYPE_CODE_CHAR))
+ && (elttype->code () == TYPE_CODE_INT
+ || elttype->code () == TYPE_CODE_CHAR))
return true;
}
{
struct value *temp = arg1;
type = TYPE_FIELD_TYPE (type, 0);
- if (type == NULL || (TYPE_CODE (type) != TYPE_CODE_PTR))
+ if (type == NULL || (type->code () != TYPE_CODE_PTR))
{
warning (_("internal error: unbounded "
"array structure is unknown"));
return value_ind (value_ptradd (arg1, value_as_long (arg2)));
}
else
- if (TYPE_CODE (type) != TYPE_CODE_ARRAY)
+ if (type->code () != TYPE_CODE_ARRAY)
{
- if (TYPE_NAME (type))
+ if (type->name ())
error (_("cannot subscript something of type `%s'"),
- TYPE_NAME (type));
+ type->name ());
else
error (_("cannot subscript requested type"));
}
evaluate_subexp_modula2
};
-extern const struct language_defn m2_language_defn =
+/* Constant data describing the M2 language. */
+
+extern const struct language_data m2_language_data =
{
"modula-2",
"Modula-2",
m2_print_typedef, /* Print a typedef using appropriate syntax */
m2_value_print_inner, /* la_value_print_inner */
c_value_print, /* Print a top-level value */
- default_read_var_value, /* la_read_var_value */
NULL, /* Language specific skip_trampoline */
NULL, /* name_of_this */
false, /* la_store_sym_names_in_linkage_form_p */
default_word_break_characters,
default_collect_symbol_completion_matches,
m2_language_arch_info,
- default_print_array_index,
default_pass_by_reference,
c_watch_location_expression,
NULL, /* la_get_symbol_name_matcher */
"{...}" /* la_struct_too_deep_ellipsis */
};
+/* Class representing the M2 language. */
+
+class m2_language : public language_defn
+{
+public:
+ m2_language ()
+ : language_defn (language_m2, m2_language_data)
+ { /* Nothing. */ }
+};
+
+/* Single instance of the M2 language. */
+
+static m2_language m2_language_defn;
+
static void *
build_m2_types (struct gdbarch *gdbarch)
{