コード例 #1
0
ファイル: file._nitni.c プロジェクト: LRBH10/my-Project
/* friendly for string::String::from_cstring */
String file_new_String_from_cstring( char * str )
{
val_t str___nit;
String result___nitni;
val_t result___nit;
str___nit = BOX_NativeString(str);
result___nitni = malloc( sizeof( struct s_String ) );
result___nitni->ref.val = NIT_NULL;
result___nitni->ref.count = 0;
nitni_local_ref_add( (struct nitni_ref *)result___nitni );
result___nit = NEW_String_standard___string___String___from_cstring( str___nit );
result___nitni->ref.val = result___nit;
return result___nitni;
}
コード例 #2
0
val_t standard___environ___String___environ(val_t p0){
  struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
  val_t REGB0;
  val_t REGB1;
  val_t tmp;
  static val_t once_value_1; /* Once value */
    static val_t once_value_2; /* Once value */
    static val_t once_value_4; /* Once value */
  fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
  fra.me.file = LOCATE_standard___environ;
  fra.me.line = 22;
  fra.me.meth = LOCATE_standard___environ___String___environ;
  fra.me.has_broke = 0;
  fra.me.REG_size = 2;
  fra.me.nitni_local_ref_head = NULL;
  fra.me.REG[0] = NIT_NULL;
  fra.me.REG[1] = NIT_NULL;
  fra.me.REG[0] = p0;
  /* ../lib/standard/environ.nit:26 */
  fra.me.REG[0] = CALL_standard___string___String___to_cstring(fra.me.REG[0])(fra.me.REG[0]);
  fra.me.REG[0] = CALL_standard___environ___NativeString___get_environ(fra.me.REG[0])(fra.me.REG[0]);
  /* ../lib/standard/environ.nit:28 */
  if (!once_value_1) {
    if (!once_value_2) {
      fra.me.REG[1] = BOX_NativeString("");
      REGB0 = TAG_Int(0);
      fra.me.REG[1] = NEW_String_standard___string___String___with_native(fra.me.REG[1], REGB0);
      once_value_2 = fra.me.REG[1];
      register_static_object(&once_value_2);
    } else fra.me.REG[1] = once_value_2;
    fra.me.REG[1] = fra.me.REG[1];
    fra.me.REG[1] = CALL_standard___string___String___to_cstring(fra.me.REG[1])(fra.me.REG[1]);
    fra.me.REG[1] = CALL_standard___environ___NativeString___get_environ(fra.me.REG[1])(fra.me.REG[1]);
    once_value_1 = fra.me.REG[1];
    register_static_object(&once_value_1);
  } else fra.me.REG[1] = once_value_1;
  fra.me.REG[1] = fra.me.REG[1];
  /* ../lib/standard/environ.nit:29 */
  REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[0],fra.me.REG[1]));
  if (UNTAG_Bool(REGB0)) {
  } else {
    REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]);
    REGB0 = REGB1;
  }
  REGB0 = TAG_Bool(!UNTAG_Bool(REGB0));
  if (UNTAG_Bool(REGB0)) {
    /* ../lib/standard/environ.nit:30 */
    fra.me.REG[0] = NEW_String_standard___string___String___from_cstring(fra.me.REG[0]);
    goto label3;
  } else {
    /* ../lib/standard/environ.nit:32 */
    if (!once_value_4) {
      fra.me.REG[1] = BOX_NativeString("");
      REGB0 = TAG_Int(0);
      fra.me.REG[1] = NEW_String_standard___string___String___with_native(fra.me.REG[1], REGB0);
      once_value_4 = fra.me.REG[1];
      register_static_object(&once_value_4);
    } else fra.me.REG[1] = once_value_4;
    fra.me.REG[1] = fra.me.REG[1];
    fra.me.REG[0] = fra.me.REG[1];
    goto label3;
  }
  label3: while(0);
  stack_frame_head = fra.me.prev;
  return fra.me.REG[0];
}