📄 plstafcommandparser.cpp
字号:
SvUTF8_on((SV*)ST(0)); #endif } //cerr << "Leaving errorBuffer." << endl; } XSRETURN(1);}XS(XS_STAFCommandParseResultPtr_DESTROY){ dXSARGS; if (items != 1) Perl_croak(aTHX_ "Usage: $result->DESTROY()"); { //cerr << "Entering destructor (STAFCommandParseResultPtr)." << endl; STAFCommandParseResultPtr *THING; if (SvROK(ST(0))) { IV tmp = SvIV((SV*)SvRV(ST(0))); THING = INT2PTR(STAFCommandParseResultPtr *,tmp); } else Perl_croak(aTHX_ "Object is not a reference"); delete THING; //cerr << "Leaving destructor (STAFCommandParseResultPtr)." << endl; } XSRETURN_EMPTY;}XS(XS_STAFCommandParseResultPtr_optionTimes){ dXSARGS; if (items != 2) Perl_croak(aTHX_ "Usage: $number = $result->optionTimes($optionName)"); { //cerr << "Entering optionTimes." << endl; STAFCommandParseResultPtr *THING; STAFString optionName; unsigned int RETVAL; dXSTARG; if (sv_derived_from(ST(0), "STAFCommandParseResultPtr")) { IV tmp = SvIV((SV*)SvRV(ST(0))); THING = INT2PTR(STAFCommandParseResultPtr *,tmp); } else Perl_croak(aTHX_ "Object is not of type STAFCommandParseResultPtr"); if (SvPOK(ST(1))) { STRLEN len; #ifdef STAF_OS_NAME_ZOS char *tmp = (char *)SvPVbyte(ST(1), len); optionName = STAFString(tmp, len); #else char *tmp = (char *)SvPVutf8(ST(1), len); optionName = STAFString(tmp, len, STAFString::kUTF8); #endif } else Perl_croak(aTHX_ "ST(1) is not of type STAFString"); RETVAL = (*THING)->optionTimes(optionName); XSprePUSH; PUSHu((UV)RETVAL); //cerr << "Leaving optionTimes." << endl; } XSRETURN(1);}XS(XS_STAFCommandParseResultPtr_optionValue){ dXSARGS; if (items < 2 || items > 3) Perl_croak(aTHX_ "Usage: $value = $result->optionValue($optionName, $optionIndex=1)"); { //cerr << "Entering optionValue." << endl; STAFCommandParseResultPtr *THING; STAFString optionName; unsigned int optionIndex; STAFString RETVAL; if (sv_derived_from(ST(0), "STAFCommandParseResultPtr")) { IV tmp = SvIV((SV*)SvRV(ST(0))); THING = INT2PTR(STAFCommandParseResultPtr *,tmp); } else Perl_croak(aTHX_ "Object is not of type STAFCommandParseResultPtr"); if (SvPOK(ST(1))) { STRLEN len; #ifdef STAF_OS_NAME_ZOS char *tmp = (char *)SvPVbyte(ST(1), len); optionName = STAFString(tmp, len); #else char *tmp = (char *)SvPVutf8(ST(1), len); optionName = STAFString(tmp, len, STAFString::kUTF8); #endif } else Perl_croak(aTHX_ "ST(1) is not of type STAFString"); if (items < 3) optionIndex = 1; else { optionIndex = (unsigned int)SvUV(ST(2)); } RETVAL = (*THING)->optionValue(optionName, optionIndex); ST(0) = sv_newmortal(); { unsigned int len; const char *tmp; #ifdef STAF_OS_NAME_ZOS STAFStringBufferPtr ptr = RETVAL.toCurrentCodePage(); tmp = ptr->buffer(); len = ptr->length(); sv_setpvn((SV*)ST(0), tmp, len); #else tmp = RETVAL.buffer(&len); sv_setpvn((SV*)ST(0), tmp, len); SvUTF8_on((SV*)ST(0)); #endif } //cerr << "Leaving optionValue." << endl; } XSRETURN(1);}XS(XS_STAFCommandParseResultPtr_numInstances){ dXSARGS; if (items != 1) Perl_croak(aTHX_ "Usage: $number = $result->numInstances()"); { //cerr << "Entering numInstances." << endl; STAFCommandParseResultPtr *THING; unsigned int RETVAL; dXSTARG; if (sv_derived_from(ST(0), "STAFCommandParseResultPtr")) { IV tmp = SvIV((SV*)SvRV(ST(0))); THING = INT2PTR(STAFCommandParseResultPtr *,tmp); } else Perl_croak(aTHX_ "Object is not of type STAFCommandParseResultPtr"); RETVAL = (*THING)->numInstances(); XSprePUSH; PUSHu((UV)RETVAL); //cerr << "Leaving numInstances." << endl; } XSRETURN(1);}XS(XS_STAFCommandParseResultPtr_instanceName){ dXSARGS; if (items != 2) Perl_croak(aTHX_ "Usage: $name = $result->instanceName($instanceNum)"); { //cerr << "Entering instanceName." << endl; STAFCommandParseResultPtr *THING; unsigned int instanceNum = (unsigned int)SvUV(ST(1)); STAFString RETVAL; if (sv_derived_from(ST(0), "STAFCommandParseResultPtr")) { IV tmp = SvIV((SV*)SvRV(ST(0))); THING = INT2PTR(STAFCommandParseResultPtr *,tmp); } else Perl_croak(aTHX_ "Object is not of type STAFCommandParseResultPtr"); RETVAL = (*THING)->instanceName(instanceNum); ST(0) = sv_newmortal(); { unsigned int len; const char *tmp; #ifdef STAF_OS_NAME_ZOS STAFStringBufferPtr ptr = RETVAL.toCurrentCodePage(); tmp = ptr->buffer(); len = ptr->length(); sv_setpvn((SV*)ST(0), tmp, len); #else tmp = RETVAL.buffer(&len); sv_setpvn((SV*)ST(0), tmp, len); SvUTF8_on((SV*)ST(0)); #endif } //cerr << "Leaving instanceName." << endl; } XSRETURN(1);}XS(XS_STAFCommandParseResultPtr_instanceValue){ dXSARGS; if (items != 2) Perl_croak(aTHX_ "Usage: $value = $result->instanceValue($instanceNum)"); { //cerr << "Entering instanceValue." << endl; STAFCommandParseResultPtr *THING; unsigned int instanceNum = (unsigned int)SvUV(ST(1)); STAFString RETVAL; if (sv_derived_from(ST(0), "STAFCommandParseResultPtr")) { IV tmp = SvIV((SV*)SvRV(ST(0))); THING = INT2PTR(STAFCommandParseResultPtr *,tmp); } else Perl_croak(aTHX_ "Object is not of type STAFCommandParseResultPtr"); RETVAL = (*THING)->instanceValue(instanceNum); ST(0) = sv_newmortal(); { unsigned int len; const char *tmp; #ifdef STAF_OS_NAME_ZOS STAFStringBufferPtr ptr = RETVAL.toCurrentCodePage(); tmp = ptr->buffer(); len = ptr->length(); sv_setpvn((SV*)ST(0), tmp, len); #else tmp = RETVAL.buffer(&len); sv_setpvn((SV*)ST(0), tmp, len); SvUTF8_on((SV*)ST(0)); #endif } //cerr << "Leaving instanceValue." << endl; } XSRETURN(1);}XS(XS_STAFCommandParseResultPtr_numArgs){ dXSARGS; if (items != 1) Perl_croak(aTHX_ "Usage: $number = $result->numArgs()"); { //cerr << "Entering numArgs." << endl; STAFCommandParseResultPtr *THING; unsigned int RETVAL; dXSTARG; if (sv_derived_from(ST(0), "STAFCommandParseResultPtr")) { IV tmp = SvIV((SV*)SvRV(ST(0))); THING = INT2PTR(STAFCommandParseResultPtr *,tmp); } else Perl_croak(aTHX_ "Object is not of type STAFCommandParseResultPtr"); RETVAL = (*THING)->numArgs(); XSprePUSH; PUSHu((UV)RETVAL); //cerr << "Leaving numArgs." << endl; } XSRETURN(1);}XS(XS_STAFCommandParseResultPtr_arg){ dXSARGS; if (items != 2) Perl_croak(aTHX_ "Usage: $value = $result->arg(argNum)"); { //cerr << "Entering arg." << endl; STAFCommandParseResultPtr *THING; unsigned int argNum = (unsigned int)SvUV(ST(1)); STAFString RETVAL; if (sv_derived_from(ST(0), "STAFCommandParseResultPtr")) { IV tmp = SvIV((SV*)SvRV(ST(0))); THING = INT2PTR(STAFCommandParseResultPtr *,tmp); } else Perl_croak(aTHX_ "Object is not of type STAFCommandParseResultPtr"); RETVAL = (*THING)->arg(argNum); ST(0) = sv_newmortal(); { unsigned int len; const char *tmp; #ifdef STAF_OS_NAME_ZOS STAFStringBufferPtr ptr = RETVAL.toCurrentCodePage(); tmp = ptr->buffer(); len = ptr->length(); sv_setpvn((SV*)ST(0), tmp, len); #else tmp = RETVAL.buffer(&len); sv_setpvn((SV*)ST(0), tmp, len); SvUTF8_on((SV*)ST(0)); #endif } //cerr << "Leaving arg." << endl; } XSRETURN(1);}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -