DEADSOFTWARE

JVM: Реализованы переменные-процедуры в генераторе
[dsw-obn.git] / src / backends / jvm / generator-jvm-basic.c
index d092f8e799aa1d38af2f368cb0d5840026fb1329..865ffdd4177f7625fb1f5fdef57b2f3ba6c0cb39 100644 (file)
@@ -205,6 +205,27 @@ jvm_get_field_full_name(oberon_object_t * x)
        return NULL;
 }
 
+char *
+jvm_get_field_full_name_safe(oberon_object_t * x)
+{
+       switch(x -> class)
+       {
+               case OBERON_CLASS_VAR:
+               case OBERON_CLASS_PROC:
+                       return new_string("%s$%s", x -> module -> name, x -> name);
+               case OBERON_CLASS_FIELD:;
+                       char * rec_name = jvm_get_class_full_name(x -> parent_type);
+                       return new_string("%s$%s", rec_name, x -> name);
+               case OBERON_CLASS_MODULE:
+                       return new_string(x -> module -> name);
+               default:
+                       gen_error("jvm_get_field_full_name: wat");
+                       break;
+       }
+
+       return NULL;
+}
+
 char *
 jvm_get_class_full_name(oberon_type_t * type)
 {