+ m2_is_string_type_p,
+ "{...}" /* 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. */ }
+
+ /* See language.h. */
+ void language_arch_info (struct gdbarch *gdbarch,
+ struct language_arch_info *lai) const override
+ {
+ const struct builtin_m2_type *builtin = builtin_m2_type (gdbarch);
+
+ lai->string_char_type = builtin->builtin_char;
+ lai->primitive_type_vector
+ = GDBARCH_OBSTACK_CALLOC (gdbarch, nr_m2_primitive_types + 1,
+ struct type *);
+
+ lai->primitive_type_vector [m2_primitive_type_char]
+ = builtin->builtin_char;
+ lai->primitive_type_vector [m2_primitive_type_int]
+ = builtin->builtin_int;
+ lai->primitive_type_vector [m2_primitive_type_card]
+ = builtin->builtin_card;
+ lai->primitive_type_vector [m2_primitive_type_real]
+ = builtin->builtin_real;
+ lai->primitive_type_vector [m2_primitive_type_bool]
+ = builtin->builtin_bool;
+
+ lai->bool_type_symbol = "BOOLEAN";
+ lai->bool_type_default = builtin->builtin_bool;
+ }
+
+ /* See language.h. */
+
+ void print_type (struct type *type, const char *varstring,
+ struct ui_file *stream, int show, int level,
+ const struct type_print_options *flags) const override
+ {
+ m2_print_type (type, varstring, stream, show, level, flags);
+ }