📄 b.xs
字号:
#define LOGOP_other(o) o->op_otherMODULE = B PACKAGE = B::LOGOP PREFIX = LOGOP_B::OPLOGOP_other(o) B::LOGOP oMODULE = B PACKAGE = B::LISTOP PREFIX = LISTOP_U32LISTOP_children(o) B::LISTOP o OP * kid = NO_INIT int i = NO_INIT CODE: i = 0; for (kid = o->op_first; kid; kid = kid->op_sibling) i++; RETVAL = i; OUTPUT: RETVAL#define PMOP_pmreplroot(o) o->op_pmreplroot#define PMOP_pmreplstart(o) o->op_pmreplstart#define PMOP_pmnext(o) o->op_pmnext#define PMOP_pmregexp(o) o->op_pmregexp#define PMOP_pmflags(o) o->op_pmflags#define PMOP_pmpermflags(o) o->op_pmpermflagsMODULE = B PACKAGE = B::PMOP PREFIX = PMOP_voidPMOP_pmreplroot(o) B::PMOP o OP * root = NO_INIT CODE: ST(0) = sv_newmortal(); root = o->op_pmreplroot; /* OP_PUSHRE stores an SV* instead of an OP* in op_pmreplroot */ if (o->op_type == OP_PUSHRE) { sv_setiv(newSVrv(ST(0), root ? svclassnames[SvTYPE((SV*)root)] : "B::SV"), PTR2IV(root)); } else { sv_setiv(newSVrv(ST(0), cc_opclassname(aTHX_ root)), PTR2IV(root)); }B::OPPMOP_pmreplstart(o) B::PMOP oB::PMOPPMOP_pmnext(o) B::PMOP oU16PMOP_pmflags(o) B::PMOP oU16PMOP_pmpermflags(o) B::PMOP ovoidPMOP_precomp(o) B::PMOP o REGEXP * rx = NO_INIT CODE: ST(0) = sv_newmortal(); rx = o->op_pmregexp; if (rx) sv_setpvn(ST(0), rx->precomp, rx->prelen);#define SVOP_sv(o) cSVOPo->op_sv#define SVOP_gv(o) ((GV*)cSVOPo->op_sv)MODULE = B PACKAGE = B::SVOP PREFIX = SVOP_B::SVSVOP_sv(o) B::SVOP oB::GVSVOP_gv(o) B::SVOP o#define PADOP_padix(o) o->op_padix#define PADOP_sv(o) (o->op_padix ? PL_curpad[o->op_padix] : Nullsv)#define PADOP_gv(o) ((o->op_padix \ && SvTYPE(PL_curpad[o->op_padix]) == SVt_PVGV) \ ? (GV*)PL_curpad[o->op_padix] : Nullgv)MODULE = B PACKAGE = B::PADOP PREFIX = PADOP_PADOFFSETPADOP_padix(o) B::PADOP oB::SVPADOP_sv(o) B::PADOP oB::GVPADOP_gv(o) B::PADOP oMODULE = B PACKAGE = B::PVOP PREFIX = PVOP_voidPVOP_pv(o) B::PVOP o CODE: /* * OP_TRANS uses op_pv to point to a table of 256 shorts * whereas other PVOPs point to a null terminated string. */ ST(0) = sv_2mortal(newSVpv(o->op_pv, (o->op_type == OP_TRANS) ? 256 * sizeof(short) : 0));#define LOOP_redoop(o) o->op_redoop#define LOOP_nextop(o) o->op_nextop#define LOOP_lastop(o) o->op_lastopMODULE = B PACKAGE = B::LOOP PREFIX = LOOP_B::OPLOOP_redoop(o) B::LOOP oB::OPLOOP_nextop(o) B::LOOP oB::OPLOOP_lastop(o) B::LOOP o#define COP_label(o) o->cop_label#define COP_stashpv(o) CopSTASHPV(o)#define COP_stash(o) CopSTASH(o)#define COP_file(o) CopFILE(o)#define COP_cop_seq(o) o->cop_seq#define COP_arybase(o) o->cop_arybase#define COP_line(o) CopLINE(o)#define COP_warnings(o) o->cop_warningsMODULE = B PACKAGE = B::COP PREFIX = COP_char *COP_label(o) B::COP ochar *COP_stashpv(o) B::COP oB::HVCOP_stash(o) B::COP ochar *COP_file(o) B::COP oU32COP_cop_seq(o) B::COP oI32COP_arybase(o) B::COP oU16COP_line(o) B::COP oB::SVCOP_warnings(o) B::COP oMODULE = B PACKAGE = B::SV PREFIX = SvU32SvREFCNT(sv) B::SV svU32SvFLAGS(sv) B::SV svMODULE = B PACKAGE = B::IV PREFIX = SvIVSvIV(sv) B::IV svIVSvIVX(sv) B::IV svUV SvUVX(sv) B::IV sv MODULE = B PACKAGE = B::IV#define needs64bits(sv) ((I32)SvIVX(sv) != SvIVX(sv))intneeds64bits(sv) B::IV svvoidpackiv(sv) B::IV sv CODE: if (sizeof(IV) == 8) { U32 wp[2]; IV iv = SvIVX(sv); /* * The following way of spelling 32 is to stop compilers on * 32-bit architectures from moaning about the shift count * being >= the width of the type. Such architectures don't * reach this code anyway (unless sizeof(IV) > 8 but then * everything else breaks too so I'm not fussed at the moment). */#ifdef UV_IS_QUAD wp[0] = htonl(((UV)iv) >> (sizeof(UV)*4));#else wp[0] = htonl(((U32)iv) >> (sizeof(UV)*4));#endif wp[1] = htonl(iv & 0xffffffff); ST(0) = sv_2mortal(newSVpvn((char *)wp, 8)); } else { U32 w = htonl((U32)SvIVX(sv)); ST(0) = sv_2mortal(newSVpvn((char *)&w, 4)); }MODULE = B PACKAGE = B::NV PREFIX = SvNVSvNV(sv) B::NV svNVSvNVX(sv) B::NV svMODULE = B PACKAGE = B::RV PREFIX = SvB::SVSvRV(sv) B::RV svMODULE = B PACKAGE = B::PV PREFIX = Svchar*SvPVX(sv) B::PV svvoidSvPV(sv) B::PV sv CODE: ST(0) = sv_newmortal(); sv_setpvn(ST(0), SvPVX(sv), SvCUR(sv));STRLENSvLEN(sv) B::PV svSTRLENSvCUR(sv) B::PV svMODULE = B PACKAGE = B::PVMG PREFIX = SvvoidSvMAGIC(sv) B::PVMG sv MAGIC * mg = NO_INIT PPCODE: for (mg = SvMAGIC(sv); mg; mg = mg->mg_moremagic) XPUSHs(make_mg_object(aTHX_ sv_newmortal(), mg));MODULE = B PACKAGE = B::PVMGB::HVSvSTASH(sv) B::PVMG sv#define MgMOREMAGIC(mg) mg->mg_moremagic#define MgPRIVATE(mg) mg->mg_private#define MgTYPE(mg) mg->mg_type#define MgFLAGS(mg) mg->mg_flags#define MgOBJ(mg) mg->mg_obj#define MgLENGTH(mg) mg->mg_lenMODULE = B PACKAGE = B::MAGIC PREFIX = Mg B::MAGICMgMOREMAGIC(mg) B::MAGIC mgU16MgPRIVATE(mg) B::MAGIC mgcharMgTYPE(mg) B::MAGIC mgU8MgFLAGS(mg) B::MAGIC mgB::SVMgOBJ(mg) B::MAGIC mgI32 MgLENGTH(mg) B::MAGIC mg voidMgPTR(mg) B::MAGIC mg CODE: ST(0) = sv_newmortal(); if (mg->mg_ptr){ if (mg->mg_len >= 0){ sv_setpvn(ST(0), mg->mg_ptr, mg->mg_len); } else { if (mg->mg_len == HEf_SVKEY) sv_setsv(ST(0),newRV((SV*)mg->mg_ptr)); } }MODULE = B PACKAGE = B::PVLV PREFIX = LvU32LvTARGOFF(sv) B::PVLV svU32LvTARGLEN(sv) B::PVLV svcharLvTYPE(sv) B::PVLV svB::SVLvTARG(sv) B::PVLV svMODULE = B PACKAGE = B::BM PREFIX = BmI32BmUSEFUL(sv) B::BM svU16BmPREVIOUS(sv) B::BM svU8BmRARE(sv) B::BM svvoidBmTABLE(sv) B::BM sv STRLEN len = NO_INIT char * str = NO_INIT CODE: str = SvPV(sv, len); /* Boyer-Moore table is just after string and its safety-margin \0 */ ST(0) = sv_2mortal(newSVpvn(str + len + 1, 256));MODULE = B PACKAGE = B::GV PREFIX = GvvoidGvNAME(gv) B::GV gv CODE: ST(0) = sv_2mortal(newSVpvn(GvNAME(gv), GvNAMELEN(gv)));boolis_empty(gv) B::GV gv CODE: RETVAL = GvGP(gv) == Null(GP*); OUTPUT: RETVALB::HVGvSTASH(gv) B::GV gvB::SVGvSV(gv) B::GV gvB::IOGvIO(gv) B::GV gvB::CVGvFORM(gv) B::GV gvB::AVGvAV(gv) B::GV gvB::HVGvHV(gv) B::GV gvB::GVGvEGV(gv) B::GV gvB::CVGvCV(gv) B::GV gvU32GvCVGEN(gv) B::GV gvU16GvLINE(gv) B::GV gvchar *GvFILE(gv) B::GV gvB::GVGvFILEGV(gv) B::GV gvMODULE = B PACKAGE = B::GVU32GvREFCNT(gv) B::GV gvU8GvFLAGS(gv) B::GV gvMODULE = B PACKAGE = B::IO PREFIX = IolongIoLINES(io) B::IO iolongIoPAGE(io) B::IO iolongIoPAGE_LEN(io) B::IO iolongIoLINES_LEFT(io) B::IO iochar *IoTOP_NAME(io) B::IO ioB::GVIoTOP_GV(io) B::IO iochar *IoFMT_NAME(io) B::IO ioB::GVIoFMT_GV(io) B::IO iochar *IoBOTTOM_NAME(io) B::IO ioB::GVIoBOTTOM_GV(io) B::IO ioshortIoSUBPROCESS(io) B::IO ioMODULE = B PACKAGE = B::IOcharIoTYPE(io) B::IO ioU8IoFLAGS(io) B::IO ioMODULE = B PACKAGE = B::AV PREFIX = AvSSize_tAvFILL(av) B::AV avSSize_tAvMAX(av) B::AV av#define AvOFF(av) ((XPVAV*)SvANY(av))->xof_offIVAvOFF(av) B::AV avvoidAvARRAY(av) B::AV av PPCODE: if (AvFILL(av) >= 0) { SV **svp = AvARRAY(av); I32 i; for (i = 0; i <= AvFILL(av); i++) XPUSHs(make_sv_object(aTHX_ sv_newmortal(), svp[i])); }MODULE = B PACKAGE = B::AVU8AvFLAGS(av) B::AV avMODULE = B PACKAGE = B::CV PREFIX = CvB::HVCvSTASH(cv) B::CV cvB::OPCvSTART(cv) B::CV cvB::OPCvROOT(cv) B::CV cvB::GVCvGV(cv) B::CV cvchar *CvFILE(cv) B::CV cvlongCvDEPTH(cv) B::CV cvB::AVCvPADLIST(cv) B::CV cvB::CVCvOUTSIDE(cv) B::CV cvvoidCvXSUB(cv) B::CV cv CODE: ST(0) = sv_2mortal(newSViv(PTR2IV(CvXSUB(cv))));voidCvXSUBANY(cv) B::CV cv CODE: ST(0) = sv_2mortal(newSViv(CvXSUBANY(cv).any_iv));MODULE = B PACKAGE = B::CVU16CvFLAGS(cv) B::CV cvMODULE = B PACKAGE = B::HV PREFIX = HvSTRLENHvFILL(hv) B::HV hvSTRLENHvMAX(hv) B::HV hvI32HvKEYS(hv) B::HV hvI32HvRITER(hv) B::HV hvchar *HvNAME(hv) B::HV hvB::PMOPHvPMROOT(hv) B::HV hvvoidHvARRAY(hv) B::HV hv PPCODE: if (HvKEYS(hv) > 0) { SV *sv; char *key; I32 len; (void)hv_iterinit(hv); EXTEND(sp, HvKEYS(hv) * 2); while ((sv = hv_iternextsv(hv, &key, &len))) { PUSHs(newSVpvn(key, len)); PUSHs(make_sv_object(aTHX_ sv_newmortal(), sv)); } }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -