Hjava_lang_Class* readClass(Hjava_lang_Class* classThis, classFile* fp, struct Hjava_lang_ClassLoader* loader, errorInfo *einfo) { u2 minor_version; u2 major_version; u4 magic; u2 access_flags; u2 this_class; u2 super_class; /* CLASS_CNAME(classThis) won't work until after 'setupClass', below */ const char* className = NULL; if (! checkBufSize(fp, 4+2+2, className, einfo)) return NULL; /* Read in class info */ readu4(&magic, fp); if (magic != JAVAMAGIC) { postExceptionMessage(einfo, JAVA_LANG(ClassFormatError), "Bad magic number 0x%x", magic); return NULL; } readu2(&minor_version, fp); readu2(&major_version, fp); /* Note, can't print CLASS_CNAME(classThis), as name isn't initialized yet... */ DBG(READCLASS, dprintf("major=%d, minor=%d\n", major_version, minor_version); );
modelica_string modelica_string_format_to_c_string_format(modelica_string format) { char buf[FMT_BUFSIZE]; const char *str = MMC_STRINGDATA(format), *tmp = str; int cont=1, n=0; buf[n++] = '%'; while (cont) { /* Parse flag characters */ switch (*tmp) { /* Extended flags? ',I */ case '#': case '0': case '-': case ' ': case '+': buf[n] = *(tmp++); checkBufSize(str, n++); break; default: cont = 0; } } // width: [1-9][0-9]* if ((*tmp >= '1') || (*tmp <= '9')) { while (*tmp >= '0' && *tmp <= '9') { buf[n] = *(tmp++); checkBufSize(str, n++); } } // precision: .[0-9]* if (*tmp == '.') { buf[n] = *(tmp++); checkBufSize(str, n++); while (*tmp >= '0' && *tmp <= '9') { buf[n] = *(tmp++); checkBufSize(str, n++); } } switch (*tmp) { case 'f': case 'e': case 'E': case 'g': case 'G': /* double */ case 'c': /* int */ buf[n] = *(tmp++); checkBufSize(str, n++); break; case 'd': case 'i': /* int */ case 'o': case 'x': case 'X': case 'u': /* uint */ buf[n] = 'l'; /* we use long in OpenModelica */ checkBufSize(str, n++); buf[n] = *(tmp++); checkBufSize(str, n++); break; case 'h': case 'l': case 'L': case 'q': case 'j': case 'z': case 't': omc_assert(NULL, dummyFILE_INFO, "Length modifiers are not legal in Modelica format strings: %s", str); break; default: omc_assert(NULL, dummyFILE_INFO, "Could not parse format string: invalid conversion specifier: %c in %s", *tmp, str); } if (*tmp) { omc_assert(NULL, dummyFILE_INFO, "Could not parse format string: trailing data after the format directive", *tmp, str); } buf[n] = '\0'; return mmc_mk_scon(buf); }