use remote-utils facilities for baud_rate
[deliverable/binutils-gdb.git] / gdb / ch-lang.c
index f512b4f78241709a792b6aeea24c8f699dc5ac3a..6467647b04b188adc3b6c1be6c5a7743ce710985 100644 (file)
@@ -25,6 +25,30 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.  */
 #include "language.h"
 #include "ch-lang.h"
 
+
+/* For now, Chill uses a simple mangling algorithm whereby you simply
+   discard everything after the occurance of two successive CPLUS_MARKER
+   characters to derive the demangled form. */
+
+char *
+chill_demangle (mangled)
+     const char *mangled;
+{
+  char *joiner;
+  char *demangled;
+
+  joiner = strchr (mangled, CPLUS_MARKER);
+  if (joiner != NULL && *(joiner + 1) == CPLUS_MARKER)
+    {
+      demangled = savestring (mangled, joiner - mangled);
+    }
+  else
+    {
+      demangled = NULL;
+    }
+  return (demangled);
+}
+
 static void
 chill_printchar (c, stream)
      register int c;
@@ -199,10 +223,14 @@ chill_create_fundamental_type (objfile, typeid)
       case FT_UNSIGNED_SHORT:          /* Chill ints are 2 bytes */
        type = init_type (TYPE_CODE_INT, 2, TYPE_FLAG_UNSIGNED, "UINT", objfile);
        break;
-      case FT_INTEGER:                 /* Chill longs are 4 bytes */
+      case FT_INTEGER:                 /* FIXME? */
+      case FT_SIGNED_INTEGER:          /* FIXME? */
+      case FT_LONG:                    /* Chill longs are 4 bytes */
+      case FT_SIGNED_LONG:             /* Chill longs are 4 bytes */
        type = init_type (TYPE_CODE_INT, 4, TYPE_FLAG_SIGNED, "LONG", objfile);
        break;
-      case FT_UNSIGNED_INTEGER:                /* Chill longs are 4 bytes */
+      case FT_UNSIGNED_INTEGER:                /* FIXME? */
+      case FT_UNSIGNED_LONG:           /* Chill longs are 4 bytes */
        type = init_type (TYPE_CODE_INT, 4, TYPE_FLAG_UNSIGNED, "ULONG", objfile);
        break;
       case FT_FLOAT:
@@ -222,7 +250,8 @@ static const struct op_print chill_op_print_tab[] = {
     {"AND", BINOP_LOGICAL_AND, PREC_LOGICAL_AND, 0},
     {"OR",  BINOP_LOGICAL_OR, PREC_LOGICAL_OR, 0},
     {"NOT", UNOP_LOGICAL_NOT, PREC_PREFIX, 0},
-    {"MOD", BINOP_REM, PREC_MUL, 0},
+    {"MOD", BINOP_MOD, PREC_MUL, 0},
+    {"REM", BINOP_REM, PREC_MUL, 0},
     {":=",  BINOP_ASSIGN, PREC_ASSIGN, 1},
     {"=",   BINOP_EQUAL, PREC_EQUAL, 0},
     {"/=",  BINOP_NOTEQUAL, PREC_EQUAL, 0},
@@ -234,6 +263,7 @@ static const struct op_print chill_op_print_tab[] = {
     {"-",   BINOP_SUB, PREC_ADD, 0},
     {"*",   BINOP_MUL, PREC_MUL, 0},
     {"/",   BINOP_DIV, PREC_MUL, 0},
+    {"//",  BINOP_CONCAT, PREC_PREFIX, 0},     /* FIXME: precedence? */
     {"-",   UNOP_NEG, PREC_PREFIX, 0},
     {NULL,  0, 0, 0}
 };
This page took 0.023914 seconds and 4 git commands to generate.