DEADSOFTWARE

Добавлен тип SYSTEM.PTR
[dsw-obn.git] / src / backends / jvm / generator-jvm-basic.c
index 478a92c6f38cb91acb3c03c3f939c3158023d5f3..2baed6556849dc01aa1d61d9fda6836cccf7642c 100644 (file)
@@ -149,6 +149,9 @@ jvm_get_descriptor(oberon_type_t * type)
                                        break;
                        }
                        break;
+               case OBERON_TYPE_SYSTEM_PTR:
+                       return new_string("Ljava/lang/Object;");
+                       break;
                default:
                        gen_error("jvm_get_descriptor: unsupported type class %i", type -> class);
                        break;
@@ -172,6 +175,9 @@ jvm_get_descriptor_safe(oberon_type_t * type)
                case OBERON_TYPE_ARRAY:
                        return new_string("A%s", jvm_get_descriptor_safe(type -> base));
                        break;
+               case OBERON_TYPE_SYSTEM_PTR:
+                       return new_string("SYSPTR");
+                       break;
                default:
                        return jvm_get_descriptor(type);
                        break;
@@ -199,6 +205,7 @@ jvm_get_prefix(oberon_type_t * type)
                case OBERON_TYPE_POINTER:
                case OBERON_TYPE_STRING:
                case OBERON_TYPE_NIL:
+               case OBERON_TYPE_SYSTEM_PTR:
                        return 'a';
                        break;
                case OBERON_TYPE_REAL:
@@ -270,6 +277,7 @@ jvm_get_postfix(oberon_type_t * type)
                case OBERON_TYPE_POINTER:
                case OBERON_TYPE_STRING:
                case OBERON_TYPE_NIL:
+               case OBERON_TYPE_SYSTEM_PTR:
                        return 'a';
                        break;
                case OBERON_TYPE_REAL:
@@ -386,6 +394,9 @@ jvm_get_class_full_name(oberon_type_t * type)
                        rec_id = type -> gen_type -> rec_id;
                        name = new_string("%s$RECORD%i", type -> module -> name, rec_id);
                        break;
+               case OBERON_TYPE_SYSTEM_PTR:
+                       name = new_string("java/lang/Object");
+                       break;
                default:
                        gen_error("jvm_get_class_full_name: unk type class %i", type -> class);
                        break;