static YogVal end(YogEnv* env, YogVal self, YogVal pkg, YogVal args, YogVal kw, YogVal block) { SAVE_ARGS5(env, self, pkg, args, kw, block); YogVal group = YNIL; YogVal retval = YUNDEF; PUSH_LOCALS2(env, group, retval); YogCArg params[] = { { "|", NULL }, { "group", &group }, { NULL, NULL } }; YogGetArgs_parse_args(env, "end", params, args, kw); CHECK_SELF_MATCH(env, self); if (IS_FIXNUM(group)) { retval = end_num(env, self, VAL2INT(group)); } else if (IS_NIL(group)) { retval = end_num(env, self, 0); } else if (IS_PTR(group) && (BASIC_OBJ_TYPE(group) == TYPE_STRING)) { retval = end_str(env, self, group); } else { raise_invalid_group(env, group); } RETURN(env, retval); }
// =-=-=-=-=-=-=- // public - ctor for api entry table pack_entry_table::pack_entry_table( packInstructArray_t _defs[] ) { // =-=-=-=-=-=-=- // initialize table from input array int i = 0; std::string end_str( PACK_TABLE_END_PI ); while ( end_str != _defs[ i ].name ) { table_[ _defs[ i ].name ].packInstruct = _defs[i].packInstruct; ++i; } // for i } // ctor