Example #1
0
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);
}
Example #2
0
// =-=-=-=-=-=-=-
// 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