gdSc@s{dZddlZddlmZddlmZddlmZddlm Z ddl m Z m Z ddl mZmZdd lmZdd lmZdd lmZdd lmZmZejd ZejdZejdejZejdZejdZejdej ejZ!ejdZ"i;dd6dd6dd6dd6dd6dd6dd6dd 6d!d"6d#d$6d%d&6d'd(6d)d*6d+d,6d-d.6d/d06d1d26d3d46d5d66d7d86d9d:6d;d<6d=d>6d?d@6dAdB6dCdD6dEdF6dGdH6dIdJ6dKdL6dMdN6dOdP6dQdR6dSdT6dUdV6dWdX6dYdZ6d[d\6d]d^6d_d`6dadb6dcdd6dedf6dgdh6didj6dkdl6dmdn6dodp6dqdr6dsdt6dudv6dwdx6dydz6d{d|6d}d~6dd6dd6dd6dd6Z#de$fdYZ%de&fdYZ'de'fdYZ(de(fdYZ)de(fdYZ*de&fdYZ+de(fdYZ,de(fdYZ-de'fdYZ.de.fdYZ/de.fdYZ0de.fdYZ1de.fdYZ2de.fdYZ3de(fdYZ4de'fdYZ5de'fdYZ6de6fdYZ7de6fdYZ8de6fdYZ9de6fdYZ:de&fdYZ;defdYZ<de<fdYZ=de<fdYZ>de<fdYZ?de<fdYZ@defdYZAde fdYZBdefdYZCdS(s sphinx.domains.cpp ~~~~~~~~~~~~~~~~~~ The C++ language domain. :copyright: Copyright 2007-2014 by the Sphinx team, see AUTHORS. :license: BSD, see LICENSE for details. iN(tdeepcopy(tnodes(taddnodes(tXRefRole(tl_t_(tDomaintObjType(tObjectDescription(t make_refnode(t Directive(tFieldt GroupedFields(~?\b[a-zA-Z_][a-zA-Z0-9_]*)\bs\s+(?u)s>[LuU8]?('([^'\\]*(?:\\.[^'\\]*)*)'|"([^"\\]*(?:\\.[^"\\]*)*)")s\b(public|private|protected)\bs\[\s*([^\]]+?)?\s*\]s (%s)|([^,>]+)s(?x) \[\s*\] | \(\s*\) | \+\+ | -- | ->\*? | \, | (<<|>>)=? | && | \|\| | [!<>=/*%+|&^~-]=? tctchars signed chartCs unsigned chartitints signed inttUs unsigned inttltlongs signed longtLs unsigned longtbtbooltstsize_ttsss std::stringtoss std::ostreamtiss std::istreamtioss std::iostreamtvs std::vectortmsstd::mapssubscript-operators operator[]s call-operators operator()s not-operators operator!s lt-operators operators gte-operators operator>=sassign-operators operator=s div-operators operator/s mul-operators operator*s mod-operators operator%s add-operators operator+s sub-operators operator-s or-operators operator|s and-operators operator&s xor-operators operator^s sand-operators operator&&s sor-operators operator||s eq-operators operator==s neq-operators operator!=slshift-operators operator<>ssub-assign-operators operator-=sadd-assign-operators operator+=smul-assign-operators operator*-sdiv-assign-operators operator/=smod-assign-operators operator%=sand-assign-operators operator&=sor-assign-operators operator|=slshift-assign-operators operator<<=srshift-assign-operators operator>>=sxor-assign-operators operator^=scomma-operators operator,spointer-operators operator->spointer-by-pointer-operators operator->*s inv-operators operator~s inc-operators operator++s dec-operators operator--s new-operators operator newsnew-array-operatorsoperator new[]sdelete-operatorsoperator deletesdelete-array-operatorsoperator delete[]tDefinitionErrorcBs#eZdZdZdZRS(cCs ||_dS(N(t description(tselfR!((s</usr/local/lib/python2.7/site-packages/sphinx/domains/cpp.pyt__init__lscCst|jdS(Nsutf-8(tunicodetencode(R"((s</usr/local/lib/python2.7/site-packages/sphinx/domains/cpp.pyt__str__oscCs|jS(N(R!(R"((s</usr/local/lib/python2.7/site-packages/sphinx/domains/cpp.pyt __unicode__rs(t__name__t __module__R#R&R'(((s</usr/local/lib/python2.7/site-packages/sphinx/domains/cpp.pyR js  tDefExprcBsheZdZdZd ZdZdZdZdZ dZ dZ dZ d Z RS( cCsrt|t|k rtSy=x6|jjD]%\}}|t||kr/tSq/WWntk rmtSXtS(N(ttypetFalset__dict__t iteritemstgetattrtAttributeErrortTrue(R"tothertkeytvalue((s</usr/local/lib/python2.7/site-packages/sphinx/domains/cpp.pyt__eq__xs  cCs|j| S(N(R5(R"R2((s</usr/local/lib/python2.7/site-packages/sphinx/domains/cpp.pyt__ne__scCs t|S(s#Clone a definition expression node.(R(R"((s</usr/local/lib/python2.7/site-packages/sphinx/domains/cpp.pytclonescCsdS(sReturn the id for the node.u((R"((s</usr/local/lib/python2.7/site-packages/sphinx/domains/cpp.pytget_idscCsdS(s}Return the name. Returns either `None` or a node with a name you might call :meth:`split_owner` on. N(tNone(R"((s</usr/local/lib/python2.7/site-packages/sphinx/domains/cpp.pytget_namescCs d|fS(sNodes returned by :meth:`get_name` can split off their owning parent. This function returns the owner and the name as a tuple of two items. If a node does not support it, it returns None as owner and self as name. N(R9(R"((s</usr/local/lib/python2.7/site-packages/sphinx/domains/cpp.pyt split_ownerscCs tdS(s9Prefix a name node (a node returned by :meth:`get_name`).N(tNotImplementedError(R"tprefix((s</usr/local/lib/python2.7/site-packages/sphinx/domains/cpp.pyR=scCst|jdS(Nsutf-8(R$R%(R"((s</usr/local/lib/python2.7/site-packages/sphinx/domains/cpp.pyR&scCs tdS(N(R<(R"((s</usr/local/lib/python2.7/site-packages/sphinx/domains/cpp.pyR'scCsd|jj|fS(Ns<%s %s>(t __class__R((R"((s</usr/local/lib/python2.7/site-packages/sphinx/domains/cpp.pyt__repr__sN(R(R)R5R6R9t__hash__R7R8R:R;R=R&R'R?(((s</usr/local/lib/python2.7/site-packages/sphinx/domains/cpp.pyR*vs        tPrimaryDefExprcBseZdZdZRS(cCs|S(N((R"((s</usr/local/lib/python2.7/site-packages/sphinx/domains/cpp.pyR:scCs?t|tr/|j}|jj||St||gS(N(t isinstancet PathDefExprR7tpathtappend(R"R=((s</usr/local/lib/python2.7/site-packages/sphinx/domains/cpp.pyR=s  (R(R)R:R=(((s</usr/local/lib/python2.7/site-packages/sphinx/domains/cpp.pyRAs t NameDefExprcBs#eZdZdZdZRS(cCs ||_dS(N(tname(R"RG((s</usr/local/lib/python2.7/site-packages/sphinx/domains/cpp.pyR#scCs5tj|j}|dk r"|S|jjddS(Nu u-(t_id_shortwordstgetRGR9treplace(R"RG((s</usr/local/lib/python2.7/site-packages/sphinx/domains/cpp.pyR8s cCs t|jS(N(R$RG(R"((s</usr/local/lib/python2.7/site-packages/sphinx/domains/cpp.pyR's(R(R)R#R8R'(((s</usr/local/lib/python2.7/site-packages/sphinx/domains/cpp.pyRFs  RCcBs5eZdZdZdZdZdZRS(cCs ||_dS(N(RD(R"tparts((s</usr/local/lib/python2.7/site-packages/sphinx/domains/cpp.pyR#scCs,djd|jD}tj||S(Nu::css|]}|jVqdS(N(R8(t.0tx((s</usr/local/lib/python2.7/site-packages/sphinx/domains/cpp.pys s(tjoinRDRHRI(R"trv((s</usr/local/lib/python2.7/site-packages/sphinx/domains/cpp.pyR8scCs=t|jdkr3t|jd |jdfSd|fS(Nii(tlenRDRCR9(R"((s</usr/local/lib/python2.7/site-packages/sphinx/domains/cpp.pyR;scCsFt|tr2|j}|jj|j|St|g|jS(N(RBRCR7RDtextend(R"R=((s</usr/local/lib/python2.7/site-packages/sphinx/domains/cpp.pyR=s  cCsdjtt|jS(Nu::(RNtmapR$RD(R"((s</usr/local/lib/python2.7/site-packages/sphinx/domains/cpp.pyR's(R(R)R#R8R;R=R'(((s</usr/local/lib/python2.7/site-packages/sphinx/domains/cpp.pyRCs     tArrayTypeSuffixDefExprcBs&eZddZdZdZRS(cCs ||_dS(N(t size_hint(R"RT((s</usr/local/lib/python2.7/site-packages/sphinx/domains/cpp.pyR#scCsdS(NtA((R"((s</usr/local/lib/python2.7/site-packages/sphinx/domains/cpp.pyt get_id_suffixscCs)d|jdk r!t|jp$dfS(Nu[%s]u(RTR9R$(R"((s</usr/local/lib/python2.7/site-packages/sphinx/domains/cpp.pyR'sN(R(R)R9R#RVR'(((s</usr/local/lib/python2.7/site-packages/sphinx/domains/cpp.pyRSs  tTemplateDefExprcBs,eZdZdZdZdZRS(cCs||_||_dS(N(ttypenametargs(R"RXRY((s</usr/local/lib/python2.7/site-packages/sphinx/domains/cpp.pyR#s cCs+|jj\}}|t||jfS(N(RXR;RWRY(R"townerRX((s</usr/local/lib/python2.7/site-packages/sphinx/domains/cpp.pyR;scCs-d|jjdjd|jDfS(Nu%s:%s:u.css|]}|jVqdS(N(R8(RLRM((s</usr/local/lib/python2.7/site-packages/sphinx/domains/cpp.pys s(RXR8RNRY(R"((s</usr/local/lib/python2.7/site-packages/sphinx/domains/cpp.pyR8scCs&d|jdjtt|jfS(Nu%s<%s>u, (RXRNRRR$RY(R"((s</usr/local/lib/python2.7/site-packages/sphinx/domains/cpp.pyR's(R(R)R#R;R8R'(((s</usr/local/lib/python2.7/site-packages/sphinx/domains/cpp.pyRWs   tConstantTemplateArgExprcBs#eZdZdZdZRS(cCs ||_dS(N(targ(R"R\((s</usr/local/lib/python2.7/site-packages/sphinx/domains/cpp.pyR#scCs|jjddS(Nu u-(R\RJ(R"((s</usr/local/lib/python2.7/site-packages/sphinx/domains/cpp.pyR8scCs t|jS(N(R$R\(R"((s</usr/local/lib/python2.7/site-packages/sphinx/domains/cpp.pyR' s(R(R)R#R8R'(((s</usr/local/lib/python2.7/site-packages/sphinx/domains/cpp.pyR[s  tWrappingDefExprcBseZdZdZRS(cCs ||_dS(N(RX(R"RX((s</usr/local/lib/python2.7/site-packages/sphinx/domains/cpp.pyR#scCs |jjS(N(RXR:(R"((s</usr/local/lib/python2.7/site-packages/sphinx/domains/cpp.pyR:s(R(R)R#R:(((s</usr/local/lib/python2.7/site-packages/sphinx/domains/cpp.pyR]s tModifierDefExprcBs#eZdZdZdZRS(cCstj||||_dS(N(R]R#t modifiers(R"RXR_((s</usr/local/lib/python2.7/site-packages/sphinx/domains/cpp.pyR#scCsWg|jD]$}tjt|t|^q }|j|jjdj|S(Nu-(R_RHRIR$RERXR8RN(R"RMtpieces((s</usr/local/lib/python2.7/site-packages/sphinx/domains/cpp.pyR8s1cCs)djttt|j|jgS(Nu (RNRRR$tlistR_RX(R"((s</usr/local/lib/python2.7/site-packages/sphinx/domains/cpp.pyR'$s(R(R)R#R8R'(((s</usr/local/lib/python2.7/site-packages/sphinx/domains/cpp.pyR^s  t PtrDefExprcBseZdZdZRS(cCs|jjdS(NuP(RXR8(R"((s</usr/local/lib/python2.7/site-packages/sphinx/domains/cpp.pyR8*scCs d|jS(Nu%s*(RX(R"((s</usr/local/lib/python2.7/site-packages/sphinx/domains/cpp.pyR'-s(R(R)R8R'(((s</usr/local/lib/python2.7/site-packages/sphinx/domains/cpp.pyRb(s tLValRefDefExprcBseZdZdZRS(cCs|jjdS(NuR(RXR8(R"((s</usr/local/lib/python2.7/site-packages/sphinx/domains/cpp.pyR83scCs d|jS(Nu%s&(RX(R"((s</usr/local/lib/python2.7/site-packages/sphinx/domains/cpp.pyR'6s(R(R)R8R'(((s</usr/local/lib/python2.7/site-packages/sphinx/domains/cpp.pyRc1s tRValRefDefExprcBseZdZdZRS(cCs|jjdS(NuRR(RXR8(R"((s</usr/local/lib/python2.7/site-packages/sphinx/domains/cpp.pyR8<scCs d|jS(Nu%s&&(RX(R"((s</usr/local/lib/python2.7/site-packages/sphinx/domains/cpp.pyR'?s(R(R)R8R'(((s</usr/local/lib/python2.7/site-packages/sphinx/domains/cpp.pyRd:s t ConstDefExprcBs&eZedZdZdZRS(cCstj||||_dS(N(R]R#R=(R"RXR=((s</usr/local/lib/python2.7/site-packages/sphinx/domains/cpp.pyR#EscCs|jjdS(NuC(RXR8(R"((s</usr/local/lib/python2.7/site-packages/sphinx/domains/cpp.pyR8IscCs|jrdpd|jS(Nuconst %su%s const(R=RX(R"((s</usr/local/lib/python2.7/site-packages/sphinx/domains/cpp.pyR'Ls(R(R)R,R#R8R'(((s</usr/local/lib/python2.7/site-packages/sphinx/domains/cpp.pyReCs  t CastOpDefExprcBs#eZdZdZdZRS(cCs ||_dS(N(RX(R"RX((s</usr/local/lib/python2.7/site-packages/sphinx/domains/cpp.pyR#RscCsd|jjS(Nucastto-%s-operator(RXR8(R"((s</usr/local/lib/python2.7/site-packages/sphinx/domains/cpp.pyR8UscCs d|jS(Nu operator %s(RX(R"((s</usr/local/lib/python2.7/site-packages/sphinx/domains/cpp.pyR'Xs(R(R)R#R8R'(((s</usr/local/lib/python2.7/site-packages/sphinx/domains/cpp.pyRfPs  tArgumentDefExprcBs/eZddZdZdZdZRS(cCs(||_||_||_||_dS(N(RGR+t type_suffixestdefault(R"R+RGRhRi((s</usr/local/lib/python2.7/site-packages/sphinx/domains/cpp.pyR#^s   cCs |jjS(N(RGR:(R"((s</usr/local/lib/python2.7/site-packages/sphinx/domains/cpp.pyR:dscCs_g}|j|jr$|jjp'dx$|jD]}|j|jq5Wdj|S(NtXu(RER+R8RhRVRN(R"tbuftsuffix((s</usr/local/lib/python2.7/site-packages/sphinx/domains/cpp.pyR8gs %cCsd|jpd|jpdfjg}|jdk rQ|jd|jnx$|jD]}|jt|q[Wdj|S(Nu%s %sus=%s( R+RGtstripRiR9RERhR$RN(R"RkRl((s</usr/local/lib/python2.7/site-packages/sphinx/domains/cpp.pyR'ns +N(R(R)R9R#R:R8R'(((s</usr/local/lib/python2.7/site-packages/sphinx/domains/cpp.pyRg\s   t NamedDefExprcBs&eZdZdZddZRS(cCs||_||_||_dS(N(RGt visibilitytstatic(R"RGRoRp((s</usr/local/lib/python2.7/site-packages/sphinx/domains/cpp.pyR#ys  cCs |jjS(N(RGR:(R"((s</usr/local/lib/python2.7/site-packages/sphinx/domains/cpp.pyR:~stpubliccCsEg}|j|kr(|j|jn|jrA|jdn|S(Nustatic(RoRERp(R"RoRO((s</usr/local/lib/python2.7/site-packages/sphinx/domains/cpp.pyt get_modifierss  (R(R)R#R:Rr(((s</usr/local/lib/python2.7/site-packages/sphinx/domains/cpp.pyRnws  tTypeObjDefExprcBs#eZdZdZdZRS(cCs,tj||||||_||_dS(N(RnR#RXRh(R"RGRoRpRXRh((s</usr/local/lib/python2.7/site-packages/sphinx/domains/cpp.pyR#s cCs}|jdkr$|jjg}n%d|jj|jjfg}x$|jD]}|j|jqSWdj|S(Nu%s__%su(RXR9RGR8RhRERVRN(R"RkRl((s</usr/local/lib/python2.7/site-packages/sphinx/domains/cpp.pyR8s %cCs|j}|jdkr4|jt|jn"|jtt|j|jfdj|g}x$|j D]}|jt|qrWdj|S(Nu u( RrRXR9RER$RGRQRRRNRh(R"RkRl((s</usr/local/lib/python2.7/site-packages/sphinx/domains/cpp.pyR's "(R(R)R#R8R'(((s</usr/local/lib/python2.7/site-packages/sphinx/domains/cpp.pyRss  tMemberObjDefExprcBs#eZdZdZdZRS(cCs5tj||||||_||_||_dS(N(RnR#RXRhR4(R"RGRoRpRXRhR4((s</usr/local/lib/python2.7/site-packages/sphinx/domains/cpp.pyR#s  cCsYd|jj|jjfg}x$|jD]}|j|jq/Wdj|S(Nu%s__%su(RGR8RXRhRERVRN(R"RkRl((s</usr/local/lib/python2.7/site-packages/sphinx/domains/cpp.pyR8s%cCs|j}|jt|jt|jfdj|g}x$|jD]}|jt|qMW|jdk r|jd|jndj|S(Nu u = %su( RrRQR$RXRGRNRhRER4R9(R"RkRl((s</usr/local/lib/python2.7/site-packages/sphinx/domains/cpp.pyR's %(R(R)R#R8R'(((s</usr/local/lib/python2.7/site-packages/sphinx/domains/cpp.pyRts  t FuncDefExprcBs#eZdZdZdZRS(c Kstj||||||_||_||_||_|jdt|_|jdt|_ |jdt|_ |jdt|_ |jdt|_ |jdt|_ |jdt|_|jdt|_|jd t|_dS( Ntconsttvolatiletnoexcepttoverridet rvalue_thist lvalue_thist pure_virtualtdeleteRi(RnR#ROt signaturetexplicitt constexprRIR,RvRwRxRyRzR{R|R}Ri( R"RGRoRpRRROR~tkwargs((s</usr/local/lib/python2.7/site-packages/sphinx/domains/cpp.pyR#s    cCsdd|jj|jr8ddjd|jDp;d|jrJdpMd|jr\dp_dfS( Nu%s%s%s%su__u.css|]}|jVqdS(N(R8(RLRM((s</usr/local/lib/python2.7/site-packages/sphinx/domains/cpp.pys suuCtCEt(RGR8R~RNRvR(R"((s</usr/local/lib/python2.7/site-packages/sphinx/domains/cpp.pyR8s    cCs|j}|jr%|jdn|jr>|jdn|jdk rf|jt|jn|jd|jdjt t|j f|j r|jdn|j r|jdn|j r|jdn|jr|jdn|jr|jd n|jr+|jd n|jrD|jd n|jr]|jd n|jrv|jd ndj|S(Nuexplicitu constexpru%s(%s)u, uconstuvolatileu&&u&unoexceptuoverrideu= 0u = defaultu= deleteu (RrRRERROR9R$RGRNRRR~RvRwRzR{RxRyR|RiR}(R"Rk((s</usr/local/lib/python2.7/site-packages/sphinx/domains/cpp.pyR's8            (R(R)R#R8R'(((s</usr/local/lib/python2.7/site-packages/sphinx/domains/cpp.pyRus  t ClassDefExprcBs/eZdZdZddZdZRS(cCs#tj||||||_dS(N(RnR#tbases(R"RGRoRpR((s</usr/local/lib/python2.7/site-packages/sphinx/domains/cpp.pyR#scCs |jjS(N(RGR8(R"((s</usr/local/lib/python2.7/site-packages/sphinx/domains/cpp.pyR8sRqcCsn|j|}|jt|j|jra|jd|jdjd|jDndj|S(Nu:u, css|]}|jdVqdS(tprivateN(t _tostring(RLtbase((s</usr/local/lib/python2.7/site-packages/sphinx/domains/cpp.pys su (RrRER$RGRRN(R"RoRk((s</usr/local/lib/python2.7/site-packages/sphinx/domains/cpp.pyRs  cCs |jdS(NRq(R(R"((s</usr/local/lib/python2.7/site-packages/sphinx/domains/cpp.pyR' s(R(R)R#R8RR'(((s</usr/local/lib/python2.7/site-packages/sphinx/domains/cpp.pyRs   tDefinitionParsercBseZi d,d6d,d6d,d6d,d6d,d6d,d6ed-d 6ed.d 6ed/d6ed0d 6Zd ZdZdZdZdZ dZ dZ dZ e dZe dZe dZdZdZdZdZedZdZdZdZed Zed!Zd"Zd#Zd$Zd%Zd&Z d'Z!d(Z"d)Z#d*Z$d+Z%RS(1RwtregistertmutableRvRXtstructRtshortRRtunsignedtsignedtdoublecCs@|j|_d|_t|j|_d|_d|_dS(Ni(iN(Rmt definitiontposRPtendR9t last_matcht_previous_state(R"R((s</usr/local/lib/python2.7/site-packages/sphinx/domains/cpp.pyR##s   cCs#td||j|jfdS(Ns)Invalid definition: %s [error at %d] %s(R RR(R"tmsg((s</usr/local/lib/python2.7/site-packages/sphinx/domains/cpp.pytfail*scCsY|j|j|j}|dk rU|j|jf|_|j|_||_tStS(N( tmatchRRR9RRRR1R,(R"tregexR((s</usr/local/lib/python2.7/site-packages/sphinx/domains/cpp.pyR.s  cCs|j\|_|_dS(N(RRR(R"((s</usr/local/lib/python2.7/site-packages/sphinx/domains/cpp.pytbackout7scCsCt|}|j|j|j|!|kr?|j|7_tStS(N(RPRRR1R,(R"tstringtstrlen((s</usr/local/lib/python2.7/site-packages/sphinx/domains/cpp.pyt skip_string:s   cCs#|jtjdtj|S(Ns\b%s\b(Rtretcompiletescape(R"tword((s</usr/local/lib/python2.7/site-packages/sphinx/domains/cpp.pyt skip_wordAscCs |jtS(N(Rt_whitespace_re(R"((s</usr/local/lib/python2.7/site-packages/sphinx/domains/cpp.pytskip_wsDscCs!|j|r|jtStS(N(RRR1R,(R"R((s</usr/local/lib/python2.7/site-packages/sphinx/domains/cpp.pytskip_word_and_wsGs cCs|j|jkS(N(RR(R"((s</usr/local/lib/python2.7/site-packages/sphinx/domains/cpp.pyteofMscCs+y|j|jSWntk r&dSXdS(NtEOF(RRt IndexError(R"((s</usr/local/lib/python2.7/site-packages/sphinx/domains/cpp.pyt current_charQs cCs |jdk r|jjSdS(N(RR9tgroup(R"((s</usr/local/lib/python2.7/site-packages/sphinx/domains/cpp.pyt matched_textXscCs|j|jtr6tdtjd|jSxd D]y}|j|sXq=n|j|jdr|j|jds|j d|n|d7}ntd |SW|j }t |S( NtoperatorRtnewR}t[t]sexpected "]" for s[]s operator (snewsdelete( RRt _operator_reRFRtsubRRRRt _parse_typeRf(R"tallocopR+((s</usr/local/lib/python2.7/site-packages/sphinx/domains/cpp.pyt_parse_operator]s       cCs |jtS(N(t_parse_name_or_template_argR,(R"((s</usr/local/lib/python2.7/site-packages/sphinx/domains/cpp.pyt _parse_nameuscCs|jtsW|s%|jdn|jtsD|jdnt|jjS|j}|dkrv|jSt|S(Ns expected names+expected name or constant template argumentR( Rt_identifier_reRt_template_arg_reR[RRmRRF(R"t in_templatet identifier((s</usr/local/lib/python2.7/site-packages/sphinx/domains/cpp.pyRxs   cCs|sgdfSd|krXg|D]}|dkr#|^q#}|jd|dfS|ddkrz|d |dfS|dfS(NRRiR(sintschar(tremove(R"RDRM((s</usr/local/lib/python2.7/site-packages/sphinx/domains/cpp.pyt_guess_typenames  %  cCs|rt|dt}nx|j|jdrFt|}q|jdrdt|}q|jdr|jdrt|}qt|}q|SqdS(NR=Rvt*t&(ReR1RRRRbRdRc(R"texprtis_const((s</usr/local/lib/python2.7/site-packages/sphinx/domains/cpp.pyt_attach_crefptrs cCsIg}x<|jtrD|jt|jjd|jq W|S(Ni(Rt _array_def_reRERSRRR(R"RO((s</usr/local/lib/python2.7/site-packages/sphinx/domains/cpp.pyt_try_parse_type_suffixess cCs.y|jdtSWntk r)tSXdS(NRv(RR1t ValueErrorR,(R"RD((s</usr/local/lib/python2.7/site-packages/sphinx/domains/cpp.pyt _peek_consts   c Cs|d}|}|j|}xi|j|jts=Pn|j}||kr{|j||j|}|stq |jPq |j|}|j |\}}t t ||}|j ||S(Ni( t _modifiersRRRRREtAssertionErrorRRRR^RFR( R"R_tmodifierRDt followingRRRXRO((s</usr/local/lib/python2.7/site-packages/sphinx/domains/cpp.pyt_parse_builtins$        cCs|j|}|j|jds,|Sg}xh|j|jdrRPn|r|jdsw|jdn|jn|j|jtq5t||S(Ntt,s"," or ">" in template expected(RRRRRERR1RW(R"RRXRY((s</usr/local/lib/python2.7/site-packages/sphinx/domains/cpp.pyt_parse_type_exprs   cCs|jg}g}|jds|jxy|jtr|j}||jkr|j|}|j||dk r|j|S|jq2|j Pq2Wnx[|j|r|j dks|r|jd s|j rPn|j|j |q|s|j dnt|dkr>|d}n t|}|j|}|rqt||}n|j||S(Ns::s,>s expected typeii(RRRRRRRER9RRRRRRRPRCRR^R(R"RtresultR_RRROR((s</usr/local/lib/python2.7/site-packages/sphinx/domains/cpp.pyRs>             c Csu|j|jtr |jSd}t|j}|j}x|jjd|j}|jjd|j}|jjd|j}|dkr|}n|dkr|}n|dkr|}nt|||}||kr|j dn||kr|d7}n9||kr8|d8}|dkrHPqHn|dkrHPn|d|_qA|j||!}||_|S(Nit(Rt)s$unexpected end in default expressioni( RRt _string_reRRPRRtfindtminR( R"tparen_stack_depthtmax_postrv_starttidx0tidx1tidx2tidxRO((s</usr/local/lib/python2.7/site-packages/sphinx/domains/cpp.pyt_parse_default_expr s>                cCsD|j|jds)|jdng}x|j|jrU|jdn|jdrhPn|r|jds|jdn|jn|jdr|jtddgd|jdrPq|jdnd}}|j}|j|j}|jd r2|j }nY|j d kr|j }|j|j |j|jd r|j }qn|dkr|}d}n|jt||||q2|jt d |d |jd d |jd d|jdd|jddtdtdtdtdt }|jdrTt|drvalue reference for *this specifier must be one of"&&" or "&"t0tNULLtnullptrsffunctions must be defined with either 0, NULL, nullptr, default or delete, othermacros are not allowed(RRRRRERgR9RRRRRRQtdictRR,R1R(R"RYtargnameRitargtypeRht attributes((s</usr/local/lib/python2.7/site-packages/sphinx/domains/cpp.pyt_parse_signature.s                     cCs:d}|jtr!|j}n|jd}||fS(NRqRp(Rt_visibility_reRR(R"RoRp((s</usr/local/lib/python2.7/site-packages/sphinx/domains/cpp.pyt_parse_visibility_statics  cCs |jS(N(R(R"((s</usr/local/lib/python2.7/site-packages/sphinx/domains/cpp.pyt parse_typescCst|j\}}|j}|j|jsL|j}|j}n|}d}g}t|||||S(N(RRRRRR9Rs(R"RoRpRXRGRh((s</usr/local/lib/python2.7/site-packages/sphinx/domains/cpp.pytparse_type_objects    cCs|j\}}|j}|j}|j}|j|jdrd|jj}nd}t||||||S(NR( RRRRRt read_restRmR9Rt(R"RoRpRXRGRhR4((s</usr/local/lib/python2.7/site-packages/sphinx/domains/cpp.pytparse_member_objects    cCs|j\}}|jd}|jd}|j}|j|jdkrd|}d}n |j}t|||||||jS(NRRR(RRRRRR9RuR(R"RoRpRRRORG((s</usr/local/lib/python2.7/site-packages/sphinx/domains/cpp.pytparse_functions    cCs|j\}}|j}g}|jdr|jxld}|jtra|j}n|j}|jt||t g|jdr|jq@Pq@nt||||S(Nt:RR( RRRRRRRRERR,(R"RoRpRGRtaccessR((s</usr/local/lib/python2.7/site-packages/sphinx/domains/cpp.pyt parse_classs     cCs |j|j}|j|_|S(N(RRR(R"RO((s</usr/local/lib/python2.7/site-packages/sphinx/domains/cpp.pyRs cCs5|j|js1|jd|j|jndS(Ns"expected end of definition, got %r(RRRRR(R"((s</usr/local/lib/python2.7/site-packages/sphinx/domains/cpp.pyt assert_ends   N(scharsshortsintslong(scharsshortsintslong(sint(sintslongR(&R(R)R9tsetRR#RRRRRRRtpropertyRRRRRRRR,RRRRRRRRRRRRRRRR(((s</usr/local/lib/python2.7/site-packages/sphinx/domains/cpp.pyRsT                   . " T     t CPPObjectc BseZdZeddeddd deed ded d d dd!deeddeddedd"gZdZ dZ dZ ddZ dZ dZdZdZdZdZRS(#s%Description of a C++ language object.t parametertlabelt ParameterstnamestparamR\targumentt can_collapset exceptionstThrowstrolenames cpp:classtthrowstthrowt exceptiont returnvaluetReturnsthas_argtreturnstreturncCsm|j\}}t|}|dk rSt|d}|tj||7}n|tj||7}dS(Ns::(R;R$R9Rt desc_addnamet desc_name(R"tnodeRGRZtvarname((s</usr/local/lib/python2.7/site-packages/sphinx/domains/cpp.pyt attach_names   cCs.x'|D]}|tjt|7}qWdS(N(RtTextR$(R"RtsuffixesRl((s</usr/local/lib/python2.7/site-packages/sphinx/domains/cpp.pytattach_type_suffixess c Csst|}tjdddddd|dddd}|jjjd |d <|tj|7}||7}dS( NRt refdomaintcpptreftypeR+t reftargettmodnamet classnames cpp:parent( R$Rt pending_xrefR9tenvt temp_dataRIRR (R"RR+ttexttpnode((s</usr/local/lib/python2.7/site-packages/sphinx/domains/cpp.pyt attach_types RqcCs|j|krA|tj|j|j7}|tjd7}n|jrv|tjdd7}|tjd7}nt|dtr|tjdd7}|tjd7}ndS(Nt RpR(RoRtdesc_annotationRR RpR/R,(R"RtobjRo((s</usr/local/lib/python2.7/site-packages/sphinx/domains/cpp.pytattach_modifierss  cCs|j}t|j}||jjjkr|dj||dj||j |d<|jjj||j j ddj ||j j |j |fn|j|}|r|jdjd||dfndS( NRtidstfirstRtobjectstentriestsingleR(R8R$RGtstatetdocumentRRERtnote_explicit_targetRt domaindatat setdefaulttdocnametobjtypetget_index_textt indexnode(R"tsigobjtsigtsignodettheidRGt indextext((s</usr/local/lib/python2.7/site-packages/sphinx/domains/cpp.pytadd_target_and_indexs cCss|jo|jd}|rf|jjjd rft|tsGt|j|jjd((s</usr/local/lib/python2.7/site-packages/sphinx/domains/cpp.pytruns  ( R(R)RAR,t has_contenttrequired_argumentstoptional_argumentsR1tfinal_argument_whitespacet option_specRV(((s</usr/local/lib/python2.7/site-packages/sphinx/domains/cpp.pyRSst CPPXRefRolecBseZdZRS(cCs|jjd|d<|sw|jd}|d dkrw|d}|jd}|dkrt||d}qtqwn||fS(Ns cpp:parentt~is::ii(RRItlstriptrfind(R"Rtrefnodethas_explicit_titlettitlettargettdcolon((s</usr/local/lib/python2.7/site-packages/sphinx/domains/cpp.pyt process_links  (R(R)Re(((s</usr/local/lib/python2.7/site-packages/sphinx/domains/cpp.pyR\st CPPDomaincBseZdZdZdZieeddd6eeddd6eeddd6eeddd6Zied6e d6e d6e d6e d6Z ied6ed ed6ed6ed6Ziid 6Zd Zd Zd ZRS(sC++ language domain.RsC++tclasstfunctionRNRIR+t namespacet fix_parensR cCsNxG|jdjD]2\}\}}}||kr|jd|=qqWdS(NR (tdatatitems(R"R(tfullnametfnR((s</usr/local/lib/python2.7/site-packages/sphinx/domains/cpp.pyt clear_docs) cs%fd}t|} yE| jj} | j| j s\| dkrktdnWn&tk r|jd||dSX|jdd} || } | dk s| dkr| S| j} || j | } | dk r| S| j \} } || j | S(Ncsrt|}|jdkr#dSjd|}|djkrQdSt|d|d|S(NR iii(R$RkR9tobjtypes_for_roleR (RRGR(tbuildertcontnodet fromdocnameR"ttyp(s</usr/local/lib/python2.7/site-packages/sphinx/domains/cpp.pyt_create_refnodes Rsunparseable C++ definition: %rs cpp:parent( RRR:RRR9R t warn_nodeRIR=R;(R"RRsRqRtRcRRrRuR6RR?RORG((RqRrRsR"Rts</usr/local/lib/python2.7/site-packages/sphinx/domains/cpp.pyt resolve_xrefs(      ccsHxA|jdjD],\}\}}}|||||dfVqWdS(NR i(RkR.(R"trefnameR(R+R/((s</usr/local/lib/python2.7/site-packages/sphinx/domains/cpp.pyt get_objects#s)(R(R)RARGRRRt object_typesRCRJRHRGRSt directivesR\R1trolest initial_dataRoRwRy(((s</usr/local/lib/python2.7/site-packages/sphinx/domains/cpp.pyRfs0       $(DRARtcopyRtdocutilsRtsphinxRt sphinx.rolesRt sphinx.localeRRtsphinx.domainsRRtsphinx.directivesRtsphinx.util.nodesR tsphinx.util.compatR tsphinx.util.docfieldsR R RRRtSRRRtpatternRRRHt ExceptionR tobjectR*RARFRCRSRWR[R]R^RbRcRdReRfRgRnRsRtRuRRRRCRGRHRJRSR\Rf(((s</usr/local/lib/python2.7/site-packages/sphinx/domains/cpp.pyt s      8        ;d;