3 ÁŽž`„d>ejj ƒZ%Gd?d@„d@e%ƒZ&GdAdB„dBe%ƒZ'GdCdD„dDe%ƒZ(GdEdF„dFe%ƒZ)GdGdH„dHe%ƒZ*GdIdJ„dJe%ƒZ+GdKdL„dLejjƒZ,GdMdN„dNejj ƒZ-GdOdP„dPe-ƒZ.GdQdR„dRe-ƒZ/GdSdT„dTejjƒZ0GdUdV„dVejj ƒZ1GdWdX„dXe1ƒZ2GdYdZ„dZe1ƒZ3Gd[d\„d\ejjƒZ4Gd]d^„d^ejj ƒZ5Gd_d`„d`e5ƒZ6Gdadb„dbe5ƒZ7Gdcdd„ddejj ƒZ8Gdedf„dfe8ƒZ9Gdgdh„dhejjƒZ:didj„Z;dS)kéNz libstdc++::cCs tjdƒS)NÚbool)ÚgdbÚ lookup_type©rrú0/usr/share/gcc-8/python/libstdcxx/v6/xmethods.pyÚ get_bool_typesrcCs tjdƒS)Nz std::size_t)rrrrrrÚget_std_size_typesrc@seZdZdd„ZdS)ÚLibStdCxxXMethodcCstjjj||ƒ||_dS)N)rÚxmethodÚXMethodÚ__init__Ú worker_class)ÚselfÚnamer rrrr szLibStdCxxXMethod.__init__N)Ú__name__Ú __module__Ú __qualname__r rrrrr sr c@seZdZdd„Zdd„ZdS)ÚArrayWorkerBasecCs||_||_dS)N)Ú _val_typeÚ_size)rÚval_typeÚsizerrrr &szArrayWorkerBase.__init__cCstjdƒ}|j|jjƒƒjƒS)Nz (void *) 0)rZparse_and_evalÚcastrÚpointerÚ dereference)rZnullptrrrrÚ null_value*s zArrayWorkerBase.null_valueN)rrrr rrrrrr%src@s,eZdZdd„Zdd„Zdd„Zdd„Zd S) ÚArraySizeWorkercCstj|||ƒdS)N)rr )rrrrrrr /szArraySizeWorker.__init__cCsdS)Nr)rrrrÚ get_arg_types2szArraySizeWorker.get_arg_typescCstƒS)N)r)rÚobjrrrÚget_result_type5szArraySizeWorker.get_result_typecCs|jS)N)r)rrrrrÚ__call__8szArraySizeWorker.__call__N)rrrr rrr rrrrr.src@s,eZdZdd„Zdd„Zdd„Zdd„Zd S) ÚArrayEmptyWorkercCstj|||ƒdS)N)rr )rrrrrrr <szArrayEmptyWorker.__init__cCsdS)Nr)rrrrr?szArrayEmptyWorker.get_arg_typescCstƒS)N)r)rrrrrrBsz ArrayEmptyWorker.get_result_typecCst|jƒdkS)Nr)Úintr)rrrrrr EszArrayEmptyWorker.__call__N)rrrr rrr rrrrr!;sr!c@s,eZdZdd„Zdd„Zdd„Zdd„Zd S) ÚArrayFrontWorkercCstj|||ƒdS)N)rr )rrrrrrr IszArrayFrontWorker.__init__cCsdS)Nr)rrrrrLszArrayFrontWorker.get_arg_typescCs|jS)N)r)rrrrrrOsz ArrayFrontWorker.get_result_typecCs&t|jƒdkr|ddS|jƒSdS)NrÚ_M_elems)r"rr)rrrrrr Rs zArrayFrontWorker.__call__N)rrrr rrr rrrrr#Hsr#c@s,eZdZdd„Zdd„Zdd„Zdd„Zd S) ÚArrayBackWorkercCstj|||ƒdS)N)rr )rrrrrrr YszArrayBackWorker.__init__cCsdS)Nr)rrrrr\szArrayBackWorker.get_arg_typescCs|jS)N)r)rrrrrr_szArrayBackWorker.get_result_typecCs,t|jƒdkr |d|jdS|jƒSdS)Nrr$é)r"rr)rrrrrr bszArrayBackWorker.__call__N)rrrr rrr rrrrr%Xsr%c@s,eZdZdd„Zdd„Zdd„Zdd„Zd S) Ú ArrayAtWorkercCstj|||ƒdS)N)rr )rrrrrrr iszArrayAtWorker.__init__cCstƒS)N)r)rrrrrlszArrayAtWorker.get_arg_typescCs|jS)N)r)rrÚindexrrrroszArrayAtWorker.get_result_typecCs4t|ƒt|jƒkr(tdt|ƒ|jfƒ‚|d|S)Nz%Array index "%d" should not be >= %d.r$)r"rÚ IndexError)rrr(rrrr rszArrayAtWorker.__call__N)rrrr rrr rrrrr'hsr'c@s,eZdZdd„Zdd„Zdd„Zdd„Zd S) ÚArraySubscriptWorkercCstj|||ƒdS)N)rr )rrrrrrr yszArraySubscriptWorker.__init__cCstƒS)N)r)rrrrr|sz"ArraySubscriptWorker.get_arg_typescCs|jS)N)r)rrr(rrrrsz$ArraySubscriptWorker.get_result_typecCs&t|jƒdkr|d|S|jƒSdS)Nrr$)r"rr)rrr(rrrr ‚s zArraySubscriptWorker.__call__N)rrrr rrr rrrrr*xsr*c@seZdZdd„Zdd„ZdS)ÚArrayMethodsMatchercsftjjjˆtdƒtdtƒtdtƒtdtƒtdt ƒtdt ƒtdt ƒdœˆ_ ‡fd d „ˆj Dƒˆ_ dS) NZarrayrÚemptyÚfrontÚbackÚatz operator[])rr,r-r.r/z operator[]csg|]}ˆj|‘qSr)Ú _method_dict)Ú.0Úm)rrrú ”sz0ArrayMethodsMatcher.__init__..)rr ÚXMethodMatcherr Úmatcher_name_prefixr rr!r#r%r'r*r0Úmethods)rr)rrr ‰s  zArrayMethodsMatcher.__init__c Csbtjd|jƒsdS|jj|ƒ}|dks.|j r2dSy|jdƒ}|jdƒ}Wn dS|j||ƒS)Nz^std::(__\d+::)?array<.*>$rr&)ÚreÚmatchÚtagr0ÚgetÚenabledÚtemplate_argumentr )rÚ class_typeÚ method_nameÚmethodZ value_typerrrrr8–s  zArrayMethodsMatcher.matchN)rrrr r8rrrrr+ˆs r+c@s$eZdZdd„Zdd„Zdd„ZdS)ÚDequeWorkerBasecCs||_d|jpd|_dS)Nir&)rÚsizeofÚ_bufsize)rrrrrr ¦szDequeWorkerBase.__init__cCsV|ddd}|ddd}|ddd}|ddd}|||j||S)NÚ_M_implÚ_M_startÚ_M_nodeÚ _M_finishÚ_M_curÚ_M_first)rB)rrÚ first_nodeZ last_nodeZcurÚfirstrrrrªs zDequeWorkerBase.sizecCs4|ddd}|t|ƒ|j}|d||jS)NrCrDrEr)r"rB)rrÚidxrIZ index_noderrrr(±szDequeWorkerBase.indexN)rrrr rr(rrrrr@¥sr@c@s$eZdZdd„Zdd„Zdd„ZdS)ÚDequeEmptyWorkercCsdS)Nr)rrrrr·szDequeEmptyWorker.get_arg_typescCstƒS)N)r)rrrrrrºsz DequeEmptyWorker.get_result_typecCs |ddd|dddkS)NrCrDrGrFr)rrrrrr ½szDequeEmptyWorker.__call__N)rrrrrr rrrrrL¶srLc@s$eZdZdd„Zdd„Zdd„ZdS)ÚDequeSizeWorkercCsdS)Nr)rrrrrÂszDequeSizeWorker.get_arg_typescCstƒS)N)r)rrrrrrÅszDequeSizeWorker.get_result_typecCs |j|ƒS)N)r)rrrrrr ÈszDequeSizeWorker.__call__N)rrrrrr rrrrrMÁsrMc@s$eZdZdd„Zdd„Zdd„ZdS)ÚDequeFrontWorkercCsdS)Nr)rrrrrÌszDequeFrontWorker.get_arg_typescCs|jS)N)r)rrrrrrÏsz DequeFrontWorker.get_result_typecCs|ddddS)NrCrDrGrr)rrrrrr ÒszDequeFrontWorker.__call__N)rrrrrr rrrrrNËsrNc@s$eZdZdd„Zdd„Zdd„ZdS)ÚDequeBackWorkercCsdS)Nr)rrrrrÖszDequeBackWorker.get_arg_typescCs|jS)N)r)rrrrrrÙszDequeBackWorker.get_result_typecCs^|ddd|dddkrF|dddd}|d|jdS|ddddSdS) NrCrFrGrHrEr&réÿÿÿÿ)rB)rrÚ prev_noderrrr Üs zDequeBackWorker.__call__N)rrrrrr rrrrrOÕsrOc@s$eZdZdd„Zdd„Zdd„ZdS)ÚDequeSubscriptWorkercCstƒS)N)r)rrrrråsz"DequeSubscriptWorker.get_arg_typescCs|jS)N)r)rrÚ subscriptrrrrèsz$DequeSubscriptWorker.get_result_typecCs |j||ƒS)N)r()rrrSrrrr ëszDequeSubscriptWorker.__call__N)rrrrrr rrrrrRäsrRc@s$eZdZdd„Zdd„Zdd„ZdS)Ú DequeAtWorkercCstƒS)N)r)rrrrrïszDequeAtWorker.get_arg_typescCs|jS)N)r)rrr(rrrròszDequeAtWorker.get_result_typecCs@t|j|ƒƒ}t|ƒ|kr0tdt|ƒ|fƒ‚n |j||ƒSdS)Nz%Deque index "%d" should not be >= %d.)r"rr)r()rrr(Z deque_sizerrrr õs  zDequeAtWorker.__call__N)rrrrrr rrrrrTîsrTc@seZdZdd„Zdd„ZdS)ÚDequeMethodsMatchercsftjjjˆtdƒtdtƒtdtƒtdtƒtdt ƒtdt ƒtdt ƒdœˆ_ ‡fd d „ˆj Dƒˆ_ dS) NÚdequer,rr-r.z operator[]r/)r,rr-r.z operator[]r/csg|]}ˆj|‘qSr)r0)r1r2)rrrr3 sz0DequeMethodsMatcher.__init__..)rr r4r r5r rLrMrNrOrRrTr0r6)rr)rrr þs  zDequeMethodsMatcher.__init__cCsBtjd|jƒsdS|jj|ƒ}|dks.|j r2dS|j|jdƒƒS)Nz^std::(__\d+::)?deque<.*>$r)r7r8r9r0r:r;r r<)rr=r>r?rrrr8 s  zDequeMethodsMatcher.matchN)rrrr r8rrrrrUýs rUc@seZdZdd„Zdd„ZdS)ÚForwardListWorkerBasecCs||_||_dS)N)rÚ _node_type)rrÚ node_typerrrr szForwardListWorkerBase.__init__cCsdS)Nr)rrrrrsz#ForwardListWorkerBase.get_arg_typesN)rrrr rrrrrrWsrWc@seZdZdd„Zdd„ZdS)ÚForwardListEmptyWorkercCstƒS)N)r)rrrrrrsz&ForwardListEmptyWorker.get_result_typecCs|ddddkS)NrCÚ_M_headÚ_M_nextrr)rrrrrr !szForwardListEmptyWorker.__call__N)rrrrr rrrrrZsrZc@seZdZdd„Zdd„ZdS)ÚForwardListFrontWorkercCs|jS)N)r)rrrrrr%sz&ForwardListFrontWorker.get_result_typecCs:|dddj|jƒ}|ddj}|j|jjƒƒjƒS)NrCr[r\Ú _M_storage)rrXÚaddressrrr)rrÚnodeZ val_addressrrrr (szForwardListFrontWorker.__call__N)rrrrr rrrrr]$sr]c@seZdZdd„Zdd„ZdS)ÚForwardListMethodsMatchercsJtd}tjjjˆ|ƒtdtƒtdtƒdœˆ_‡fdd„ˆjDƒˆ_ dS)NZ forward_listr,r-)r,r-csg|]}ˆj|‘qSr)r0)r1r2)rrrr35sz6ForwardListMethodsMatcher.__init__..) r5rr r4r r rZr]r0r6)rZ matcher_namer)rrr .s z"ForwardListMethodsMatcher.__init__cCs^tjd|jƒsdS|jj|ƒ}|dks.|j r2dS|jdƒ}tjt |ƒdƒj ƒ}|j ||ƒS)Nz!^std::(__\d+::)?forward_list<.*>$rz::_Node) r7r8r9r0r:r;r<rrÚstrrr )rr=r>r?rrYrrrr87s  zForwardListMethodsMatcher.matchN)rrrr r8rrrrra-s rac@s$eZdZdd„Zdd„Zdd„ZdS)ÚListWorkerBasecCs||_||_dS)N)rrX)rrrYrrrr DszListWorkerBase.__init__cCsdS)Nr)rrrrrHszListWorkerBase.get_arg_typescCsB|jƒ}|jjƒdjdkr$|dS|dj}|j|jjƒƒjƒS)Nr&Z_M_datar^)rÚtypeÚfieldsrr_rrr)rr`ZaddrrrrÚget_value_from_nodeKs  z"ListWorkerBase.get_value_from_nodeN)rrrr rrfrrrrrcCsrcc@seZdZdd„Zdd„ZdS)ÚListEmptyWorkercCstƒS)N)r)rrrrrrUszListEmptyWorker.get_result_typecCs&|dd}|d|jkrdSdSdS)NrCrEr\TF)r_)rrZ base_noderrrr Xs zListEmptyWorker.__call__N)rrrrr rrrrrgTsrgc@seZdZdd„Zdd„ZdS)ÚListSizeWorkercCstƒS)N)r)rrrrrr`szListSizeWorker.get_result_typecCsD|ddd}|ddj}d}x||kr>|d}|d7}q$W|S)NrCrEr\rr&)r_)rrZ begin_nodeZend_noderrrrr cs  zListSizeWorker.__call__N)rrrrr rrrrrh_srhc@seZdZdd„Zdd„ZdS)ÚListFrontWorkercCs|jS)N)r)rrrrrrmszListFrontWorker.get_result_typecCs"|dddj|jƒ}|j|ƒS)NrCrEr\)rrXrf)rrr`rrrr pszListFrontWorker.__call__N)rrrrr rrrrrilsric@seZdZdd„Zdd„ZdS)ÚListBackWorkercCs|jS)N)r)rrrrrruszListBackWorker.get_result_typecCs"|dddj|jƒ}|j|ƒS)NrCrEZ_M_prev)rrXrf)rrrQrrrr xszListBackWorker.__call__N)rrrrr rrrrrjtsrjc@seZdZdd„Zdd„ZdS)ÚListMethodsMatchercsVtjjjˆtdƒtdtƒtdtƒtdtƒtdt ƒdœˆ_ ‡fdd„ˆj Dƒˆ_ dS) NÚlistr,rr-r.)r,rr-r.csg|]}ˆj|‘qSr)r0)r1r2)rrrr3†sz/ListMethodsMatcher.__init__..) rr r4r r5r rgrhrirjr0r6)rr)rrr }s  zListMethodsMatcher.__init__cCs^tjd|jƒsdS|jj|ƒ}|dks.|j r2dS|jdƒ}tjt |ƒdƒj ƒ}|j ||ƒS)Nz%^std::(__\d+::)?(__cxx11::)?list<.*>$rz::_Node) r7r8r9r0r:r;r<rrrbrr )rr=r>r?rrYrrrr8ˆs  zListMethodsMatcher.matchN)rrrr r8rrrrrk|s rkc@s$eZdZdd„Zdd„Zdd„ZdS)ÚVectorWorkerBasecCs ||_dS)N)r)rrrrrr •szVectorWorkerBase.__init__cCsz|jjtjkr^|ddd}|ddd}|ddd}|jƒjjd}||||S|dd|ddSdS)NrCrDÚ_M_prFZ _M_offseté)rÚcoderÚTYPE_CODE_BOOLrrdrA)rrÚstartZfinishZ finish_offsetÚbit_sizerrrr˜szVectorWorkerBase.sizecCsj|jjtjkrV|ddd}|jƒjjd}|||}||}|jƒd|>@dkS|dd|SdS)NrCrDrnror&r)rrprrqrrdrA)rrr(rrrsZvalpÚoffsetrrrr:¢s zVectorWorkerBase.getN)rrrr rr:rrrrrm”s rmc@s$eZdZdd„Zdd„Zdd„ZdS)ÚVectorEmptyWorkercCsdS)Nr)rrrrr­szVectorEmptyWorker.get_arg_typescCstƒS)N)r)rrrrrr°sz!VectorEmptyWorker.get_result_typecCst|j|ƒƒdkS)Nr)r"r)rrrrrr ³szVectorEmptyWorker.__call__N)rrrrrr rrrrru¬sruc@s$eZdZdd„Zdd„Zdd„ZdS)ÚVectorSizeWorkercCsdS)Nr)rrrrr·szVectorSizeWorker.get_arg_typescCstƒS)N)r)rrrrrrºsz VectorSizeWorker.get_result_typecCs |j|ƒS)N)r)rrrrrr ½szVectorSizeWorker.__call__N)rrrrrr rrrrrv¶srvc@s$eZdZdd„Zdd„Zdd„ZdS)ÚVectorFrontWorkercCsdS)Nr)rrrrrÁszVectorFrontWorker.get_arg_typescCs|jS)N)r)rrrrrrÄsz!VectorFrontWorker.get_result_typecCs |j|dƒS)Nr)r:)rrrrrr ÇszVectorFrontWorker.__call__N)rrrrrr rrrrrwÀsrwc@s$eZdZdd„Zdd„Zdd„ZdS)ÚVectorBackWorkercCsdS)Nr)rrrrrËszVectorBackWorker.get_arg_typescCs|jS)N)r)rrrrrrÎsz VectorBackWorker.get_result_typecCs|j|t|j|ƒƒdƒS)Nr&)r:r"r)rrrrrr ÑszVectorBackWorker.__call__N)rrrrrr rrrrrxÊsrxc@s$eZdZdd„Zdd„Zdd„ZdS)ÚVectorAtWorkercCstƒS)N)r)rrrrrÕszVectorAtWorker.get_arg_typescCs|jS)N)r)rrr(rrrrØszVectorAtWorker.get_result_typecCs>t|j|ƒƒ}t|ƒ|kr.tdt|ƒ|fƒ‚|j|t|ƒƒS)Nz&Vector index "%d" should not be >= %d.)r"rr)r:)rrr(rrrrr Ûs  zVectorAtWorker.__call__N)rrrrrr rrrrryÔsryc@s$eZdZdd„Zdd„Zdd„ZdS)ÚVectorSubscriptWorkercCstƒS)N)r)rrrrrãsz#VectorSubscriptWorker.get_arg_typescCs|jS)N)r)rrrSrrrræsz%VectorSubscriptWorker.get_result_typecCs|j|t|ƒƒS)N)r:r")rrrSrrrr észVectorSubscriptWorker.__call__N)rrrrrr rrrrrzâsrzc@seZdZdd„Zdd„ZdS)ÚVectorMethodsMatchercsftjjjˆtdƒtdtƒtdtƒtdtƒtdt ƒtdt ƒtdt ƒdœˆ_ ‡fd d „ˆj Dƒˆ_ dS) NZvectorrr,r-r.r/z operator[])rr,r-r.r/z operator[]csg|]}ˆj|‘qSr)r0)r1r2)rrrr3ùsz1VectorMethodsMatcher.__init__..)rr r4r r5r rvrurwrxryrzr0r6)rr)rrr ís   zVectorMethodsMatcher.__init__cCsBtjd|jƒsdS|jj|ƒ}|dks.|j r2dS|j|jdƒƒS)Nz^std::(__\d+::)?vector<.*>$r)r7r8r9r0r:r;r r<)rr=r>r?rrrr8ûs  zVectorMethodsMatcher.matchN)rrrr r8rrrrr{ìsr{c@s$eZdZdd„Zdd„Zdd„ZdS)ÚAssociativeContainerWorkerBasecCs ||_dS)N)Ú _unordered)rÚ unorderedrrrr sz'AssociativeContainerWorkerBase.__init__cCs&|jr|ddS|dddSdS)NZ_M_hZ_M_element_countÚ_M_trCZ _M_node_count)r})rrrrrÚ node_count s z)AssociativeContainerWorkerBase.node_countcCsdS)Nr)rrrrrsz,AssociativeContainerWorkerBase.get_arg_typesN)rrrr r€rrrrrr|sr|c@seZdZdd„Zdd„ZdS)ÚAssociativeContainerEmptyWorkercCstƒS)N)r)rrrrrrsz/AssociativeContainerEmptyWorker.get_result_typecCst|j|ƒƒdkS)Nr)r"r€)rrrrrr sz(AssociativeContainerEmptyWorker.__call__N)rrrrr rrrrrsrc@seZdZdd„Zdd„ZdS)ÚAssociativeContainerSizeWorkercCstƒS)N)r)rrrrrrsz.AssociativeContainerSizeWorker.get_result_typecCs |j|ƒS)N)r€)rrrrrr sz'AssociativeContainerSizeWorker.__call__N)rrrrr rrrrr‚sr‚c@seZdZdd„Zdd„ZdS)Ú"AssociativeContainerMethodsMatchercsLtjjjˆt|ƒ|ˆ_tdtƒtdtƒdœˆ_ ‡fdd„ˆj Dƒˆ_ dS)Nrr,)rr,csg|]}ˆj|‘qSr)r0)r1r2)rrrr3*sz?AssociativeContainerMethodsMatcher.__init__..) rr r4r r5Ú_namer r‚rr0r6)rrr)rrr !s   z+AssociativeContainerMethodsMatcher.__init__cCsLtjd|j|jƒsdS|jj|ƒ}|dks4|j r8dSd|jk}|j|ƒS)Nz^std::(__\d+::)?%s<.*>$r~)r7r8r„r9r0r:r;r )rr=r>r?r~rrrr8,s  z(AssociativeContainerMethodsMatcher.matchN)rrrr r8rrrrrƒ s rƒc@s8eZdZdZdd„Zdd„Zdd„Zdd „Zd d „Zd S) ÚUniquePtrGetWorkerzIImplements std::unique_ptr::get() and std::unique_ptr::operator->()cCs*|jtjk|_|jr |jƒ|_n||_dS)N)rprÚTYPE_CODE_ARRAYÚ _is_arrayÚtargetÚ _elem_type)rÚ elem_typerrrr :s zUniquePtrGetWorker.__init__cCsdS)Nr)rrrrrAsz UniquePtrGetWorker.get_arg_typescCs |jjƒS)N)r‰r)rrrrrrDsz"UniquePtrGetWorker.get_result_typecCs|dkp|j S)z/operator-> is not supported for unique_ptrr:)r‡)rr>rrrÚ _supportsGszUniquePtrGetWorker._supportscCsN|jƒjjƒdjj}tjd|ƒr2|dddStjd|ƒrJ|ddSdS)Nrz$^std::(__\d+::)?__uniq_ptr_impl<.*>$rZ _M_head_implz^std::(__\d+::)?tuple<.*>$)rrdrer9r7r8)rrZ impl_typerrrr Ks    zUniquePtrGetWorker.__call__N) rrrÚ__doc__r rrr‹r rrrrr…7s r…c@s0eZdZdZdd„Zdd„Zdd„Zdd „Zd S) ÚUniquePtrDerefWorkerz*Implements std::unique_ptr::operator*()cCstj||ƒdS)N)r…r )rrŠrrrr VszUniquePtrDerefWorker.__init__cCs|jS)N)r‰)rrrrrrYsz$UniquePtrDerefWorker.get_result_typecCs|j S)z.operator* is not supported for unique_ptr)r‡)rr>rrrr‹\szUniquePtrDerefWorker._supportscCstj||ƒjƒS)N)r…r r)rrrrrr `szUniquePtrDerefWorker.__call__N)rrrrŒr rr‹r rrrrrSs rc@s8eZdZdZdd„Zdd„Zdd„Zdd „Zd d „Zd S) ÚUniquePtrSubscriptWorkerz1Implements std::unique_ptr::operator[](size_t)cCstj||ƒdS)N)r…r )rrŠrrrr fsz!UniquePtrSubscriptWorker.__init__cCstƒS)N)r)rrrrrisz&UniquePtrSubscriptWorker.get_arg_typescCs|jS)N)r‰)rrr(rrrrlsz(UniquePtrSubscriptWorker.get_result_typecCs|jS)z0operator[] is only supported for unique_ptr)r‡)rr>rrrr‹osz"UniquePtrSubscriptWorker._supportscCstj||ƒ|S)N)r…r )rrr(rrrr ssz!UniquePtrSubscriptWorker.__call__N) rrrrŒr rrr‹r rrrrrŽcs rŽc@seZdZdd„Zdd„ZdS)ÚUniquePtrMethodsMatchercsVtjjjˆtdƒtdtƒtdtƒtdtƒtdtƒdœˆ_ ‡fdd„ˆj Dƒˆ_ dS) NZ unique_ptrr:z operator->z operator*z operator[])r:z operator->z operator*z operator[]csg|]}ˆj|‘qSr)r0)r1r2)rrrr3€sz4UniquePtrMethodsMatcher.__init__..) rr r4r r5r r…rrŽr0r6)rr)rrr ws  z UniquePtrMethodsMatcher.__init__cCsTtjd|jƒsdS|jj|ƒ}|dks.|j r2dS|j|jdƒƒ}|j|ƒrP|SdS)Nz^std::(__\d+::)?unique_ptr<.*>$r) r7r8r9r0r:r;r r<r‹)rr=r>r?Úworkerrrrr8‚s  zUniquePtrMethodsMatcher.matchN)rrrr r8rrrrrvs rc@s8eZdZdZdd„Zdd„Zdd„Zdd „Zd d „Zd S) ÚSharedPtrGetWorkerzIImplements std::shared_ptr::get() and std::shared_ptr::operator->()cCs*|jtjk|_|jr |jƒ|_n||_dS)N)rprr†r‡rˆr‰)rrŠrrrr ’s zSharedPtrGetWorker.__init__cCsdS)Nr)rrrrr™sz SharedPtrGetWorker.get_arg_typescCs |jjƒS)N)r‰r)rrrrrrœsz"SharedPtrGetWorker.get_result_typecCs|dkp|j S)z/operator-> is not supported for shared_ptrr:)r‡)rr>rrrr‹ŸszSharedPtrGetWorker._supportscCs|dS)NZ_M_ptrr)rrrrrr £szSharedPtrGetWorker.__call__N) rrrrŒr rrr‹r rrrrr‘s r‘c@s0eZdZdZdd„Zdd„Zdd„Zdd „Zd S) ÚSharedPtrDerefWorkerz*Implements std::shared_ptr::operator*()cCstj||ƒdS)N)r‘r )rrŠrrrr ©szSharedPtrDerefWorker.__init__cCs|jS)N)r‰)rrrrrr¬sz$SharedPtrDerefWorker.get_result_typecCs|j S)z.operator* is not supported for shared_ptr)r‡)rr>rrrr‹¯szSharedPtrDerefWorker._supportscCstj||ƒjƒS)N)r‘r r)rrrrrr ³szSharedPtrDerefWorker.__call__N)rrrrŒr rr‹r rrrrr’¦s r’c@s8eZdZdZdd„Zdd„Zdd„Zdd „Zd d „Zd S) ÚSharedPtrSubscriptWorkerz1Implements std::shared_ptr::operator[](size_t)cCstj||ƒdS)N)r‘r )rrŠrrrr ¹sz!SharedPtrSubscriptWorker.__init__cCstƒS)N)r)rrrrr¼sz&SharedPtrSubscriptWorker.get_arg_typescCs|jS)N)r‰)rrr(rrrr¿sz(SharedPtrSubscriptWorker.get_result_typecCs|jS)z0operator[] is only supported for shared_ptr)r‡)rr>rrrr‹Âsz"SharedPtrSubscriptWorker._supportscCsZtjdt|jƒƒ}|rJ|t|jdƒƒkrJtd|jt|ƒt|jdƒƒfƒ‚tj||ƒ|S)Nz .*\[(\d+)]$r&z.shared_ptr<%s> index "%d" should not be >= %d.) r7r8rbr‰r"Úgroupr)r‘r )rrr(r2rrrr Æs z!SharedPtrSubscriptWorker.__call__N) rrrrŒr rrr‹r rrrrr“¶s r“c@s0eZdZdZdd„Zdd„Zdd„Zdd „Zd S) ÚSharedPtrUseCountWorkerz*Implements std::shared_ptr::use_count()cCstj||ƒdS)N)r•r )rrŠrrrr Ñsz SharedPtrUseCountWorker.__init__cCsdS)Nr)rrrrrÔsz%SharedPtrUseCountWorker.get_arg_typescCs tjdƒS)NZlong)rr)rrrrrr×sz'SharedPtrUseCountWorker.get_result_typecCs|dd}|r|dSdS)NZ _M_refcountZ_M_piZ _M_use_countrr)rrZ refcountsrrrr Ús z SharedPtrUseCountWorker.__call__N)rrrrŒr rrr rrrrr•Îs r•c@s(eZdZdZdd„Zdd„Zdd„ZdS) ÚSharedPtrUniqueWorkerz'Implements std::shared_ptr::unique()cCstj||ƒdS)N)r•r )rrŠrrrr ászSharedPtrUniqueWorker.__init__cCs tjdƒS)Nr)rr)rrrrrräsz%SharedPtrUniqueWorker.get_result_typecCstj||ƒdkS)Nr&)r•r )rrrrrr çszSharedPtrUniqueWorker.__call__N)rrrrŒr rr rrrrr–Þsr–c@seZdZdd„Zdd„ZdS)ÚSharedPtrMethodsMatchercsftjjjˆtdƒtdtƒtdtƒtdtƒtdtƒtdt ƒtdt ƒdœˆ_ ‡fd d „ˆj Dƒˆ_ dS) NZ shared_ptrr:z operator->z operator*z operator[]Ú use_countÚunique)r:z operator->z operator*z operator[]r˜r™csg|]}ˆj|‘qSr)r0)r1r2)rrrr3ösz4SharedPtrMethodsMatcher.__init__..) rr r4r r5r r‘r’r“r•r–r0r6)rr)rrr ës  z SharedPtrMethodsMatcher.__init__cCsTtjd|jƒsdS|jj|ƒ}|dks.|j r2dS|j|jdƒƒ}|j|ƒrP|SdS)Nz^std::(__\d+::)?shared_ptr<.*>$r) r7r8r9r0r:r;r r<r‹)rr=r>r?rrrrr8øs  zSharedPtrMethodsMatcher.matchN)rrrr r8rrrrr—ês r—cCstjj|tƒƒtjj|tƒƒtjj|tƒƒtjj|tƒƒtjj|tƒƒtjj|tdƒƒtjj|tdƒƒtjj|tdƒƒtjj|tdƒƒtjj|tdƒƒtjj|tdƒƒtjj|tdƒƒtjj|tdƒƒtjj|t ƒƒtjj|t ƒƒdS) NÚsetÚmapZmultisetZmultimapZ unordered_setZ unordered_mapZunordered_multisetZunordered_multimap) rr Zregister_xmethod_matcherr+rarUrkr{rƒrr—)ZlocusrrrÚregister_libstdcxx_xmethodss.        rœ)sn