* defs.h (language): Add language_minimal enum value.
authorJoel Brobecker <brobecker@gnat.com>
Thu, 8 May 2003 17:35:21 +0000 (17:35 +0000)
committerJoel Brobecker <brobecker@gnat.com>
Thu, 8 May 2003 17:35:21 +0000 (17:35 +0000)
        * c-lang.c (minimal_language_defn): New language definition.
        (_initialize_c_language): Add the new minimal language to the list
        of languages known to GDB.

gdb/ChangeLog
gdb/c-lang.c
gdb/defs.h

index 00cfdae..fd8cb1b 100644 (file)
@@ -1,3 +1,10 @@
+2003-05-08  J. Brobecker  <brobecker@gnat.com>
+
+       * defs.h (language): Add language_minimal enum value.
+       * c-lang.c (minimal_language_defn): New language definition.
+       (_initialize_c_language): Add the new minimal language to the list
+       of languages known to GDB.
+
 2003-05-08  Kevin Buettner  <kevinb@redhat.com>
 
        * frame.c (get_frame_type): Don't attempt to lazily initialize
index e492b9a..fbdf005 100644 (file)
@@ -651,10 +651,47 @@ const struct language_defn asm_language_defn =
   LANG_MAGIC
 };
 
+/* The following language_defn does not represent a real language.
+   It just provides a minimal support a-la-C that should allow users
+   to do some simple operations when debugging applications that use
+   a language currently not supported by GDB.  */
+
+const struct language_defn minimal_language_defn =
+{
+  "minimal",                   /* Language name */
+  language_minimal,
+  c_builtin_types,
+  range_check_off,
+  type_check_off,
+  case_sensitive_on,
+  c_preprocess_and_parse,
+  c_error,
+  evaluate_subexp_standard,
+  c_printchar,                 /* Print a character constant */
+  c_printstr,                  /* Function to print string constant */
+  c_emit_char,                 /* Print a single char */
+  c_create_fundamental_type,   /* Create fundamental type in this language */
+  c_print_type,                        /* Print a type using appropriate syntax */
+  c_val_print,                 /* Print a value using appropriate syntax */
+  c_value_print,               /* Print a top-level value */
+  NULL,                                /* Language specific skip_trampoline */
+  NULL,                                /* Language specific symbol demangler */
+  {"", "", "", ""},            /* Binary format info */
+  {"0%lo", "0", "o", ""},      /* Octal format info */
+  {"%ld", "", "d", ""},                /* Decimal format info */
+  {"0x%lx", "0x", "x", ""},    /* Hex format info */
+  c_op_print_tab,              /* expression operators for printing */
+  1,                           /* c-style arrays */
+  0,                           /* String lower bound */
+  &builtin_type_char,          /* Type of string elements */
+  LANG_MAGIC
+};
+
 void
 _initialize_c_language (void)
 {
   add_language (&c_language_defn);
   add_language (&cplus_language_defn);
   add_language (&asm_language_defn);
+  add_language (&minimal_language_defn);
 }
index 35d23df..6024253 100644 (file)
@@ -211,7 +211,8 @@ enum language
     language_m2,               /* Modula-2 */
     language_asm,              /* Assembly language */
     language_scm,              /* Scheme / Guile */
-    language_pascal            /* Pascal */
+    language_pascal,           /* Pascal */
+    language_minimal           /* All other languages, minimal support only */
   };
 
 enum precision_type