
\c        V   @   s  d  Z  d d l Z d d l m Z d d l m Z m Z d d l m Z d d l	 m
 Z
 m Z d d l m Z d d l m Z d d	 l m Z m Z d d
 l m Z d d l m Z m Z d d l m Z d d l m Z d d l m Z m Z d d l m  Z  d d l! m" Z" d d l# m$ Z$ e% rd d l& m' Z' m( Z( m) Z) m* Z* m+ Z+ m, Z, m- Z- m. Z. m/ Z/ d d l0 m1 Z1 d d l2 m3 Z3 d d l4 m5 Z5 d d l m6 Z6 n  e j7 e8  Z9 e j: d  Z; e j: d  Z< e j: d  Z= e j: d  Z> e j: d  Z? e j: d  Z@ e j: d  ZA e j: d  ZB e j: d  ZC e j: d   ZD e j: d! e jE  ZF e j: d"  ZG e j: d#  ZH e j: d$  ZI d% d& d' d( d) d* d+ d, d- d. d/ d0 d1 d2 d3 d4 d5 d6 d7 d8 d9 d: d; d< d= d> d? d@ dA dB dC dD dE dF dG dH dI dJ dK dL dM dN dO dP dQ dR dS dT dU dV dW dX dY dZ d[ d\ d] d^ d_ d` da db dc dd de df dg dh di dj dk dl dm dn do dp dq dr ds dt du dv dw dx dy dz gV ZJ d{ ZK eL d d| d} d~ g ZM i
 d d1 6d d 6d d 6d dM 6d d 6d d 6d dN 6d d 6d d 6d d- 6ZN i d d 6d d 6d d 6d d 6d d 6d d 6ZO i* d dQ 6d d 6d d= 6d d 6d d 6d d 6d d 6d d 6d d 6d d 6d d 6d d 6d d 6d d 6d d 6d d 6d d 6d d 6d d 6d d 6d d 6d d 6d d 6d d 6d d 6d d 6d d 6d d 6d d 6d d 6d d 6d d 6d d 6d d 6d d 6d d 6d d 6d d 6d d 6d d 6d d 6d d 6ZP i% d du 6d d- 6d d1 6d d 6d d 6d dw 6d d3 6d d2 6d d` 6d d 6d d 6d d 6d d 6d d 6d dM 6d da 6d d 6d dr 6d d 6d dN 6d d 6d d 6d d 6d d 6d d 6d d 6d d 6d d 6d d 6d d 6d d6ddG 6dd? 6dd6dd* 6dd6d	d
6ZQ i+ ddQ 6dd 6dd= 6dd 6dd 6dd 6dd 6dd 6dd 6dd 6dd 6dW d 6dd 6dd 6dd 6dd 6dd 6dd 6dd 6dd 6dd 6dd 6d d 6d!d 6d"d 6d#d 6d$d 6d%d 6d&d 6d'd 6d(d 6d)d 6d*d 6d+d 6d,d 6d-d 6d.d 6d/d 6d0d 6d1d 6d2d 6d3d 6d4d56ZR i d6d 6d7d 6d8d 6d9d 6d:d 6d;d 6d*d 6dd 6ZS i d eL 6d d<6d d=6d d 6d d 6ZT d g d g d g d g d g d d g d d d d g d d g d d g d d d g d5d g g ZU d d d d d d d d g ZV d d d d d d d d d d d g ZW i d>d@ 6d?de 6d@d9 6dAd] 6ZX dBe$ eY f dC    YZZ dDe$ eY f dE    YZ[ dFe$ eY f dG    YZ\ dHe$ f dI    YZ] dJ  Z^ dKe] f dL    YZ_ dMe] f dN    YZ` dOe] f dP    YZa dQe] f dR    YZb dSe] f dT    YZc dUe] f dV    YZd dWe] f dX    YZe dYe] f dZ    YZf d[e$ eY f d\    YZg d]e] f d^    YZh d_e] f d`    YZi dae] f db    YZj dce] f dd    YZk dee] f df    YZl dge] f dh    YZm die] f dj    YZn dke] f dl    YZo dme] f dn    YZp doe] f dp    YZq dqe] f dr    YZr dse] f dt    YZs due] f dv    YZt dwe] f dx    YZu dye] f dz    YZv d{e] f d|    YZw d}e] f d~    YZx de] f d    YZy de] f d    YZz de] f d    YZ{ de] f d    YZ| de] f d    YZ} de] f d    YZ~ de] f d    YZ de] f d    YZ de] f d    YZ de] f d    YZ de] f d    YZ de] f d    YZ de] f d    YZ de] f d    YZ de] f d    YZ de] f d    YZ de] f d    YZ de] f d    YZ de] f d    YZ de] f d    YZ de] f d    YZ de f d    YZ de f d    YZ de f d    YZ de] f d    YZ de] f d    YZ de] f d    YZ de] f d    YZ de] f d    YZ de] f d    YZ de] f d    YZ de] f d    YZ de] f d    YZ de] f d    YZ de] f d    YZ de] f d    YZ de] f d    YZ de] f d    YZ de] f d    YZ de] f d    YZ de] f d    YZ de] f d    YZ de] f d    YZ de] f d    YZ de] f d    YZ de] f d    YZ de] f d    YZ de] f d    YZ de] f d    YZ de] f d    YZ de] f d    YZ de] f d    YZ de] f d    YZ de] f d    YZ de] f d    YZ de f d    YZ de f d    YZ de f d    YZ d  Z de f d    YZ de f d    YZ de f d    YZ de f d    YZ de f d    YZ de f d    YZ d e f d    YZ de f d    YZ de f d    YZ de  f d    YZ de  f d	    YZ d
e  f d    YZ de f d    YZ de f d    YZ de f d    YZ d  Z d S(  s   
    sphinx.domains.cpp
    ~~~~~~~~~~~~~~~~~~

    The C++ language domain.

    :copyright: Copyright 2007-2019 by the Sphinx team, see AUTHORS.
    :license: BSD, see LICENSE for details.
iN(   t   deepcopy(   t   nodest   utils(   t
   directives(   t	   iteritemst	   text_type(   t   addnodes(   t   ObjectDescription(   t   Domaint   ObjType(   t   NoUri(   t   _t   __(   t   XRefRole(   t   logging(   t   Fieldt   GroupedField(   t   SphinxDirective(   t   make_refnode(   t   UnicodeMixin(	   t   Anyt   Callablet   Dictt   Iteratort   Listt   Matcht   Patternt   Tuplet   Union(   t   Sphinx(   t   Builder(   t   Config(   t   BuildEnvironments   [1-9][0-9]*s   0[0-7]*s   0[xX][0-7a-fA-F][0-7a-fA-F]*s   0[bB][01][01]*t    s;  (?x)
    [+-]?(
    # decimal
      ([0-9]+[eE][+-]?[0-9]+)
    | ([0-9]*\.[0-9]+([eE][+-]?[0-9]+)?)
    | ([0-9]+\.([eE][+-]?[0-9]+)?)
    # hex
    | (0[xX][0-9a-fA-F]+[pP][+-]?[0-9a-fA-F]+)
    | (0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9a-fA-F]+)?)
    | (0[xX][0-9a-fA-F]+\.([pP][+-]?[0-9a-fA-F]+)?)
    )
s   (?x)
    ((?:u8)|u|U|L)?
    '(
      (?:[^\\'])
    | (\\(
        (?:['"?\\abfnrtv])
      | (?:[0-7]{1,3})
      | (?:x[0-9a-fA-F]{2})
      | (?:u[0-9a-fA-F]{4})
      | (?:U[0-9a-fA-F]{8})
      ))
    )'
s   (@[a-zA-Z0-9_])[a-zA-Z0-9_]*\bs
  (?x)
    (   # This 'extends' _anon_identifier_re with the ordinary identifiers,
        # make sure they are in sync.
        (~?\b[a-zA-Z_])  # ordinary identifiers
    |   (@[a-zA-Z0-9_])  # our extension for names of anonymous entities
    )
    [a-zA-Z0-9_]*\b
s   (?u)\s+s>   [LuU8]?('([^'\\]*(?:\\.[^'\\]*)*)'|"([^"\\]*(?:\\.[^"\\]*)*)")s   \b(public|private|protected)\bs   (?x)
        \[\s*\]
    |   \(\s*\)
    |   \+\+ | --
    |   ->\*? | \,
    |   (<<|>>)=? | && | \|\|
    |   [!<>=/*%+|&^~-]=?
sx   (?x)
        ->\*    |    \.\*    |    \,
    |   (<<|>>)=?    |    &&    |    \|\|
    |   !=
    |   [<>=/*%+|&^~-]=?
t   alignast   alignoft   andt   and_eqt   asmt   autot   bitandt   bitort   boolt   breakt   caset   catcht   chart   char16_tt   char32_tt   classt   complt   conceptt   constt	   constexprt
   const_castt   continuet   decltypet   defaultt   deletet   dot   doublet   dynamic_castt   elset   enumt   explicitt   exportt   externt   falset   floatt   fort   friendt   gotot   ift   inlinet   intt   longt   mutablet	   namespacet   newt   noexceptt   nott   not_eqt   nullptrt   operatort   ort   or_eqt   privatet	   protectedt   publict   registert   reinterpret_castt   requirest   returnt   shortt   signedt   sizeoft   statict   static_assertt   static_castt   structt   switcht   templatet   thist   thread_localt   throwt   truet   tryt   typedeft   typeidt   typenamet   uniont   unsignedt   usingt   virtualt   voidt   volatilet   wchar_tt   whilet   xort   xor_eqi   t   _CPPv2t   _CPPv3t   _CPPv4t   cs   signed chart   Cs   unsigned chart   is
   signed intt   Us   unsigned intt   ls   signed longt   Ls   unsigned longt   bt   sss   std::stringt   oss   std::ostreamt   iss   std::istreamt   ioss   std::iostreamt   vs   std::vectort   ms   std::maps   new-operators   new-array-operators   new[]s   delete-operators   delete-array-operators   delete[]s   inv-operatort   ~s   add-operatort   +s   sub-operatort   -s   mul-operatort   *s   div-operatort   /s   mod-operatort   %s   and-operatort   &s   or-operatort   |s   xor-operatort   ^s   assign-operatort   =s   add-assign-operators   +=s   sub-assign-operators   -=s   mul-assign-operators   *=s   div-assign-operators   /=s   mod-assign-operators   %=s   and-assign-operators   &=s   or-assign-operators   |=s   xor-assign-operators   ^=s   lshift-operators   <<s   rshift-operators   >>s   lshift-assign-operators   <<=s   rshift-assign-operators   >>=s   eq-operators   ==s   neq-operators   !=s   lt-operatort   <s   gt-operatort   >s   lte-operators   <=s   gte-operators   >=s   not-operatort   !s   sand-operators   &&s   sor-operators   ||s   inc-operators   ++s   dec-operators   --s   comma-operatort   ,s   pointer-by-pointer-operators   ->*s   pointer-operators   ->s   call-operators   ()s   subscript-operators   []t   at   ht   wt   Dit   Dst   ss	   short ints   signed shorts   signed short intt   ts   unsigned shorts   unsigned short intt   js   long ints   signed long ints   unsigned long intt   xs	   long longs   long long ints   signed long longs   signed long long intt   ys   unsigned long longs   unsigned long long intt   ft   dt   es   long doublet   Dat   Dcs   decltype(auto)t   Dns   std::nullptr_tt   nwt   nat   dlt   dat   cot   plt   mit   mlt   dvt   rmt   ant   eot   aSt   pLt   mIt   mLt   dVt   rMt   aNt   oRt   eOt   lst   rst   lSt   rSt   eqt   net   ltt   gtt   let   get   ntt   aat   oot   ppt   mmt   cmt   pmt   ptt   clt   ixt   dss   .*t   pp_t   mm_t   det   adt   pst   ngt   u8t   ut   dct   sct   cct   rct   NoOldIdErrorc           B   s   e  Z d  d  Z d   Z RS(   R!   c         C   s   | |  _  d  S(   N(   t   description(   t   selfR   (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyt   __init__D  s    c         C   s   |  j  S(   N(   R   (   R   (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyt   __unicode__H  s    (   t   __name__t
   __module__R   R   (    (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR   B  s   t   DefinitionErrorc           B   s   e  Z d    Z d   Z RS(   c         C   s   | |  _  d  S(   N(   R   (   R   R   (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR   N  s    c         C   s   |  j  S(   N(   R   (   R   (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR   R  s    (   R   R   R   R   (    (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR   M  s   	t   _DuplicateSymbolErrorc           B   s   e  Z d    Z d   Z RS(   c         C   s.   | s t   | s t   | |  _ | |  _ d  S(   N(   t   AssertionErrort   symbolt   declaration(   R   R   R   (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR   X  s    	c         C   s   d |  j  j d  S(   Ns'   Internal C++ duplicate symbol error:
%si    (   R   t   dump(   R   (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR   _  s    (   R   R   R   R   (    (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR   W  s   	t   ASTBasec           B   sM   e  Z d    Z d   Z d Z d   Z d   Z d   Z d   Z	 d   Z
 RS(   c         C   sr   t  |   t  |  k	 r t Sy= x6 t |  j  D]% \ } } | t | |  k r/ t Sq/ WWn t k
 rm t SXt S(   N(   t   typet   FalseR   t   __dict__t   getattrt   AttributeErrort   True(   R   t   othert   keyt   value(    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyt   __eq__e  s    c         C   s   |  j  |  S(   N(   R   (   R   R   (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyt   __ne__q  s    c         C   s
   t  |   S(   s#   Clone a definition expression node.(   R    (   R   (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyt   clonew  s    c         C   s   t  t |     d  S(   N(   t   NotImplementedErrort   repr(   R   t	   transform(    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyt
   _stringify|  s    c         C   s   |  j  d    S(   Nc         S   s
   t  |   S(   N(   R   (   t   ast(    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyt   <lambda>  s    (   R   (   R   (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR     s    c         C   s   |  j  d    S(   Nc         S   s
   |  j    S(   N(   t   get_display_string(   R   (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR     s    (   R   (   R   (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR     s    c         C   s   d |  j  j |  f S(   Ns   <%s %s>(   t	   __class__R   (   R   (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyt   __repr__  s    N(   R   R   R   R   t   Nonet   __hash__R   R   R   R   R   (    (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR   d  s   						c         C   s#   |  d k r t  d |    n  d  S(   Nt
   lastIsNamet
   noneIsNamet   markTypet   params!   Description mode '%s' is invalid.(   R  R  R  R  (   t	   Exception(   t   mode(    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyt   _verify_description_mode  s    t   ASTCPPAttributec           B   s#   e  Z d    Z d   Z d   Z RS(   c         C   s   | |  _  d  S(   N(   t   arg(   R   R	  (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR     s    c         C   s   d |  j  d S(   Ns   [[s   ]](   R	  (   R   R   (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR     s    c         C   s)   t  |   } | j t j | |   d  S(   N(   R   t   appendR   t   Text(   R   t   signodet   txt(    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyt   describe_signature  s    (   R   R   R   R   R  (    (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR    s   		t   ASTGnuAttributec           B   s   e  Z d    Z d   Z RS(   c         C   s   | |  _  | |  _ d  S(   N(   t   namet   args(   R   R  R  (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR     s    	c         C   sU   |  j  g } |  j rH | j d  | j | |  j   | j d  n  d j |  S(   Nt   (t   )R!   (   R  R  R
  t   join(   R   R   t   res(    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR     s    	(   R   R   R   R   (    (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR    s   	t   ASTGnuAttributeListc           B   s#   e  Z d    Z d   Z d   Z RS(   c         C   s   | |  _  d  S(   N(   t   attrs(   R   R  (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR     s    c         C   sl   d g } t  } x@ |  j D]5 } | s5 | j d  n  t } | j | |   q W| j d  d j |  S(   Ns   __attribute__((s   , s   ))R!   (   R   R  R
  R   R  (   R   R   R  t   firstt   attr(    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR     s    	c         C   s)   t  |   } | j t j | |   d  S(   N(   R   R
  R   R  (   R   R  R  (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR    s    (   R   R   R   R   R  (    (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR    s   		t   ASTIdAttributec           B   s)   e  Z d  Z d   Z d   Z d   Z RS(   s*   For simple attributes defined by the user.c         C   s   | |  _  d  S(   N(   t   id(   R   R  (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR     s    c         C   s   |  j  S(   N(   R  (   R   R   (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR     s    c         C   s#   | j  t j |  j |  j   d  S(   N(   R
  R   R  R  (   R   R  (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR    s    (   R   R   t   __doc__R   R   R  (    (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR    s   		t   ASTParenAttributec           B   s)   e  Z d  Z d   Z d   Z d   Z RS(   s)   For paren attributes defined by the user.c         C   s   | |  _  | |  _ d  S(   N(   R  R	  (   R   R  R	  (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR     s    	c         C   s   |  j  d |  j d S(   NR  R  (   R  R	  (   R   R   (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR     s    c         C   s)   t  |   } | j t j | |   d  S(   N(   R   R
  R   R  (   R   R  R  (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR    s    (   R   R   R  R   R   R  (    (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR    s   		t   ASTPointerLiteralc           B   s#   e  Z d    Z d   Z d   Z RS(   c         C   s   d S(   Nu   nullptr(    (   R   R   (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR     s    c         C   s   d S(   Nt   LDnE(    (   R   t   version(    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyt   get_id  s    c         C   s   | j  t j d   d  S(   NRR   (   R
  R   R  (   R   R  R  t   envR   (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR    s    (   R   R   R   R!  R  (    (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR    s   		t   ASTBooleanLiteralc           B   s,   e  Z d    Z d   Z d   Z d   Z RS(   c         C   s   | |  _  d  S(   N(   R   (   R   R   (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR     s    c         C   s   |  j  r d Sd Sd  S(   Nu   trueu   false(   R   (   R   R   (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR     s    	c         C   s   |  j  r d Sd Sd  S(   Nt   L1Et   L0E(   R   (   R   R   (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR!    s    	c         C   s    | j  t j t |     d  S(   N(   R
  R   R  R   (   R   R  R  R"  R   (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR  	  s    (   R   R   R   R   R!  R  (    (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR#    s   			t   ASTNumberLiteralc           B   s,   e  Z d    Z d   Z d   Z d   Z RS(   c         C   s   | |  _  d  S(   N(   t   data(   R   R'  (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR     s    c         C   s   |  j  S(   N(   R'  (   R   R   (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR     s    c         C   s   d |  j  S(   Ns   L%sE(   R'  (   R   R   (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR!    s    c         C   s)   t  |   } | j t j | |   d  S(   N(   R   R
  R   R  (   R   R  R  R"  R   R  (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR    s    (   R   R   R   R   R!  R  (    (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR&    s   			t$   UnsupportedMultiCharacterCharLiteralc           B   s   e  Z d    Z RS(   c         C   s   | |  _  d  S(   N(   t   decoded(   R   R)  (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR     s    (   R   R   R   (    (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR(    s   t   ASTCharLiteralc           B   s,   e  Z d    Z d   Z d   Z d   Z RS(   c         C   sz   | |  _  | |  _ | t k s$ t  t | |  _ | j   j d  } t |  d k rj t |  |  _	 n t
 |   d  S(   Ns   unicode-escapei   (   t   prefixR'  t   _id_char_from_prefixR   R   t   encodet   decodet   lent   ordR   R(  (   R   R+  R'  R)  (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR   #  s    		c         C   s8   |  j  d  k r d |  j d S|  j  d |  j d Sd  S(   Nt   '(   R+  R   R'  (   R   R   (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR   /  s    c         C   s   |  j  t |  j  S(   N(   R   t   strR   (   R   R   (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR!  5  s    c         C   s)   t  |   } | j t j | |   d  S(   N(   R   R
  R   R  (   R   R  R  R"  R   R  (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR  8  s    (   R   R   R   R   R!  R  (    (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR*  "  s   			t   ASTStringLiteralc           B   s,   e  Z d    Z d   Z d   Z d   Z RS(   c         C   s   | |  _  d  S(   N(   R'  (   R   R'  (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR   >  s    c         C   s   |  j  S(   N(   R'  (   R   R   (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR   B  s    c         C   s   d t  |  j  d S(   Ns   LA%d_KcEi   (   R/  R'  (   R   R   (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR!  E  s    c         C   s)   t  |   } | j t j | |   d  S(   N(   R   R
  R   R  (   R   R  R  R"  R   R  (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR  I  s    (   R   R   R   R   R!  R  (    (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR3  =  s   			t   ASTThisLiteralc           B   s#   e  Z d    Z d   Z d   Z RS(   c         C   s   d S(   NRf   (    (   R   R   (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR   O  s    c         C   s   d S(   Nt   fpT(    (   R   R   (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR!  R  s    c         C   s   | j  t j d   d  S(   NRf   (   R
  R   R  (   R   R  R  R"  R   (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR  U  s    (   R   R   R   R!  R  (    (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR4  N  s   		t   ASTParenExprc           B   s,   e  Z d    Z d   Z d   Z d   Z RS(   c         C   s   | |  _  d  S(   N(   t   expr(   R   R7  (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR   Z  s    c         C   s   d | |  j   d S(   NR  R  (   R7  (   R   R   (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR   ]  s    c         C   s   |  j  j |  S(   N(   R7  R!  (   R   R   (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR!  `  s    c         C   sO   | j  t j d d   |  j j | | | |  | j  t j d d   d  S(   NR  R  (   R
  R   R  R7  R  (   R   R  R  R"  R   (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR  c  s    (   R   R   R   R   R!  R  (    (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR6  Y  s   			t   ASTFoldExprc           B   s,   e  Z d    Z d   Z d   Z d   Z RS(   c         C   s=   | d  k	 s | d  k	 s t  | |  _ | |  _ | |  _ d  S(   N(   R   R   t   leftExprt   opt	   rightExpr(   R   R9  R:  R;  (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR   j  s    		c         C   s   d g } |  j  r[ | j | |  j    | j d  | j | |  j   | j d  n  | j d  |  j r | j d  | j | |  j   | j d  | j | |  j   n  | j d  d j |  S(   Nu   (u    u   ...u   )u    (   R9  R
  R:  R;  R  (   R   R   R  (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR   q  s    			c         C   s   | d k s t   | d k r( t |   Sg  } |  j d  k rM | j d  n, |  j d  k rl | j d  n | j d  | j t t |  j   |  j r | j |  j j	 |   n  |  j r | j |  j j	 |   n  d j
 |  S(   Ni   t   flt   frt   fLR!   (   R   R   R9  R   R
  R;  R2  t   _id_operator_v2R:  R!  R  (   R   R   R  (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR!    s    
		c         C   s  | j  t j d   |  j r |  j j | | | |  | j  t j d   | j  t j |  j   | j  t j d   n  | j  t j d   |  j r | j  t j d   | j  t j |  j   | j  t j d   |  j j | | | |  n  | j  t j d   d  S(   NR  t    s   ...R  (   R
  R   R  R9  R  R:  R;  (   R   R  R  R"  R   (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR    s    		(   R   R   R   R   R!  R  (    (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR8  i  s   			t   ASTBinOpExprc           B   s,   e  Z d    Z d   Z d   Z d   Z RS(   c         C   sP   t  |  d k s t  t  |  t  |  d k s: t  | |  _ | |  _ d  S(   Ni    i   (   R/  R   t   exprst   ops(   R   RB  RC  (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR     s    "	c         C   s   g  } | j  | |  j d   xl t d t |  j   D]R } | j  d  | j  |  j | d  | j  d  | j  | |  j |   q9 Wd j |  S(   Ni    i   R@  u    (   R
  RB  t   rangeR/  RC  R  (   R   R   R  R}   (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR     s    c         C   s   | d k s t   g  } xR t t |  j   D]; } | j t |  j |  | j |  j | j |   q. W| j |  j d j |   d j |  S(   Ni   iu    (	   R   RD  R/  RC  R
  R?  RB  R!  R  (   R   R   R  R}   (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR!    s    !c         C   s   |  j  d j | | | |  x t d t |  j    D]p } | j t j d   | j t j |  j | d   | j t j d   |  j  | j | | | |  q6 Wd  S(   Ni    i   R@  (   RB  R  RD  R/  R
  R   R  RC  (   R   R  R  R"  R   R}   (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR    s    !(   R   R   R   R   R!  R  (    (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyRA    s   		
		t   ASTAssignmentExprc           B   s,   e  Z d    Z d   Z d   Z d   Z RS(   c         C   sP   t  |  d k s t  t  |  t  |  d k s: t  | |  _ | |  _ d  S(   Ni    i   (   R/  R   RB  RC  (   R   RB  RC  (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR     s    "	c         C   s   g  } | j  | |  j d   xl t d t |  j   D]R } | j  d  | j  |  j | d  | j  d  | j  | |  j |   q9 Wd j |  S(   Ni    i   R@  u    (   R
  RB  RD  R/  RC  R  (   R   R   R  R}   (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR     s    c         C   s   g  } xR t  t |  j   D]; } | j t |  j |  | j |  j | j |   q W| j |  j d j |   d j |  S(   Niu    (   RD  R/  RC  R
  R?  RB  R!  R  (   R   R   R  R}   (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR!    s    !c         C   s   |  j  d j | | | |  x t d t |  j    D]p } | j t j d   | j t j |  j | d   | j t j d   |  j  | j | | | |  q6 Wd  S(   Ni    i   R@  (   RB  R  RD  R/  R
  R   R  RC  (   R   R  R  R"  R   R}   (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR    s    !(   R   R   R   R   R!  R  (    (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyRE    s   		
	t   ASTCastExprc           B   s,   e  Z d    Z d   Z d   Z d   Z RS(   c         C   s   | |  _  | |  _ d  S(   N(   t   typR7  (   R   RG  R7  (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR     s    	c         C   sO   d g } | j  | |  j   | j  d  | j  | |  j   d j |  S(   Nu   (u   )u    (   R
  RG  R7  R  (   R   R   R  (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR     s
    	c         C   s$   d |  j  j |  |  j j |  S(   Nt   cv(   RG  R!  R7  (   R   R   (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR!    s    c         C   sb   | j  t j d   |  j j | | | |  | j  t j d   |  j j | | | |  d  S(   NR  R  (   R
  R   R  RG  R  R7  (   R   R  R  R"  R   (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR    s    (   R   R   R   R   R!  R  (    (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyRF    s   			t   ASTUnaryOpExprc           B   s,   e  Z d    Z d   Z d   Z d   Z RS(   c         C   s   | |  _  | |  _ d  S(   N(   R:  R7  (   R   R:  R7  (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR     s    	c         C   s   | |  j   | |  j  S(   N(   R:  R7  (   R   R   (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR     s    c         C   s   t  |  j |  j j |  S(   N(   t   _id_operator_unary_v2R:  R7  R!  (   R   R   (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR!  	  s    c         C   s6   | j  t j |  j   |  j j | | | |  d  S(   N(   R
  R   R  R:  R7  R  (   R   R  R  R"  R   (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR    s    (   R   R   R   R   R!  R  (    (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyRI    s   			t   ASTSizeofParamPackc           B   s,   e  Z d    Z d   Z d   Z d   Z RS(   c         C   s   | |  _  d  S(   N(   t
   identifier(   R   RL  (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR     s    c         C   s   d | |  j   d S(   Ns
   sizeof...(R  (   RL  (   R   R   (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR     s    c         C   s   d |  j  j |  S(   Nt   sZ(   RL  R!  (   R   R   (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR!    s    c      
   C   sX   | j  t j d   |  j j | | | d | d d d d | j  t j d   d  S(   Ns
   sizeof...(R   R+  R!   t   templateArgsR  (   R
  R   R  RL  R  (   R   R  R  R"  R   (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR    s    (   R   R   R   R   R!  R  (    (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyRK    s   			t   ASTSizeofTypec           B   s,   e  Z d    Z d   Z d   Z d   Z RS(   c         C   s   | |  _  d  S(   N(   RG  (   R   RG  (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR   #  s    c         C   s   d | |  j   d S(   Ns   sizeof(R  (   RG  (   R   R   (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR   &  s    c         C   s   d |  j  j |  S(   Nt   st(   RG  R!  (   R   R   (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR!  )  s    c         C   sI   | j  t j d   |  j j | | | |  | j  t j d   d  S(   Ns   sizeof(R  (   R
  R   R  RG  R  (   R   R  R  R"  R   (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR  ,  s    (   R   R   R   R   R!  R  (    (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyRO  "  s   			t   ASTSizeofExprc           B   s,   e  Z d    Z d   Z d   Z d   Z RS(   c         C   s   | |  _  d  S(   N(   R7  (   R   R7  (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR   3  s    c         C   s   d | |  j   S(   Ns   sizeof (   R7  (   R   R   (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR   6  s    c         C   s   d |  j  j |  S(   Nt   sz(   R7  R!  (   R   R   (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR!  9  s    c         C   s3   | j  t j d   |  j j | | | |  d  S(   Ns   sizeof (   R
  R   R  R7  R  (   R   R  R  R"  R   (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR  <  s    (   R   R   R   R   R!  R  (    (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyRQ  2  s   			t   ASTAlignofExprc           B   s,   e  Z d    Z d   Z d   Z d   Z RS(   c         C   s   | |  _  d  S(   N(   RG  (   R   RG  (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR   B  s    c         C   s   d | |  j   d S(   Ns   alignof(R  (   RG  (   R   R   (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR   E  s    c         C   s   d |  j  j |  S(   Nt   at(   RG  R!  (   R   R   (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR!  H  s    c         C   sI   | j  t j d   |  j j | | | |  | j  t j d   d  S(   Ns   alignof(R  (   R
  R   R  RG  R  (   R   R  R  R"  R   (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR  K  s    (   R   R   R   R   R!  R  (    (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyRS  A  s   			t   ASTNoexceptExprc           B   s,   e  Z d    Z d   Z d   Z d   Z RS(   c         C   s   | |  _  d  S(   N(   R7  (   R   R7  (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR   R  s    c         C   s   d | |  j   d S(   Ns	   noexcept(R  (   R7  (   R   R   (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR   U  s    c         C   s   d |  j  j |  S(   Nt   nx(   R7  R!  (   R   R   (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR!  X  s    c         C   sI   | j  t j d   |  j j | | | |  | j  t j d   d  S(   Ns	   noexcept(R  (   R
  R   R  R7  R  (   R   R  R  R"  R   (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR  [  s    (   R   R   R   R   R!  R  (    (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyRU  Q  s   			t
   ASTNewExprc           B   s,   e  Z d    Z d   Z d   Z d   Z RS(   c         C   sX   | |  _  | |  _ | |  _ | |  _ | |  _ |  j d  k	 rT |  j d k sT t  n  d  S(   Ns   )}(   t   rootedt   isNewTypeIdRG  t   initListt   initTypeR   R   (   R   RX  RY  RG  RZ  R[  (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR   b  s    					c         C   s   g  } |  j  r | j d  n  | j d  |  j rN | j | |  j   n t sZ t  |  j d  k	 r |  j d k r | j d  n  t	 } x@ |  j D]5 } | s | j d  n  t } | j | |   q W| j |  j  n  d j
 |  S(   Ns   ::s   new R  R  s   , u    (   RX  R
  RY  RG  R   R   RZ  R   R[  R   R  (   R   R   R  R  R   (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR   l  s$    		c         C   s   d g } | j  d  | j  |  j j |   |  j d  k	 r |  j d k r | j  d  x' |  j D] } | j  | j |   qd W| j  d  q t s t  n | j  d  d j |  S(   NR   R   R  t   pit   Eu    (	   R
  RG  R!  RZ  R   R[  R   R   R  (   R   R   R  R   (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR!    s    	c         C   s  |  j  r" | j t j d   n  | j t j d   |  j r] |  j j | | | |  n t si t  |  j	 d  k	 r|  j d k r| j t j d   t } xL |  j	 D]A } | s | j t j d   n  t } | j | | | |  q W| j t j d   qt st  n  d  S(   Ns   ::s   new R  R  s   , (   RX  R
  R   R  RY  RG  R  R   R   RZ  R   R[  R   (   R   R  R  R"  R   R  R   (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR    s"    		(   R   R   R   R   R!  R  (    (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyRW  a  s   	
		t   ASTDeleteExprc           B   s,   e  Z d    Z d   Z d   Z d   Z RS(   c         C   s   | |  _  | |  _ | |  _ d  S(   N(   RX  t   arrayR7  (   R   RX  R_  R7  (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR     s    		c         C   sh   g  } |  j  r | j d  n  | j d  |  j rE | j d  n  | j | |  j   d j |  S(   Ns   ::s   delete s   [] u    (   RX  R
  R_  R7  R  (   R   R   R  (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR     s    		c         C   s,   |  j  r d } n d } | |  j j |  S(   NR   R   (   R_  R7  R!  (   R   R   R  (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR!    s    		c         C   sw   |  j  r" | j t j d   n  | j t j d   |  j rZ | j t j d   n  |  j j | | | |  d  S(   Ns   ::s   delete s   [] (   RX  R
  R   R  R_  R7  R  (   R   R  R  R"  R   (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR    s    		(   R   R   R   R   R!  R  (    (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR^    s   		
	t   ASTExplicitCastc           B   s,   e  Z d    Z d   Z d   Z d   Z RS(   c         C   s1   | t  k s t  | |  _ | |  _ | |  _ d  S(   N(   t   _id_explicit_castR   t   castRG  R7  (   R   Rb  RG  R7  (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR     s    		c         C   sl   |  j  g } | j d  | j | |  j   | j d  | j | |  j   | j d  d j |  S(   NR   s   >(R  u    (   Rb  R
  RG  R7  R  (   R   R   R  (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR     s    c         C   s+   t  |  j |  j j |  |  j j |  S(   N(   Ra  Rb  RG  R!  R7  (   R   R   (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR!    s    c         C   s   | j  t j |  j   | j  t j d   |  j j | | | |  | j  t j d   | j  t j d   |  j j | | | |  | j  t j d   d  S(   NR   R   R  R  (   R
  R   R  Rb  RG  R  R7  (   R   R  R  R"  R   (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR    s    (   R   R   R   R   R!  R  (    (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR`    s   				t	   ASTTypeIdc           B   s,   e  Z d    Z d   Z d   Z d   Z RS(   c         C   s   | |  _  | |  _ d  S(   N(   t
   typeOrExprt   isType(   R   Rd  Re  (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR     s    	c         C   s   d | |  j   d S(   Ns   typeid(R  (   Rd  (   R   R   (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR     s    c         C   s)   |  j  r d n d } | |  j j |  S(   Nt   tit   te(   Re  Rd  R!  (   R   R   R+  (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR!    s    c         C   s_   | j  t j d   | j  t j d   |  j j | | | |  | j  t j d   d  S(   NRl   R  R  (   R
  R   R  Rd  R  (   R   R  R  R"  R   (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR    s    (   R   R   R   R   R!  R  (    (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyRc    s   			t   ASTPostfixCallExprc           B   s,   e  Z d    Z d   Z d   Z d   Z RS(   c         C   s   | |  _  d  S(   N(   RB  (   R   RB  (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR     s    c         C   sl   d g } t  } x@ |  j D]5 } | s5 | j d  n  t } | j | |   q W| j d  d j |  S(   Nu   (u   , u   )u    (   R   RB  R
  R   R  (   R   R   R  R  R   (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR     s    	c         C   sP   d | g } x' |  j  D] } | j | j |   q W| j d  d j |  S(   NR   R]  u    (   RB  R
  R!  R  (   R   t   idPrefixR   R  R   (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR!    s
    c         C   s   | j  t j d   t } xL |  j D]A } | sK | j  t j d   n  t } | j | | | |  q& W| j  t j d   d  S(   NR  s   , R  (   R
  R   R  R   RB  R   R  (   R   R  R  R"  R   R  R   (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR    s    (   R   R   R   R   R!  R  (    (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyRh    s   			t   ASTPostfixArrayc           B   s,   e  Z d    Z d   Z d   Z d   Z RS(   c         C   s   | |  _  d  S(   N(   R7  (   R   R7  (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR     s    c         C   s   d | |  j   d S(   Nu   [t   ](   R7  (   R   R   (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR   "  s    c         C   s   d | |  j  j |  S(   NR   (   R7  R!  (   R   Ri  R   (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR!  %  s    c         C   sI   | j  t j d   |  j j | | | |  | j  t j d   d  S(   Nt   [Rk  (   R
  R   R  R7  R  (   R   R  R  R"  R   (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR  (  s    (   R   R   R   R   R!  R  (    (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyRj    s   			t   ASTPostfixIncc           B   s#   e  Z d    Z d   Z d   Z RS(   c         C   s   d S(   Nu   ++(    (   R   R   (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR   /  s    c         C   s   d | S(   NR   (    (   R   Ri  R   (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR!  2  s    c         C   s   | j  t j d   d  S(   Ns   ++(   R
  R   R  (   R   R  R  R"  R   (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR  5  s    (   R   R   R   R!  R  (    (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyRm  .  s   		t   ASTPostfixDecc           B   s#   e  Z d    Z d   Z d   Z RS(   c         C   s   d S(   Nu   --(    (   R   R   (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR   :  s    c         C   s   d | S(   NR   (    (   R   Ri  R   (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR!  =  s    c         C   s   | j  t j d   d  S(   Ns   --(   R
  R   R  (   R   R  R  R"  R   (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR  @  s    (   R   R   R   R!  R  (    (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyRn  9  s   		t   ASTPostfixMemberc           B   s,   e  Z d    Z d   Z d   Z d   Z RS(   c         C   s   | |  _  d  S(   N(   R  (   R   R  (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR   E  s    c         C   s   d | |  j   S(   Nu   .(   R  (   R   R   (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR   H  s    c         C   s   d | |  j  j |  S(   Nt   dt(   R  R!  (   R   Ri  R   (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR!  K  s    c         C   s3   | j  t j d   |  j j | d | |  d  S(   Nt   .R  (   R
  R   R  R  R  (   R   R  R  R"  R   (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR  N  s    (   R   R   R   R   R!  R  (    (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyRo  D  s   			t   ASTPostfixMemberOfPointerc           B   s,   e  Z d    Z d   Z d   Z d   Z RS(   c         C   s   | |  _  d  S(   N(   R  (   R   R  (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR   T  s    c         C   s   d | |  j   S(   Nu   ->(   R  (   R   R   (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR   W  s    c         C   s   d | |  j  j |  S(   NR   (   R  R!  (   R   Ri  R   (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR!  Z  s    c         C   s3   | j  t j d   |  j j | d | |  d  S(   Ns   ->R  (   R
  R   R  R  R  (   R   R  R  R"  R   (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR  ]  s    (   R   R   R   R   R!  R  (    (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyRr  S  s   			t   ASTPostfixExprc           B   s,   e  Z d    Z d   Z d   Z d   Z RS(   c         C   s.   t  |  d k s t  | |  _ | |  _ d  S(   Ni    (   R/  R   R+  t	   postFixes(   R   R+  Rt  (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR   c  s    	c         C   sF   | |  j   g } x$ |  j D] } | j | |   q Wd j |  S(   Nu    (   R+  Rt  R
  R  (   R   R   R  t   p(    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR   h  s    c         C   s<   |  j  j |  } x# |  j D] } | j | |  } q W| S(   N(   R+  R!  Rt  (   R   R   R  Ru  (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR!  n  s    c         C   sG   |  j  j | | | |  x' |  j D] } | j | | | |  q# Wd  S(   N(   R+  R  Rt  (   R   R  R  R"  R   Ru  (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR  t  s    (   R   R   R   R   R!  R  (    (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyRs  b  s   			t   ASTPackExpansionExprc           B   s,   e  Z d    Z d   Z d   Z d   Z RS(   c         C   s   | |  _  d  S(   N(   R7  (   R   R7  (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR   {  s    c         C   s   | |  j   d S(   Ns   ...(   R7  (   R   R   (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR   ~  s    c         C   s   |  j  j |  } d | S(   Nt   sp(   R7  R!  (   R   R   R  (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR!    s    c         C   s0   |  j  j | | | |  | t j d  7} d  S(   Ns   ...(   R7  R  R   R  (   R   R  R  R"  R   (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR    s    (   R   R   R   R   R!  R  (    (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyRv  z  s   			t   ASTFallbackExprc           B   s,   e  Z d    Z d   Z d   Z d   Z RS(   c         C   s   | |  _  d  S(   N(   R7  (   R   R7  (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR     s    c         C   s   |  j  S(   N(   R7  (   R   R   (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR     s    c         C   s   t  |  j  S(   N(   R   R7  (   R   R   (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR!    s    c         C   s   | t  j |  j  7} d  S(   N(   R   R  R7  (   R   R  R  R"  R   (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR    s    (   R   R   R   R   R!  R  (    (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyRx    s   			t   ASTIdentifierc           B   s>   e  Z d    Z d   Z d   Z d   Z d   Z d   Z RS(   c         C   s7   | d  k	 s t  t |  d k s* t  | |  _ d  S(   Ni    (   R   R   R/  RL  (   R   RL  (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR     s    c         C   s   |  j  d d k S(   Ni    t   @(   RL  (   R   (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyt   is_anon  s    c         C   s   |  j    r$ | d k  r$ t    n  | d k rM |  j d k rC d S|  j Sn  |  j d k r` d S|  j d d k rw d	 S|  j    r d
 t |  j  d |  j d f St t |  j   |  j Sd  S(   Ni   i   t   size_tR   t   stdt   Sti    R   t   D0u   Ut%d_%s(   R{  R   RL  R/  R   (   R   R   (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR!    s    
"c         C   s   |  j  S(   N(   RL  (   R   (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR     s    c         C   s   |  j    r d S|  j S(   Nu   [anonymous](   R{  RL  (   R   (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR     s    c   
      C   s`  t  |  | d k r | |  j | } t j d d d d d d | d d  d	 d  } | j   }	 |	 | d
 <|  j   r | t j d d  7} n | t j	 |  j  7} | | 7} n | d k r|  j   r | t j d d  7} q\| t j
 |  j |  j  7} nZ | d k rL|  j   r3| t j d d  7} q\| t j	 |  j  7} n t d |   d  S(   NR  R!   t	   refdomaint   cppt   reftypeRL  t	   reftargett   modnamet	   classnames   cpp:parent_keyt   texts   [anonymous]R  R  s   Unknown description mode: %s(   R  RL  R   t   pending_xrefR   t   get_lookup_keyR{  R   t   strongR  t	   desc_nameR  (
   R   R  R  R"  R+  RN  R   t
   targetTextt   pnodeR   (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR    s,    
	
(   R   R   R   R{  R!  R   R   R  (    (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyRy    s   					t    ASTTemplateKeyParamPackIdDefaultc           B   s5   e  Z d    Z d   Z d   Z d   Z d   Z RS(   c         C   sO   | s t   | r' | d  k s' t   n  | |  _ | |  _ | |  _ | |  _ d  S(   N(   R   R   R   RL  t   parameterPackR9   (   R   R   RL  R  R9   (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR     s    			c         C   s   |  j  S(   N(   RL  (   R   (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyt   get_identifier  s    c         C   sK   | d k s t   g  } |  j r1 | j d  n | j d  d j |  S(   Ni   t   Dpt   0R!   (   R   R  R
  R  (   R   R   R  (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR!    s    	c         C   s   |  j  g } |  j r> |  j r. | j d  n  | j d  n  |  j ry |  j s` | j d  n  | j | |  j   n  |  j r | j d  | j | |  j   n  d j |  S(   NR@  s   ...s    = R!   (   R   R  RL  R
  R9   R  (   R   R   R  (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR     s    					c         C   s   | t  j |  j  7} |  j rT |  j r> | t  j d  7} n  | t  j d  7} n  |  j r |  j s| | t  j d  7} n  |  j j | | | d d |  n  |  j r | t  j d  7} |  j j | d | |  n  d  S(   NR@  s   ...R!   s    = R  (   R   R  R   R  RL  R  R9   (   R   R  R  R"  R   (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR    s    				"	(   R   R   R   R  R!  R   R  (    (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR    s
   	
			t   ASTTemplateParamTypec           B   sY   e  Z d    Z e d    Z e d    Z d   Z d d d  Z d   Z	 d   Z
 RS(   c         C   s   | s t   | |  _ d  S(   N(   R   R'  (   R   R'  (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR     s    c         C   s.   |  j    } t t | d   g t g d t S(   NRX  (   R  t   ASTNestedNamet   ASTNestedNameElementR   R   (   R   R  (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR  !  s    c         C   s
   |  j  j S(   N(   R'  R  (   R   (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyt   isPack'  s    c         C   s   |  j  j   S(   N(   R'  R  (   R   (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR  +  s    c         C   sE   | d k s t   | r1 | j j j | d t S|  j j |  Sd  S(   Ni   t   prefixed(   R   t   parentR   R!  R   R'  (   R   R   t
   objectTypeR   (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR!  /  s    c         C   s   | |  j   S(   N(   R'  (   R   R   (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR   9  s    c         C   s   |  j  j | | | |  d  S(   N(   R'  R  (   R   R  R  R"  R   (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR  <  s    N(   R   R   R   t   propertyR  R  R  R   R!  R   R  (    (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR    s   		
	t'   ASTTemplateParamConstrainedTypeWithInitc           B   sP   e  Z d    Z e d    Z e d    Z d d d  Z d   Z d   Z	 RS(   c         C   s"   | s t   | |  _ | |  _ d  S(   N(   R   R   t   init(   R   R   R  (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR   B  s    	c         C   s
   |  j  j S(   N(   R   R  (   R   (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR  H  s    c         C   s
   |  j  j S(   N(   R   R  (   R   (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR  M  s    c         C   sE   | d k s t   | r1 | j j j | d t S|  j j |  Sd  S(   Ni   R  (   R   R  R   R!  R   R   (   R   R   R  R   (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR!  Q  s    c         C   s<   | |  j   } |  j r8 | d 7} | | |  j  7} n  | S(   Ns    = (   R   R  (   R   R   R  (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR   [  s
    	
c         C   sU   |  j  j | | | |  |  j rQ | t j d  7} |  j j | | | |  n  d  S(   Ns    = (   R   R  R  R   R  (   R   R  R  R"  R   (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR  b  s    	N(
   R   R   R   R  R  R  R   R!  R   R  (    (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR  A  s   	
	t   ASTTemplateParamTemplateTypec           B   sY   e  Z d    Z e d    Z e d    Z d   Z d d d  Z d   Z	 d   Z
 RS(   c         C   s.   | s t   | s t   | |  _ | |  _ d  S(   N(   R   t   nestedParamsR'  (   R   R  R'  (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR   k  s    	c         C   s.   |  j    } t t | d   g t g d t S(   NRX  (   R  R  R  R   R   (   R   R  (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR  r  s    c         C   s
   |  j  j S(   N(   R'  R  (   R   (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR  x  s    c         C   s   |  j  j   S(   N(   R'  R  (   R   (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR  |  s    c         C   sU   | d k s t   | r1 | j j j | d d  S|  j j |  |  j j |  Sd  S(   Ni   R  (   R   R  R   R!  R   R  R'  (   R   R   R  R   (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR!    s    c         C   s   | |  j   | |  j  S(   N(   R  R'  (   R   R   (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR     s    c         C   sI   |  j  j | d | |  | t j d  7} |  j j | | | |  d  S(   NR  R@  (   R  R  R   R  R'  (   R   R  R  R"  R   (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR    s    N(   R   R   R   R  R  R  R  R   R!  R   R  (    (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR  j  s   		
	t   ASTTemplateParamNonTypec           B   sY   e  Z d    Z e d    Z e d    Z d   Z d d d  Z d   Z	 d   Z
 RS(   c         C   s   | s t   | |  _ d  S(   N(   R   R  (   R   R  (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR     s    c         C   s.   |  j    } t t | d   g t g d t S(   NRX  (   R  R  R  R   R   (   R   R  (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR    s    c         C   s
   |  j  j S(   N(   R  R  (   R   (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR    s    c         C   sp   |  j  j } | rh t | j  d k s- t  | j d j sC t  | j d j sZ t  | j d j Sd  Sd  S(   Ni   i    (   R  R  R/  t   namesR   t	   identOrOpRN  R   (   R   R  (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR    s    c         C   sI   | d k s t   | r1 | j j j | d d  Sd |  j j |  Sd  S(   Ni   R  R   (   R   R  R   R!  R   R  (   R   R   R  R   (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR!    s    c         C   s   | |  j   S(   N(   R  (   R   R   (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR     s    c         C   s   |  j  j | | | |  d  S(   N(   R  R  (   R   R  R  R"  R   (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR    s    N(   R   R   R   R  R  R  R  R   R!  R   R  (    (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR    s   		
	t   ASTTemplateParamsc           B   s/   e  Z d    Z d   Z d   Z d d  Z RS(   c         C   s(   | d  k	 s t  | |  _ t |  _ d  S(   N(   R   R   t   paramsR   t   isNested(   R   R  (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR     s    	c         C   si   | d k s t   g  } | j d  x' |  j D] } | j | j |   q/ W| j d  d j |  S(   Ni   t   IR]  R!   (   R   R
  R  R!  R  (   R   R   R  R  (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR!    s    c            sV   g  } | j  d  | j  d j   f d   |  j D   | j  d  d j |  S(   Nu	   template<u   , c         3   s   |  ] }   |  Vq d  S(   N(    (   t   .0R   (   R   (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pys	   <genexpr>  s    u   > R!   (   R
  R  R  (   R   R   R  (    (   R   s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR     s
    )c   
      C   s   | d  } |  j  r | } n	 |   } | t j d  7} t } x[ |  j D]P }	 | sl | t j d  7} n  t } | r |   } n  |	 j | | | |  qJ W| r | r |   } n  | t j d  7} d  S(   Nc         S   s#   t  j   } |  | 7}  d | _ | S(   Nt   templateParams(   R   t   desc_signature_linet   sphinx_cpp_tagname(   t
   parentNodeR  (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyt   makeLine  s    
	s	   template<s   , R   (   R  R   R  R   R  R   R  (
   R   R  R  R"  R   t   lineSpecR  t   lineNodeR  R  (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR    s     			N(   R   R   R   R!  R   R   R  (    (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR    s   		
	t    ASTTemplateIntroductionParameterc           B   sb   e  Z d    Z e d    Z e d    Z d   Z d d d  Z d   Z	 d   Z
 d   Z RS(	   c         C   s   | |  _  | |  _ d  S(   N(   RL  R  (   R   RL  R  (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR     s    	c         C   s.   |  j    } t t | d   g t g d t S(   NRX  (   R  R  R  R   R   (   R   R  (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR    s    c         C   s   |  j  S(   N(   R  (   R   (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR    s    c         C   s   |  j  S(   N(   RL  (   R   (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR    s    c         C   sF   | d k s t   | r1 | j j j | d d  S|  j r> d Sd Sd  S(   Ni   R  R  R  (   R   R  R   R!  R   R  (   R   R   R  R   (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR!    s    	c         C   s=   | d k s t   |  j j |  } |  j r5 d | S| Sd  S(   Ni   u   sp(   R   RL  R!  R  (   R   R   R  (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyt   get_id_as_arg  s
    	c         C   sB   g  } |  j  r | j d  n  | j | |  j   d j |  S(   Ns   ...R!   (   R  R
  RL  R  (   R   R   R  (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR     s
    	c         C   sB   |  j  r | t j d  7} n  |  j j | | | d d |  d  S(   Ns   ...R!   (   R  R   R  RL  R  (   R   R  R  R"  R   (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR  %  s    	N(   R   R   R   R  R  R  R  R   R!  R  R   R  (    (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR    s   			
	t   ASTTemplateIntroductionc           B   s,   e  Z d    Z d   Z d   Z d   Z RS(   c         C   s.   t  |  d k s t  | |  _ | |  _ d  S(   Ni    (   R/  R   R3   R  (   R   R3   R  (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR   -  s    	c         C   s   | d k s t   g  } | j d  x' |  j D] } | j | j |   q/ W| j d  | j d  | j |  j j |   | j d  x' |  j D] } | j | j |   q W| j d  | j d  d j |  S(   Ni   R  R]  t   XR!   (   R   R
  R  R!  R3   R  R  (   R   R   R  R  (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR!  3  s    c            sl   g  } | j    |  j   | j  d  | j  d j   f d   |  j D   | j  d  d j |  S(   Nt   {s   , c         3   s   |  ] }   |  Vq d  S(   N(    (   R  R  (   R   (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pys	   <genexpr>J  s    s   } R!   (   R
  R3   R  R  (   R   R   R  (    (   R   s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR   F  s    )c   	      C   s   t  j   } | | 7} d | _ |  j j | d | |  | t j d  7} t } xI |  j D]> } | s} | t j d  7} n  t	 } | j | | | |  q[ W| t j d  7} d  S(   Nt   templateIntroductionR  R  s   , t   }(
   R   R  R  R3   R  R   R  R   R  R   (	   R   R  R  R"  R   R  R  R  R  (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR  N  s    
	(   R   R   R   R!  R   R  (    (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR  ,  s   			t   ASTTemplateDeclarationPrefixc           B   s,   e  Z d    Z d   Z d   Z d   Z RS(   c         C   s   | |  _  d  S(   N(   t	   templates(   R   R  (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR   `  s    c         C   sO   | d k s t   g  } x' |  j D] } | j | j |   q" Wd j |  S(   Ni   u    (   R   R  R
  R!  R  (   R   R   R  R   (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR!  e  s
    c         C   s:   g  } x$ |  j  D] } | j | |   q Wd j |  S(   Nu    (   R  R
  R  (   R   R   R  R   (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR   n  s    c         C   s;   t  |  x* |  j D] } | j | d | | |  q Wd  S(   NR  (   R  R  R  (   R   R  R  R"  R   R  R   (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR  t  s    
(   R   R   R   R!  R   R  (    (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR  _  s   				t   ASTOperatorc           B   s,   e  Z d    Z d   Z d   Z d   Z RS(   c         C   s   t  S(   N(   R   (   R   (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR{    s    c         C   s   t  S(   N(   R   (   R   (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyt   is_operator  s    c         C   s   t     d  S(   N(   R   (   R   R   (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR!    s    c         C   sU   t  |  t |   } | d k r; | t j | |  7} n | t j | |  7} d  S(   NR  (   R  R   R   R  t   desc_addname(   R   R  R  R"  R+  RN  R   RL  (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR    s
    
(   R   R   R{  R  R!  R  (    (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR  ~  s   			t   ASTOperatorBuildInc           B   s#   e  Z d    Z d   Z d   Z RS(   c         C   s   | |  _  d  S(   N(   R:  (   R   R:  (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR     s    c         C   sK   | d k r t  } n t } |  j | k r@ t d |  j   n  | |  j S(   Ni   sB   Internal error: Build-in operator "%s" can not be mapped to an id.(   t   _id_operator_v1R?  R:  R  (   R   R   t   ids(    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR!    s    	c         C   s)   |  j  d k r d |  j  Sd |  j  Sd  S(   NRN   s   new[]R:   s   delete[]u	   operator u   operator(   RN   s   new[]R:   s   delete[](   R:  (   R   R   (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR     s    (   R   R   R   R!  R   (    (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR    s   		t   ASTOperatorTypec           B   s,   e  Z d    Z d   Z d   Z d   Z RS(   c         C   s   | |  _  d  S(   N(   R   (   R   R   (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR     s    c         C   s8   | d k r  d |  j  j |  Sd |  j  j |  Sd  S(   Ni   u   castto-%s-operatoru   cv(   R   R!  (   R   R   (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR!    s    c         C   s   d j  d | |  j  g  S(   Nu    s	   operator (   R  R   (   R   R   (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR     s    c         C   s
   t  |   S(   N(   R   (   R   (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyt   get_name_no_template  s    (   R   R   R   R!  R   R  (    (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR    s   			t   ASTOperatorLiteralc           B   s#   e  Z d    Z d   Z d   Z RS(   c         C   s   | |  _  d  S(   N(   RL  (   R   RL  (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR     s    c         C   s0   | d k r t     n d |  j j |  Sd  S(   Ni   u   li(   R   RL  R!  (   R   R   (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR!    s    c         C   s   d | |  j   S(   Nu
   operator""(   RL  (   R   R   (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR     s    (   R   R   R   R!  R   (    (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR    s   		t   ASTTemplateArgConstantc           B   s,   e  Z d    Z d   Z d   Z d   Z RS(   c         C   s   | |  _  d  S(   N(   R   (   R   R   (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR     s    c         C   s   | |  j   S(   N(   R   (   R   R   (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR     s    c         C   sX   | d k r" t  |   j d d  S| d k r@ d t  |   d Sd |  j j |  d S(   Ni   u    u   -i   u   Xu   E(   R   t   replaceR   R!  (   R   R   (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR!    s
    c         C   s'   t  |  |  j j | | | |  d  S(   N(   R  R   R  (   R   R  R  R"  R   (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR    s    
(   R   R   R   R   R!  R  (    (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR    s   			t   ASTTemplateArgsc           B   s,   e  Z d    Z d   Z d   Z d   Z RS(   c         C   s   | d  k	 s t  | |  _ d  S(   N(   R   R   R  (   R   R  (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR     s    c            s     d k rb g  } | j  d  | j  d j   f d   |  j D   | j  d  d j |  Sg  } | j  d  x' |  j D] } | j  | j     q W| j  d  d j |  S(   Ni   t   :u   .c         3   s   |  ] } | j     Vq d  S(   N(   R!  (   R  R   (   R   (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pys	   <genexpr>  s    u    R  R]  (   R
  R  R  R!  (   R   R   R  R   (    (   R   s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR!    s    )c            s.   d j    f d   |  j D  } d | d S(   Ns   , c         3   s   |  ] }   |  Vq d  S(   N(    (   R  R   (   R   (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pys	   <genexpr>  s    R   R   (   R  R  (   R   R   R  (    (   R   s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR     s    "c         C   s   t  |  | t j d  7} t } xL |  j D]A } | sO | t j d  7} n  t } | j | d | d | q- W| t j d  7} d  S(   NR   s   , R  R   R   (   R  R   R  R   R  R   R  (   R   R  R  R"  R   R  R   (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR    s    
(   R   R   R   R!  R   R  (    (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR    s   			R  c           B   s5   e  Z d    Z d   Z d   Z d   Z d   Z RS(   c         C   s   | |  _  | |  _ d  S(   N(   R  RN  (   R   R  RN  (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR     s    	c         C   s   t  S(   N(   R   (   R   (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR    s    c         C   s8   |  j  j |  } |  j r4 | |  j j |  7} n  | S(   N(   R  R!  RN  (   R   R   R  (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR!    s    	c         C   s2   | |  j   } |  j r. | | |  j  7} n  | S(   N(   R  RN  (   R   R   R  (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR      s    	c         C   sr   |  j  d  k	 r t |  j   n d } |  j j | | | | | |  |  j  d  k	 rn |  j  j | | | |  n  d  S(   NR!   (   RN  R   R   R  R  (   R   R  R  R"  R+  R   t   tArgs(    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR  &  s    $(   R   R   R   R  R!  R   R  (    (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR    s
   				R  c           B   sG   e  Z d    Z e d    Z d   Z d d  Z d   Z d   Z RS(   c         C   s[   t  |  d k s t  | |  _ | |  _ t  |  j  t  |  j  k sN t  | |  _ d  S(   Ni    (   R/  R   R  R  RX  (   R   R  R  RX  (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR   /  s
    		$c         C   s   |  S(   N(    (   R   (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR  7  s    c         C   sF   d } x9 |  j  D]. } | j   r( q n  | j r | d 7} q q W| S(   Ni    i   (   R  R  RN  (   R   t   countt   n(    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyt   num_templates<  s    	R!   c            s    d k rO t  |   } | t k r, t | Sd j   f d   |  j D  Sn  g  } t |  j  d k s| t |  d k r | j d  n  | j |  x' |  j D] } | j | j     q Wt |  j  d k s t |  d k r | j d  n  d j |  S(   Ni   u   ::c         3   s   |  ] } | j     Vq d  S(   N(   R!  (   R  R  (   R   (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pys	   <genexpr>M  s    i    t   NR]  u    (   R   t   _id_shorthands_v1R  R  R/  R
  R!  (   R   R   t	   modifierst   ttR  R  (    (   R   s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR!  F  s    #''c         C   s   g  } |  j  r | j d  n  xj t t |  j   D]S } |  j | } |  j | } | ru | j d | |   q5 | j | |   q5 Wd j |  S(   NR!   s	   template s   ::(   RX  R
  RD  R/  R  R  R  (   R   R   R  R}   R  R   (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR   X  s    	c         C   s  t  |  | d k r2 | t j t |    7} n| d k rc t |   } | t j | |  7} nU| d k s{ | d k rg  } | d k r | d  k	 s t  | j j d  k	 r | j j j	 } q n  d } d } d }	 t
 }
 | d k r |  j d  n |  j } | } | d k r!t j   } n  x t t |   D] } | | } |  j	 | } |
 sw| t j d	  7} |	 d	 7}	 n  | r| t j d
  7} n  t }
 t |  } | d k r| j r| t |  k  r| t | |  7} | d 7} n  | j | d | | |	 |  n  |	 | 7}	 q4W| d k rt |  j  d k r_| t j d	 d	  7} | | 7} n  |  j	 d r| t j d
  7} n  |  j d j | | | d |  qn t d |   d  S(   NR  R  R  R  i    u    R!   is   ::s	   template i   s   Unknown description mode: %s(   R  R   R  R   t   emphasisR   R   R   t   templatePrefixR  R   R  R   R  RD  R/  R   RN  R  R  (   R   R  R  R"  R   R  R  t   iTemplateParamst   templateParamsPrefixR+  R  R  t   destR}   t   nneRe   t   txt_nne(    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR  e  sZ    
"
&(	   R   R   R   R  R  R  R!  R   R  (    (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR  .  s   		
	t   ASTTrailingTypeSpecFundamentalc           B   s,   e  Z d    Z d   Z d   Z d   Z RS(   c         C   s   | |  _  d  S(   N(   R  (   R   R  (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR     s    c         C   s   |  j  S(   N(   R  (   R   R   (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR     s    c         C   s   | d k ri g  } xG |  j  j d  D]3 } | t k rK | j t |  q% | j |  q% Wd j |  S|  j  t k r t d |  j    n  t |  j  S(   Ni   R@  u   -s   Semi-internal error: Fundamental type "%s" can not be mapped to an id. Is it a true fundamental type? If not so, the parser should have rejected it.(   R  t   splitt   _id_fundamental_v1R
  R  t   _id_fundamental_v2R  (   R   R   R  R   (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR!    s    c         C   s    | t  j t |  j   7} d  S(   N(   R   R  R   R  (   R   R  R  R"  R   (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR    s    (   R   R   R   R   R!  R  (    (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR    s   			t   ASTTrailingTypeSpecNamec           B   s;   e  Z d    Z e d    Z d   Z d   Z d   Z RS(   c         C   s   | |  _  | |  _ d  S(   N(   R+  t
   nestedName(   R   R+  R  (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR     s    	c         C   s   |  j  S(   N(   R  (   R   (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR    s    c         C   s   |  j  j |  S(   N(   R  R!  (   R   R   (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR!    s    c         C   sR   g  } |  j  r/ | j |  j   | j d  n  | j | |  j   d j |  S(   NR@  u    (   R+  R
  R  R  (   R   R   R  (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR     s    	c         C   s[   |  j  r; | t j |  j  |  j   7} | t j d  7} n  |  j j | | | d | d  S(   NR@  R   (   R+  R   t   desc_annotationR   R  R  R  (   R   R  R  R"  R   (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR    s    	(   R   R   R   R  R  R!  R   R  (    (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR    s
   			t   ASTTrailingTypeSpecDecltypeAutoc           B   s#   e  Z d    Z d   Z d   Z RS(   c         C   s   d S(   Nu   decltype(auto)(    (   R   R   (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR     s    c         C   s   | d k r t     n  d S(   Ni   R   (   R   (   R   R   (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR!    s    c         C   s    | j  t j t |     d  S(   N(   R
  R   R  R   (   R   R  R  R"  R   (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR    s    (   R   R   R   R!  R  (    (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR    s   		t   ASTTrailingTypeSpecDecltypec           B   s,   e  Z d    Z d   Z d   Z d   Z RS(   c         C   s   | |  _  d  S(   N(   R7  (   R   R7  (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR     s    c         C   s   d | |  j   d S(   Nu	   decltype(R  (   R7  (   R   R   (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR     s    c         C   s0   | d k r t     n  d |  j j |  d S(   Ni   t   DTR]  (   R   R7  R!  (   R   R   (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR!    s    c         C   sI   | j  t j d   |  j j | | | |  | j  t j d   d  S(   Ns	   decltype(R  (   R
  R   R  R7  R  (   R   R  R  R"  R   (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR    s    (   R   R   R   R   R!  R  (    (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR    s   			t   ASTFunctionParameterc           B   s5   e  Z e d   Z d d d  Z d   Z d   Z RS(   c         C   s   | |  _  | |  _ d  S(   N(   R	  t   ellipsis(   R   R	  R  (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR     s    	c         C   s@   | r | j  j j | d d  S|  j r, d S|  j j |  Sd  S(   NR  t   z(   R  R   R!  R   R  R	  (   R   R   R  R   (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR!  	  s
    	c         C   s   |  j  r d S| |  j  Sd  S(   Ns   ...(   R  R	  (   R   R   (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR   	  s    	c         C   sI   t  |  |  j r) | t j d  7} n |  j j | | | d | d  S(   Ns   ...R   (   R  R  R   R  R	  R  (   R   R  R  R"  R   (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR  	  s    
	N(   R   R   R   R   R   R!  R   R  (    (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR    s   	t   ASTParametersQualifiersc           B   sD   e  Z d    Z e d    Z d   Z d   Z d   Z d   Z RS(   c	   	      C   sL   | |  _  | |  _ | |  _ | |  _ | |  _ | |  _ | |  _ | |  _ d  S(   N(   R  Rs   R4   t   refQualt   exceptionSpect   overridet   finalt   initializer(	   R   R  Rs   R4   R  R  R  R  R  (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR    	  s    							c         C   s   |  j  S(   N(   R  (   R   (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyt   function_params,	  s    c         C   s   g  } |  j  r | j d  n  |  j rT | d k rD | j d  qT | j d  n  |  j d k rs | j d  n |  j d k r | j d  n  d	 j |  S(
   Nt   Vi   R|   t   Ks   &&t   OR   t   Ru    (   Rs   R
  R4   R  R  (   R   R   R  (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyt   get_modifiers_id1	  s    		c            s     d k rL t  |  j  d k r% d Sd d j   f d   |  j D  Sn  t  |  j  d k re d Sd j   f d	   |  j D  Sd  S(
   Ni   i    R!   u   __u   .c         3   s   |  ] } | j     Vq d  S(   N(   R!  (   R  R   (   R   (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pys	   <genexpr>G	  s    R   u    c         3   s   |  ] } | j     Vq d  S(   N(   R!  (   R  R   (   R   (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pys	   <genexpr>K	  s    (   R/  R  R  (   R   R   (    (   R   s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyt   get_param_idA	  s    'c         C   s[  g  } | j  d  t } x@ |  j D]5 } | s? | j  d  n  t } | j  t |   q# W| j  d  |  j r | j  d  n  |  j r | j  d  n  |  j r | j  d  | j  |  j  n  |  j r | j  d  | j  t |  j   n  |  j	 r| j  d  n  |  j
 r%| j  d  n  |  j rN| j  d	  | j  |  j  n  d
 j |  S(   NR  s   , R  s	    volatiles    constR@  s    finals	    overrides    = u    (   R
  R   R  R   R   Rs   R4   R  R  R  R  R  R  (   R   R   R  R  R   (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR   M	  s6    							c   
      C   su  t  |  t j   } xt |  j D]i } t j d d d t } | d k rf | j | d | d | n | j | d | d | | | 7} q  W| | 7} d   } d   }	 |  j r | | d	  n  |  j r | | d
  n  |  j	 r |	 | |  j	  n  |  j
 r| | t |  j
   n  |  j r2| | d  n  |  j rK| | d  n  |  j rq|	 | d t |  j   n  d  S(   NR!   t   noemphR  R  R   R  c         S   s-   |  t  j d  7}  |  t j | |  7}  d  S(   NR@  (   R   R  R   R  (   R  R  (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyt	   _add_annow	  s    c         S   s   |  t  j d |  7}  d  S(   NR@  (   R   R  (   R  R  (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyt	   _add_text{	  s    Rs   R4   R  R  s   = (   R  R   t   desc_parameterlistR  t   desc_parameterR   R  Rs   R4   R  R  R   R  R  R  (
   R   R  R  R"  R   t	   paramlistR	  R  R  R  (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR  j	  s2    

									(	   R   R   R   R  R  R  R  R   R  (    (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR  	  s   				t   ASTDeclSpecsSimplec           B   s,   e  Z d    Z d   Z d   Z d   Z RS(   c         C   s^   | |  _  | |  _ | |  _ | |  _ | |  _ | |  _ | |  _ | |  _ |	 |  _ |
 |  _	 d  S(   N(
   t   storaget   threadLocalRI   Rq   R@   R5   Rs   R4   RF   R  (   R   R  R  RI   Rq   R@   R5   Rs   R4   RF   R  (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR   	  s    									c         C   s   | s
 |  St  |  j p | j |  j p+ | j |  j p: | j |  j pI | j |  j pX | j |  j pg | j |  j pv | j |  j p | j |  j	 p | j	 |  j
 | j
 
 S(   N(   R  R  R  RI   Rq   R@   R5   Rs   R4   RF   R  (   R   R   (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyt	   mergeWith	  s    c            s  g  } | j    f d   |  j D  |  j rB | j |  j  n  |  j r[ | j d  n  |  j rt | j d  n  |  j r | j d  n  |  j r | j d  n  |  j r | j d  n  |  j	 r | j d  n  |  j
 r | j d  n  |  j r
| j d	  n  d
 j |  S(   Nc         3   s   |  ] }   |  Vq d  S(   N(    (   R  R  (   R   (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pys	   <genexpr>	  s    Rg   RI   RF   Rq   R@   R5   Rs   R4   u    (   t   extendR  R  R
  R  RI   RF   Rq   R@   R5   Rs   R4   R  (   R   R   R  (    (   R   s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR   	  s*     									c         C   sF  d   } xR |  j  D]G } t |  d k rD | j t j d   n  | j | j |   q W|  j rz | | |  j  n  |  j r | | d  n  |  j r | | d  n  |  j	 r | | d  n  |  j
 r | | d  n  |  j r | | d  n  |  j r| | d	  n  |  j r)| | d
  n  |  j rB| | d  n  d  S(   Nc         S   sH   t  |   d k r+ |  j t j d   n  |  j t j | |   d  S(   Ni    R@  (   R/  R
  R   R  R   R  (   R  R  (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyt   _add	  s    i    R@  Rg   RI   RF   Rq   R@   R5   Rs   R4   (   R  R/  R
  R   R  R  R  R  RI   RF   Rq   R@   R5   Rs   R4   (   R   R  R  R  (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR  	  s.    										(   R   R   R   R  R   R  (    (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR  	  s   			t   ASTDeclSpecsc           B   s;   e  Z d    Z e d    Z d   Z d   Z d   Z RS(   c         C   s@   | |  _  | |  _ | |  _ |  j j |  j  |  _ | |  _ d  S(   N(   t   outert	   leftSpecst
   rightSpecsR  t   allSpecst   trailingTypeSpec(   R   R  R  R  t   trailing(    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR   	  s
    			c         C   s
   |  j  j S(   N(   R  R  (   R   (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR  	  s    c         C   s   | d k rp g  } | j  |  j j |   |  j j rG | j  d  n  |  j j rc | j  d  n  d j |  Sg  } |  j j r | j  d  n  |  j j r | j  d  n  |  j d  k	 r | j  |  j j |   n  d j |  S(   Ni   R  R|   u    R  (   R
  R  R!  R  Rs   R4   R  R   (   R   R   R  (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR!  	  s     c         C   s   g  } | |  j   } t |  d k rY t |  d k rI | j d  n  | j |  n  |  j r t |  d k r | j d  n  | j | |  j   t |  j  } t |  d k r t |  d k r | j d  n  | j |  q n  d j |  S(   Ni    R@  R!   (   R  R/  R
  R  R   R  R  (   R   R   R  R   t   r(    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR   
  s     	c         C   s   t  |  g  } d   } |  j j |  x | D] } | | 7} q0 W|  j r t |  d k ru | t j d  7} n  |  j j | | | d | g  } |  j j |  t |  d k r | t j d  7} n  x | D] } | | 7} q Wn  d  S(   Nc         S   sH   t  |   d k r+ |  j t j d   n  |  j t j | |   d  S(   Ni    R@  (   R/  R
  R   R  R   R  (   R  R  (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR  
  s    i    R@  R   (   R  R  R  R  R/  R   R  R  (   R   R  R  R"  R   R  R  R   (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR  
  s"    
		(   R   R   R   R  R  R!  R   R  (    (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR  	  s
   				t   ASTArrayc           B   s,   e  Z d    Z d   Z d   Z d   Z RS(   c         C   s   | |  _  d  S(   N(   t   size(   R   R  (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR   1
  s    c         C   s&   |  j  r d | |  j   d Sd Sd  S(   Nu   [Rk  u   [](   R  (   R   R   (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR   4
  s    	c         C   sj   | d k r d S| d k rA |  j  r: d t |  j   d Sd Sn  |  j  rb d |  j  j |  d Sd Sd  S(   Ni   u   Ai   u   _u   A_(   R  R   R!  (   R   R   (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR!  :
  s    		c         C   s_   t  |  | j t j d   |  j rE |  j j | | | |  n  | j t j d   d  S(   NRl  Rk  (   R  R
  R   R  R  R  (   R   R  R  R"  R   (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR  H
  s
    
	(   R   R   R   R   R!  R  (    (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR   0
  s   			t   ASTDeclaratorPtrc           B   sw   e  Z d    Z e d    Z e d    Z d   Z d   Z d   Z d   Z	 d   Z
 d   Z d	   Z d
   Z RS(   c         C   s4   | s t   | |  _ | |  _ | |  _ | |  _ d  S(   N(   R   t   nextRs   R4   R  (   R   R  Rs   R4   R  (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR   Q
  s
    			c         C   s
   |  j  j S(   N(   R  R  (   R   (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR  Y
  s    c         C   s
   |  j  j S(   N(   R  R  (   R   (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR  ^
  s    c         C   s   t  S(   N(   R   (   R   (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyt   require_space_after_declSpecsc
  s    c         C   s  d g } x$ |  j  D] } | j | |   q Wt |  j   d k rg |  j sW |  j rg | j d  n  |  j r | j d  n  |  j r |  j r | j d  n  | j d  n  |  j s |  j s t |  j   d k r |  j j r | j d  q n  | j | |  j   d j |  S(   NR   i    R@  Rs   R4   u    (   R  R
  R/  Rs   R4   R  R  R  (   R   R   R  R   (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR   h
  s     	'			'c         C   s   |  j  j |  S(   N(   R  R  (   R   R   (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR  z
  s    c         C   s   |  j  j |  S(   N(   R  R  (   R   R   (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR  ~
  s    c         C   s   | d k rm d g } |  j  r. | j d  n  |  j rG | j d  n  | j |  j j |   d j |  S|  j j |  g } | j d  |  j  r | j d  n  |  j r | j d  n  d j |  S(   Ni   t   PR  R|   u    (   Rs   R
  R4   R  t   get_ptr_suffix_idR  (   R   R   R  (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR  
  s    					c         C   sg   d g } |  j  r" | j d  n  |  j r; | j d  n  | j |  |  j j | d d j |  S(   NR  R  R|   t   returnTypeIdu    (   Rs   R
  R4   R  t   get_type_idR  (   R   R   R  R  (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR  
  s    			c         C   s   |  j  j   S(   N(   R  t   is_function_type(   R   (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR	  
  s    c         C   s>  t  |  | t j d  7} x |  j D] } | j |  q' Wt |  j  d k r{ |  j se |  j r{ | t j d  7} n  d   } |  j r | | d  n  |  j r |  j r | t j d  7} n  | | d  n  |  j s |  j s t |  j  d k r!|  j j	 r!| t j d  7} q!n  |  j j | | | |  d  S(   NR   i    R@  c         S   s   |  t  j | |  7}  d  S(   N(   R   R  (   R  R  (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR  
  s    Rs   R4   (
   R  R   R  R  R  R/  Rs   R4   R  R  (   R   R  R  R"  R   R   R  (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR  
  s"    
'				'(   R   R   R   R  R  R  R  R   R  R  R  R  R	  R  (    (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR  P
  s   								t   ASTDeclaratorRefc           B   s   e  Z d    Z e d    Z e d    Z e d    Z d   Z d   Z d   Z	 d   Z
 d   Z d	   Z d
   Z d   Z RS(   c         C   s"   | s t   | |  _ | |  _ d  S(   N(   R   R  R  (   R   R  R  (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR   
  s    	c         C   s
   |  j  j S(   N(   R  R  (   R   (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR  
  s    c         C   s   t  S(   N(   R   (   R   (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR  
  s    c         C   s
   |  j  j S(   N(   R  R  (   R   (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR  
  s    c         C   s   |  j  j   S(   N(   R  R  (   R   (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR  
  s    c         C   s   d g } x$ |  j  D] } | j | |   q Wt |  j   d k ra |  j j ra | j d  n  | j | |  j   d j |  S(   NR   i    R@  u    (   R  R
  R/  R  R  R  (   R   R   R  R   (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR   
  s    	!c         C   s   |  j  j |  S(   N(   R  R  (   R   R   (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR  
  s    c         C   s   |  j  j |  S(   N(   R  R  (   R   R   (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR  
  s    c         C   s8   | d k r  d |  j  j |  S|  j  j |  d Sd  S(   Ni   u   R(   R  R  (   R   R   (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR  
  s    c         C   s,   | d k s t   |  j j | d d | S(   Ni   R  u   R(   R   R  R  (   R   R   R  (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR  
  s    c         C   s   |  j  j   S(   N(   R  R	  (   R   (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR	  
  s    c         C   s   t  |  | t j d  7} x |  j D] } | j |  q' Wt |  j  d k ru |  j j ru | t j d  7} n  |  j j | | | |  d  S(   NR   i    R@  (   R  R   R  R  R  R/  R  R  (   R   R  R  R"  R   R   (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR  
  s    
!(   R   R   R   R  R  R  R  R  R   R  R  R  R  R	  R  (    (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR
  
  s   									t   ASTDeclaratorParamPackc           B   sw   e  Z d    Z e d    Z e d    Z d   Z d   Z d   Z d   Z	 d   Z
 d   Z d	   Z d
   Z RS(   c         C   s   | s t   | |  _ d  S(   N(   R   R  (   R   R  (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR     s    c         C   s
   |  j  j S(   N(   R  R  (   R   (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR    s    c         C   s
   |  j  j S(   N(   R  R  (   R   (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR    s    c         C   s   t  S(   N(   R   (   R   (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR    s    c         C   s0   | |  j   } |  j  j r( d | } n  d | S(   NR@  s   ...(   R  R  (   R   R   R  (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR     s    c         C   s   |  j  j |  S(   N(   R  R  (   R   R   (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR    s    c         C   s   |  j  j |  S(   N(   R  R  (   R   R   (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR    s    c         C   s8   | d k r  d |  j  j |  S|  j  j |  d Sd  S(   Ni   R  u   Dp(   R  R  (   R   R   (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR  #  s    c         C   s,   | d k s t   |  j j | d d | S(   Ni   R  u   Dp(   R   R  R  (   R   R   R  (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR  *  s    c         C   s   |  j  j   S(   N(   R  R	  (   R   (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR	  0  s    c         C   s\   t  |  | t j d  7} |  j j r? | t j d  7} n  |  j j | | | |  d  S(   Ns   ...R@  (   R  R   R  R  R  R  (   R   R  R  R"  R   (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR  4  s
    
(   R   R   R   R  R  R  R  R   R  R  R  R  R	  R  (    (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR    s   								t   ASTDeclaratorMemPtrc           B   sw   e  Z d    Z e d    Z e d    Z d   Z d   Z d   Z d   Z	 d   Z
 d   Z d	   Z d
   Z RS(   c         C   s@   | s t   | s t   | |  _ | |  _ | |  _ | |  _ d  S(   N(   R   t	   classNameR4   Rs   R  (   R   R  R4   Rs   R  (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR   >  s    			c         C   s
   |  j  j S(   N(   R  R  (   R   (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR  G  s    c         C   s
   |  j  j S(   N(   R  R  (   R   (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR  L  s    c         C   s   t  S(   N(   R   (   R   (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR  Q  s    c         C   s   g  } | j  | |  j   | j  d  |  j rB | j  d  n  |  j r[ | j  d  n  |  j j   rz | j  d  n  | j  | |  j   d j |  S(   Ns   ::*s	    volatiles    constR@  R!   (   R
  R  Rs   R4   R  R  R  (   R   R   R  (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR   U  s    		c         C   s,   | d k r t     n |  j j |  Sd  S(   Ni   (   R   R  R  (   R   R   (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR  b  s    c         C   s,   | d k r t     n |  j j |  Sd  S(   Ni   (   R   R  R  (   R   R   (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR  i  s    c         C   s9   | d k r t     n t    |  j j |  d Sd  S(   Ni   u   Dp(   R   R   R  R  (   R   R   (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR  p  s    	c         C   s   | d k s t   d } |  j r. | d 7} n  |  j rD | d 7} n  | d 7} | |  j j |  7} | | 7} |  j j | |  S(   Ni   R!   R  R  t   M(   R   Rs   R4   R  R!  R  R  (   R   R   R  t   nextReturnTypeId(    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR  x  s    		

c         C   s   |  j  j   S(   N(   R  R	  (   R   (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR	    s    c         C   s   t  |  |  j j | | | |  | t j d  7} d   } |  j rX | | d  n  |  j r |  j r | t j d  7} n  | | d  n  |  j j   r |  j s |  j r | t j d  7} q n  |  j j | | | |  d  S(   Ns   ::*c         S   s   |  t  j | |  7}  d  S(   N(   R   R  (   R  R  (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR    s    Rs   R@  R4   (	   R  R  R  R   R  Rs   R4   R  R  (   R   R  R  R"  R   R  (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR    s    
				(   R   R   R   R  R  R  R  R   R  R  R  R  R	  R  (    (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR  =  s   									t   ASTDeclaratorParenc           B   sw   e  Z d    Z e d    Z e d    Z d   Z d   Z d   Z d   Z	 d   Z
 d   Z d	   Z d
   Z RS(   c         C   s.   | s t   | s t   | |  _ | |  _ d  S(   N(   R   t   innerR  (   R   R  R  (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR     s    	c         C   s
   |  j  j S(   N(   R  R  (   R   (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR    s    c         C   s
   |  j  j S(   N(   R  R  (   R   (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR    s    c         C   s   t  S(   N(   R   (   R   (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR    s    c         C   sO   d g } | j  | |  j   | j  d  | j  | |  j   d j |  S(   NR  R  R!   (   R
  R  R  R  (   R   R   R  (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR     s
    	c         C   s   |  j  j |  S(   N(   R  R  (   R   R   (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR    s    c         C   s   |  j  j |  S(   N(   R  R  (   R   R   (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR    s    c         C   sY   | d k r5 t     |  j j |  |  j j |  S|  j j |  |  j j |  Sd  S(   Ni   (   R   R  R  R  (   R   R   (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR    s    	c         C   s=   | d k s t   |  j j | |  } |  j j | d | S(   Ni   R  (   R   R  R  R  (   R   R   R  t   nextId(    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR    s    c         C   s   |  j  j   S(   N(   R  R	  (   R   (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR	    s    c         C   sf   t  |  | t j d  7} |  j j | | | |  | t j d  7} |  j j | d | |  d  S(   NR  R  R  (   R  R   R  R  R  R  (   R   R  R  R"  R   (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR    s
    
(   R   R   R   R  R  R  R  R   R  R  R  R  R	  R  (    (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR    s   						
		t   ASTDeclaratorNameParamQualc           B   s   e  Z d    Z e d    Z e d    Z e d    Z d   Z d   Z d   Z	 d   Z
 d   Z d	   Z d
   Z d   Z RS(   c         C   s   | |  _  | |  _ | |  _ d  S(   N(   t   declIdt   arrayOpst	   paramQual(   R   R  R  R  (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR     s    		c         C   s   |  j  S(   N(   R  (   R   (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR    s    c         C   s   t  S(   N(   R   (   R   (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR    s    c         C   s
   |  j  j S(   N(   R  R  (   R   (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR    s    c         C   s3   |  j  r |  j  j |  St d t |     d  S(   Ns,   This should only be called on a function: %s(   R  R  R  R   (   R   R   (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR    s    	c         C   s!   |  j  r |  j  j |  Sd Sd  S(   NR!   (   R  R  (   R   R   (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR    s    	c            s    d j    f d   |  j D  S(   Nu    c         3   s   |  ] } | j     Vq d  S(   N(   R!  (   R  R   (   R   (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pys	   <genexpr>  s    (   R  R  (   R   R   (    (   R   s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR    s    c         C   s   | d k s t   g  } | j |  j |   |  j r | j |  j |   | j d  | j |  | j |  j |   | j d  n | j |  d j |  S(   Ni   t   FR]  u    (   R   R
  R  R  R  R  R  (   R   R   R  R  (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR  
  s    	c         C   s   |  j  d  k	 S(   N(   R  R   (   R   (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR    s    c         C   s   |  j  d  k	 S(   N(   R  R   (   R   (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR	     s    c         C   s~   g  } |  j  r( | j | |  j    n  x$ |  j D] } | j | |   q2 W|  j rq | j | |  j   n  d j |  S(   Nu    (   R  R
  R  R  R  (   R   R   R  R:  (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR   $  s    		c         C   s   t  |  |  j r/ |  j j | | | |  n  x' |  j D] } | j | | | |  q9 W|  j r~ |  j j | | | |  n  d  S(   N(   R  R  R  R  R  (   R   R  R  R"  R   R:  (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR  .  s    
		(   R   R   R   R  R  R  R  R  R  R  R  R  R	  R   R  (    (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR    s   								
t   ASTInitializerc           B   s#   e  Z d    Z d   Z d   Z RS(   c         C   s   | |  _  d  S(   N(   R   (   R   R   (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR   :  s    c         C   s   d | |  j   S(   Nu    = (   R   (   R   R   (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR   =  s    c         C   s=   t  |  | j t j d   |  j j | d | |  d  S(   Ns    = R  (   R  R
  R   R  R   R  (   R   R  R  R"  R   (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR  @  s    
(   R   R   R   R   R  (    (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR  9  s   		t   ASTTypec           B   sh   e  Z d    Z e d    Z e d    Z e d    Z d d d  Z d   Z	 d   Z
 d   Z RS(	   c         C   s.   | s t   | s t   | |  _ | |  _ d  S(   N(   R   t	   declSpecst   decl(   R   R  R  (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR   H  s    	c         C   s
   |  j  j S(   N(   R  R  (   R   (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR  O  s    c         C   s
   |  j  j S(   N(   R  R  (   R   (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR  T  s    c         C   s
   |  j  j S(   N(   R  R  (   R   (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR  X  s    c   	      C   s  | d k rag  } | r | d k r | j  | j   j |   | j  |  j j |   | j  |  j j |   |  j j j s |  j j	 r |  j j	 j r | j  d  q qT| d k r | j  | j   j |   qT| GHt
 sTt  nf |  j j   r	t    n  | j  |  j j |   | j  |  j j |   | j  |  j j |   d j |  Sg  } | rm| d k r.|  j j |  } | j  | j   j | |   | d k r| j j } | d  k	 r|  j j |  } |  j j |  } | j  |  | j  |  qn  | j  |  j j |   q| d k rY| j  | j   j |   q| GHt
 st  n4 |  j j |  } |  j j | |  } | j  |  d j |  S(   Ni   t   functiont   CER   u    i   (   R
  t   get_full_nested_nameR!  R  R  R  R  R  R5   R  R   R   R	  R   R  R  R   R  R   R  (	   R   R   R  R   R  R  t   templt   typeIdR  (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR!  ]  sT    c         C   sv   g  } | |  j   } | j |  |  j j   rS t |  d k rS | j d  n  | j | |  j   d j |  S(   Ni    u    u    (   R  R
  R  R  R/  R  (   R   R   R  R  (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR     s    !c         C   s   |  j  j r d Sd Sd  S(   NRk   R   (   R  R  (   R   (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyt   get_type_declaration_prefix  s    c         C   s   t  |  |  j j | d | |  |  j j   rc t t |  j   d k rc | t j d  7} n  | d k rx d } n  |  j j | | | |  d  S(   NR  i    R@  R  (	   R  R  R  R  R  R/  R   R   R  (   R   R  R  R"  R   (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR    s    
	N(   R   R   R   R  R  R  R  R   R!  R   R!  R  (    (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR  G  s   	5			t   ASTTypeWithInitc           B   sP   e  Z d    Z e d    Z e d    Z d d d  Z d   Z d   Z	 RS(   c         C   s   | |  _  | |  _ d  S(   N(   R   R  (   R   R   R  (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR     s    	c         C   s
   |  j  j S(   N(   R   R  (   R   (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR    s    c         C   s
   |  j  j S(   N(   R   R  (   R   (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR    s    c         C   se   | d k r |  j  j | |  S| d k rR | j   j |  d |  j  j |  S| j   j |  S(   Nt   memberi   u   __(   R   R!  R  (   R   R   R  R   (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR!    s
    'c         C   sK   g  } | j  | |  j   |  j r> | j  | |  j   n  d j |  S(   Nu    (   R
  R   R  R  (   R   R   R  (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR     s
    	c         C   sL   t  |  |  j j | | | |  |  j rH |  j j | | | |  n  d  S(   N(   R  R   R  R  (   R   R  R  R"  R   (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR    s    
	N(
   R   R   R   R  R  R  R   R!  R   R  (    (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR"    s   			t   ASTTypeUsingc           B   s;   e  Z d    Z d d d  Z d   Z d   Z d   Z RS(   c         C   s   | |  _  | |  _ d  S(   N(   R  R   (   R   R  R   (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR     s    	c         C   s+   | d k r t     n  | j   j |  S(   Ni   (   R   R  R!  (   R   R   R  R   (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR!    s    c         C   sX   g  } | j  | |  j   |  j rK | j  d  | j  | |  j   n  d j |  S(   Ns    = u    (   R
  R  R   R  (   R   R   R  (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR     s    	c         C   s   d S(   NRp   (    (   R   (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR!    s    c         C   se   t  |  |  j j | | | d | |  j ra | t j d  7} |  j j | d | d | n  d  S(   NR   s    = R  (   R  R  R  R   R   R  (   R   R  R  R"  R   (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR    s
    
	N(   R   R   R   R   R!  R   R!  R  (    (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR$    s
   			t
   ASTConceptc           B   sA   e  Z d    Z e d    Z d d d  Z d   Z d   Z RS(   c         C   s   | |  _  | |  _ d  S(   N(   R  R  (   R   R  R  (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR     s    	c         C   s   |  j  S(   N(   R  (   R   (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR    s    c         C   s+   | d k r t     n  | j   j |  S(   Ni   (   R   R  R!  (   R   R   R  R   (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR!    s    c         C   s2   | |  j   } |  j r. | | |  j  7} n  | S(   N(   R  R  (   R   R   R  (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR   	  s    	c         C   sB   |  j  j | | | |  |  j r> |  j j | | | |  n  d  S(   N(   R  R  R  (   R   R  R  R"  R   (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR    s    	N(	   R   R   R   R  R  R   R!  R   R  (    (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR%    s
   		t   ASTBaseClassc           B   s#   e  Z d    Z d   Z d   Z RS(   c         C   s(   | |  _  | |  _ | |  _ | |  _ d  S(   N(   R  t
   visibilityRq   t   pack(   R   R  R'  Rq   R(  (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR     s    			c         C   s   g  } |  j  d k r5 | j |  j   | j d  n  |  j rN | j d  n  | j | |  j   |  j r} | j d  n  d j |  S(   NRV   R@  s   virtual s   ...u    (   R'  R
  Rq   R  R(  R  (   R   R   R  (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR     s    		c         C   s   t  |  |  j d k rK | t j |  j |  j  7} | t j d  7} n  |  j r | t j d d  7} | t j d  7} n  |  j j | d | d | |  j	 r | t j d  7} n  d  S(   NRV   R@  Rq   R  R   s   ...(
   R  R'  R   R  R   R  Rq   R  R  R(  (   R   R  R  R"  R   (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR  *  s    
		(   R   R   R   R   R  (    (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR&    s   		t   ASTClassc           B   s,   e  Z d    Z d   Z d   Z d   Z RS(   c         C   s   | |  _  | |  _ | |  _ d  S(   N(   R  R  t   bases(   R   R  R  R*  (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR   :  s    		c         C   s   | j    j |  S(   N(   R  R!  (   R   R   R  R   (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR!  @  s    c         C   s   g  } | j  | |  j   |  j r5 | j  d  n  t |  j  d k r | j  d  t } xC |  j D]5 } | s | j  d  n  t } | j  | |   qg Wn  d j |  S(   Ns    finali    s    : s   , u    (   R
  R  R  R/  R*  R   R   R  (   R   R   R  R  R   (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR   D  s    	c         C   s   t  |  |  j j | | | d | |  j r[ | t j d  7} | t j d d  7} n  t |  j	  d k r | t j d  7} x= |  j	 D]2 } | j | | | d | | t j d  7} q W| j
   n  d  S(   NR   R@  R  i    s    : s   , (   R  R  R  R  R   R  R   R  R/  R*  t   pop(   R   R  R  R"  R   R   (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR  S  s    
	(   R   R   R   R!  R   R  (    (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR)  9  s   			t   ASTUnionc           B   s,   e  Z d    Z d   Z d   Z d   Z RS(   c         C   s   | |  _  d  S(   N(   R  (   R   R  (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR   c  s    c         C   s+   | d k r t     n  | j   j |  S(   Ni   (   R   R  R!  (   R   R   R  R   (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR!  g  s    c         C   s   | |  j   S(   N(   R  (   R   R   (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR   m  s    c         C   s*   t  |  |  j j | | | d | d  S(   NR   (   R  R  R  (   R   R  R  R"  R   (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR  p  s    
(   R   R   R   R!  R   R  (    (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR,  b  s   			t   ASTEnumc           B   s,   e  Z d    Z d   Z d   Z d   Z RS(   c         C   s   | |  _  | |  _ | |  _ d  S(   N(   R  t   scopedt   underlyingType(   R   R  R.  R/  (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR   w  s    		c         C   s+   | d k r t     n  | j   j |  S(   Ni   (   R   R  R!  (   R   R   R  R   (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR!  }  s    c         C   s   g  } |  j  r/ | j |  j   | j d  n  | j | |  j   |  j rt | j d  | j | |  j   n  d j |  S(   NR@  s    : u    (   R.  R
  R  R/  R  (   R   R   R  (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR     s    		c         C   se   t  |  |  j j | | | d | |  j ra | t j d  7} |  j j | d | d | n  d  S(   NR   s    : R  (   R  R  R  R/  R   R  (   R   R  R  R"  R   (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR    s    
	(   R   R   R   R!  R   R  (    (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR-  v  s   			t   ASTEnumeratorc           B   s,   e  Z d    Z d   Z d   Z d   Z RS(   c         C   s   | |  _  | |  _ d  S(   N(   R  R  (   R   R  R  (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR     s    	c         C   s+   | d k r t     n  | j   j |  S(   Ni   (   R   R  R!  (   R   R   R  R   (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR!    s    c         C   sK   g  } | j  | |  j   |  j r> | j  | |  j   n  d j |  S(   Nu    (   R
  R  R  R  (   R   R   R  (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR     s
    	c         C   sL   t  |  |  j j | | | |  |  j rH |  j j | d | |  n  d  S(   NR  (   R  R  R  R  (   R   R  R  R"  R   (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR    s    
	(   R   R   R   R!  R   R  (    (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR0    s   			t   ASTDeclarationc           B   s_   e  Z d    Z d   Z e d    Z e d    Z e d  Z d   Z	 d   Z
 d   Z RS(   c         C   s:   | |  _  | |  _ | |  _ | |  _ d  |  _ d  |  _ d  S(   N(   R  R'  R  R   R   R   t   enumeratorScopedSymbol(   R   R  R'  R  R   (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR     s    					c         C   sC   |  j  r |  j  j   } n d  } t |  j |  j | |  j j    S(   N(   R  R   R   R1  R  R'  R   (   R   t   templatePrefixClone(    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR     s    	c         C   s
   |  j  j S(   N(   R   R  (   R   (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR    s    c         C   s   |  j  d k r d  S|  j j S(   NR  (   R  R   R   R  (   R   (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR    s    c         C   s	  | d k rh |  j  r! t    n  |  j d k rL |  j rL |  j j j |  S|  j j | |  j |  j  S|  j d k r |  j r |  j j j | |  S| r t | g } n g  } |  j  r | j |  j  j |   n  | j |  j j | |  j |  j   d j	 |  S(   Ni   t
   enumeratoru    (
   R  R   R  R2  R   R!  R   t
   _id_prefixR
  R  (   R   R   R  R  (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR!    s    		%c         C   s   |  j  t t  S(   N(   R!  t   _max_idR   (   R   (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyt   get_newest_id  s    c         C   s   g  } |  j  r> |  j  d k r> | j |  j   | j d  n  |  j r` | j | |  j   n  | j | |  j   d j |  S(   NRX   u    u    (   R'  R
  R  R   R  (   R   R   R  (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR     s    	c      	   C   sN  t  |  |  j s t  t | d <t j   } d | _ |  j j | d <|  j r |  j j	 | | | d |  j d | j
 d  n  | | 7} |  j r |  j d k r | t j |  j d |  j d  7} n  |  j d	 k r|  j j   } | d 7} | t j | |  7} n!|  j d
 k r5| t j d d  7} n |  j d k rGn |  j d k rYn |  j d k r| t j d d  7} n |  j d k r| t j d d  7} n |  j d k rd } |  j r| |  j 7} | d 7} n  | t j | |  7} n4 |  j d k r"| t j d d  7} n t s.t  |  j j	 | | | |  j  d  S(   Nt   is_multilinet
   declaratort   add_permalinkR   R  s   tparam-line-specRX   R@  R   R3   s   concept R#  R  R1   s   class Rn   s   union R?   s   enum R4  s   enumerator (   R  R   R   R   R   R  R  t   isRedeclarationR  R  t   getR'  R  R  R   R!  R.  R   (   R   R  R  R"  t   optionst   mainDeclNodeR+  (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR    sL    

			

	(   R   R   R   R   R  R  R  R   R!  R7  R   R  (    (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR1    s   		
		
t   ASTNamespacec           B   s   e  Z d    Z RS(   c         C   s   | |  _  | |  _ d  S(   N(   R  R  (   R   R  R  (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR   (  s    	(   R   R   R   (    (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR?  '  s   t   SymbolLookupResultc           B   s   e  Z d    Z RS(   c         C   s1   | |  _  | |  _ | |  _ | |  _ | |  _ d  S(   N(   t   symbolst   parentSymbolR  R  RN  (   R   RA  RB  R  R  RN  (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR   /  s
    				(   R   R   R   (    (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR@  .  s   t   Symbolc           B   s   e  Z e Z e Z d    Z d   Z d   Z d   Z d   Z	 d   Z
 d   Z d   Z e d    Z d	   Z d
   Z d   Z d   Z d   Z d   Z d   Z d d  Z d   Z d   Z d   Z d   Z d   Z d   Z d   Z RS(   c         C   s{   |  j  s\ |  j s t  |  j s) t  |  j s9 t  |  j sI t  |  j sw t  n |  j rw |  j sw t  n  d  S(   N(   R  R  R   R  RN  R   t   docname(   R   (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyt   _assert_invariants<  s    		c         C   s2   | d k r t  s. t  n t j |  | |  Sd  S(   Nt   children(   R   R   t   objectt   __setattr__(   R   R   R   (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyRH  I  s    c         C   s   | |  _  | |  _ | |  _ | |  _ | |  _ | |  _ t |  _ |  j   g  |  _	 g  |  _
 |  j  rz |  j  j	 j |   n  |  j r |  |  j _ n  |  j   d  S(   N(   R  R  R  RN  R   RD  R   R;  RE  t	   _childrent   _anonChildrenR
  R   t!   _add_template_and_function_params(   R   R  R  R  RN  R   RD  (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR   O  s    								
				c         C   sx   |  j    |  j s t  |  j s* t  | s6 t  | sB t  | |  _ |  |  j _ | |  _ |  j    |  j   d  S(   N(   RE  R   R   RD  R   RK  (   R   R   RD  (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyt   _fill_emptym  s    
		
c         C   sp  |  j  r x |  j  j D] } | j   s. q n  |  j rO t d d  d  |  } n d  } t | j   d   } t | g t g d t } |  j	 | g  | |  j
  q Wn  |  j d  k	 rl|  j j d  k	 rlx |  j j D] } | j d  k r q n  | j j } | d  k rq n  t d d  d  |  } | j s1t  t | j  d k sLt  |  j	 | g  | |  j
  q Wn  d  S(   Nt   templateParamRX  t   functionParami   (   R  R  R  R   R1  R   R  R  R   t   _add_symbolsRD  R  R	  R  RX  R   R/  R  (   R   Ru  R  R  t   nn(    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyRK  {  s*    		 !c         C   sK   |  j  d  k r d  S|  |  j  j k s+ t  |  j  j j |   d  |  _  d  S(   N(   R  R   RI  R   t   remove(   R   (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyRQ    s
    c         C   sn   g  } xX |  j  D]M } | j |  | j rP | j | k rP d  | _ d  | _ n  | j |  q W| |  _  d  S(   N(   RI  t	   clear_docR   RD  R   R
  (   R   RD  t   newChildrent   sChild(    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyRR    s    	c         c   s9   |  Vx- |  j  D]" } x | j   D] } | Vq" Wq Wd  S(   N(   RI  t   get_all_symbols(   R   RT  R   (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyRU    s    c         c   sK   xD |  j  D]9 } | V| j j   s* q
 n  x | j D] } | Vq4 Wq
 Wd  S(   N(   RI  R  R{  t   children_recurse_anon(   R   R{   t   nested(    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyRV    s    c         C   s   g  } |  } x# | j  r1 | j |  | j  } q W| j   g  } x9 | D]1 } t | j | j  } | j | | j f  qI W| S(   N(   R  R
  t   reverseR  R  RN  R  (   R   RA  R   R   R  (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR    s    
c         C   sV   g  } g  } x4 |  j    D]& \ } } | j |  | j t  q Wt | | d t S(   NRX  (   R  R
  R   R  (   R   R  R  R  R  (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR    s    c   	      C   sH   |  j  | | | | | | |  } y t |  SWn t k
 rC d  SXd  S(   N(   t   _find_named_symbolsR  t   StopIterationR   (	   R   R  R  RN  t   templateShorthandt	   matchSelft   recurseInAnont   correctPrimaryTemplateArgsR  (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyt   _find_first_named_symbol  s    		c         #   s     f d   } | rH  d  k	 rH  d  k	 rH |   sE d   qE qH n       f d   }	 | rz |	 |   rz |  Vn  | r |  j n |  j }
 x" |
 D] } |	 |  r | Vq q Wd  S(   Nc             s   t   j  t    j  k r" t St   j  d k r; t Sx t t   j   D] }   j |  }   j |  } t | j  } t |  } | j d  } | j | k r t S| r | d  n | } | | k rQ t SqQ Wt	 S(   Ni    s   ...i(
   R/  R  R  R   RD  R   R  t   endswithR  R   (   R}   R  R	  t	   paramNamet   argTxtt   isArgPackExpansiont   argName(   RN  R  (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyt   isSpecialization  s     c            s   |  j    k r t S|  j d  k  d  k k rK  d  k	 r> t S sK t Sn   rs t |  j  t   k rs t Sn  |  j d  k  d  k k r t S|  j r t |  j  t   k r t Sn  t S(   N(   R  R   R  R   R   RN  R   (   R   (   R  RN  R  R[  (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyt   matches  s     	(   R   RV  RI  (   R   R  R  RN  R[  R\  R]  R^  Re  Rf  RF  R   (    (   R  RN  R  R[  s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyRY    s    	c
         C   s  | rC | j    t |  k se | j    d t |  k se t  n" t |  | j    d k se t  | j }
 |  } | j r x | j r | j } q Wn  | d  k	 rA|
 d } | j   sAx | j r:| j | j	 d | d | r.t |
  d k r*| d k r*| r*| j r*| j j	 | j	 k r*q.Pn  | j } q WqAn  d } x
|
 d  D] } | j	 } | j
 } | r| r| t |  k  st  | | } | d 7} qd  } n5 | r| t |  k  r| | } | d 7} n d  } | j | | | d | d | d | d |	 } | d  k rD| | | | |  } | d  k rDd  Sn  t } | } qRW|
 d } | j	 } | j
 } | t |  k  r| d t |  k st  | | } n | t |  k st  d  } | j | | | d | d | d | d t } t | | | | |  S(	   Ni   i    R\  R]  R1   iR[  R^  (   R  R/  R   R  RX  R  R   R  t   find_identifierR  RN  R_  R   RY  R@  (   R   R  t   templateDeclst   onMissingQualifiedSymbolt   strictTemplateParamArgListst   ancestorLookupTypeR[  R\  R]  R^  R  RB  t	   firstNamet   iTemplateDeclR  R  RN  R  R   RA  (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyt   _symbol_lookup+  s    %"		
	$			
	
			

			c            s  t  j r= d GHd | f GHd | f GHd   f GHd  f GHn  d   } |  j | | | d t d d  d	 t d
 t d t d t   d  k	 s t  t  j  } t	 |  d k r@t  j rd GHd  j
 f GHd  j f GHd  j f GHd   f GHd  f GHn  t  d  j d  j d  j
 d  j d   d   } | St  j rbd GHd t	 |  f GHn    st  j ryd GHn  | d Sg  } g  }	 g  }
 xS | D]K } | j d  k r| j |  q| j r|
 j |  q|	 j |  qWt  j r(d t	 |  f GHd t	 |	  f GHd t	 |
  f GHn      f d    } t	 |	  d k rXd  } n |   }   f d!   }   j d" k rt	 |	  d# k st  | |	 d |  n    j   } t  j rd$ | f GHn  xP |	 D]H } | j j   } t  j rd% | f GHn  | | k r| | |  qqWt	 |  d k rjt  j rPd& | d  k	 f GHn  | d  k	 r`| S|   SnT t  j rd' | d  k	 f GHn  | d  k	 r| j   n  | d } | j     | Sd  S((   Ns   _add_symbols:s
      tdecls:s
      nn:    s
      decl:  s
      doc:   c         S   s]   t  j r2 d GHd | f GHd | f GHd | f GHn  t  d |  d | d | d | d	 d  d
 d   S(   Ns*      _add_symbols, onMissingQualifiedSymbol:s         templateParams:s         identOrOp:     s         templateARgs:  R  R  R  RN  R   RD  (   RC  t   debug_lookupR   (   RB  R  R  RN  (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyRi    s    	Rj  Rk  R[  R\  R]  R^  i    s#      _add_symbols, result, no symbol:s         templateParams:s         identOrOp:     s         templateArgs:  s         declaration:   s         docname:       R  R  R  RN  R   RD  s!      _add_symbols, result, symbols:s         number symbols:s         no delcarations         #noDecl:  s         #withDecl:s         #dupDecl: c             s_   t  j r d GHn  t  d  j d  j d  j d  j d   d   }  t  j r[ d GHn  |  S(	   Ns&         begin: creating candidate symbolR  R  R  RN  R   RD  s&         end:   creating candidate symbol(   RC  Ro  RB  R  R  RN  (   R   (   R   RD  t   lookupResult(    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyt   makeCandSymbol  s    						c            s-   t  j r d GHn  t | _ t |      d  S(   Ns         redeclaration(   RC  Ro  R   R;  R   (   R   t
   candSymbol(   R   (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyt   handleDuplicateDeclaration  s    		R  i   s         candId:s         oldId: s2         no match, no empty, candSybmol is not None?:sG         no match, but fill an empty declaration, candSybmol is not None?:(   RC  Ro  Rn  R   R   R   R   t   listRA  R/  R  R  RN  RB  R   R
  R;  R  R7  RQ  RL  (   R   R  Rh  R   RD  Ri  RA  R   t   noDeclt   withDeclt   dupDeclR   Rq  Rr  Rs  t   candIdt   oldId(    (   R   RD  Rp  s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyRO    s    															
			
	
c         C   sG  | d  k	 s t  x.| j D]#} |  j d | j d | j d | j d t d t d t d t  } | d  k r |  j j |  |  | _	 | j
   q n  | j r,| j | k r,| j s | j | j | j  q,| j | j k r,t | j  } t d  } | | j | f } t j | d	 | j q,n  | j | | |  q Wd  S(
   NR  R  RN  R[  R\  R]  R^  sA   Duplicate declaration, also defined in '%s'.
Declaration is '%s'.t   location(   R   R   RI  R_  R  R  RN  R   R
  R  RE  R   RD  RL  R   R   t   loggert   warningt
   merge_with(   R   R   t   docnamesR"  t
   otherChildt   ourChildR  t   msg(    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR}  .  s.    					
	c         C   s4   | r | j  } n g  } |  j | | d d  d d  S(   NR   RD  (   R  RO  R   (   R   R  R  Rh  (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyt   add_nameN  s
    c         C   sU   | s t   | s t   | j } | j r9 | j j } n g  } |  j | | | |  S(   N(   R   R  R  R  RO  (   R   R   RD  R  Rh  (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyt   add_declarationW  s    		c         C   sY   | r |  j  | k r |  S| r( |  j n |  j } x! | D] } | j  | k r8 | Sq8 Wd  S(   N(   R  RV  RI  R   (   R   R  R\  R]  RF  R   (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyRg  b  s    c         C   sj   |  } x] | D]U \ } } | j  } | j } | j | | | d t d t d t d t } | s d  Sq W| S(   NR[  R\  R]  R^  (   R  RN  R_  R   R   (   R   R   R   R  R  R  RN  (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyt   direct_lookupl  s    					c   
      C   s   d   } |  j  | | | d t d | d | d | d | d t } | d  k rR d  Sy t | j  SWn t k
 rv n X| j j | j d  d  d | d | d | d t }	 |	 S(   Nc         S   s   d  S(   N(   R   (   RB  R  R  RN  (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyRi    s    Rj  Rk  R[  R\  R]  R^  (	   Rn  R   R   R  RA  RZ  RB  R_  R  (
   R   R  Rh  RG  R[  R\  R]  Ri  Rp  R   (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyt	   find_name|  s(    			c         C   s+  | j  } | j r! | j j } n g  } d   } |  j | | | d t d | d | d | d | d t }	 |	 d  k ry d  St |	 j  }
 t |
  d k r d  St	 d	 |	 j
 d
 |	 j d |	 j d |	 j d | d d  } | j   } x7 |
 D]/ } | j j   } | | k r | j   | Sq W| j   d  S(   Nc         S   s   d  S(   N(   R   (   RB  R  R  RN  (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyRi    s    Rj  Rk  R[  R\  R]  R^  i    R  R  R  RN  R   RD  t   fakeDocnameForQuery(   R  R  R  Rn  R   R   Rt  RA  R/  RC  RB  R  R  RN  R7  R   RQ  (   R   R   RG  R[  R\  R]  R  Rh  Ri  Rp  RA  t   querySymbolt   queryIdR   Rx  (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyt   find_declaration  s@    								

c         C   sX  d | g } |  j  s& | j d  n |  j rf | j t |  j   | j d  | j d |  n  |  j r | j t |  j   n | j t |  j   |  j r | j t |  j   n  |  j r| j d  |  j r | j d  n  | j t |  j   n  |  j r>| j d  | j |  j  | j d  n  | j d  d j	 |  S(	   Ns   	s   ::s   
s   : s   !!duplicate!! s   	(R  R!   (
   R  R
  R  R   R  R   RN  R;  RD  R  (   R   t   indentR  (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyt	   to_string  s.    							c         C   sM   |  j  |  g } x+ |  j D]  } | j | j | d   q Wd j |  S(   Ni   R!   (   R  RI  R
  R   R  (   R   R  R  R{   (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR     s    N(   R   R   R   Ro  t   debug_show_treeRE  RH  R   RL  RK  RQ  RR  RU  R  RV  R  R  R_  RY  Rn  RO  R}  R   R  R  Rg  R  R  R  R  R   (    (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyRC  8  s4   								
					D	k		 			
		&	-	t   DefinitionParserc        
   B   sQ  e  Z dJ Z dK Z d   Z d   Z d   Z d   Z d   Z d   Z	 d   Z
 d   Z d   Z d   Z d   Z d   Z e d    Z e d    Z e d    Z d   Z d   Z d    Z d!   Z d"   Z d#   Z d$   Z d%   Z d&   Z d'   Z d(   Z d)   Z d*   Z  d+   Z! d,   Z" d-   Z# d.   Z$ e% d/  Z& d0   Z' d1   Z( e) d2  Z* d3   Z+ d4   Z, d5   Z- e% d6  Z. d7   Z/ e% d8  Z0 dL e% d9  Z2 dL d:  Z3 d;   Z4 d<   Z5 d=   Z6 d>   Z7 d?   Z8 d@   Z9 dA   Z: dB   Z; dC   Z< dD   Z= e) dE  Z> dF   Z? dG   Z@ dH   ZA dI   ZB RS(M   Rr   R*   R.   Rt   R/   R0   RJ   RD   R<   R'   R1   Rc   R?   Rn   Rm   c         C   sd   | j    |  _ d |  _ t |  j  |  _ d  |  _ d |  _ g  |  _ t	 |  _
 | |  _ | |  _ d  S(   Ni    (   i    N(   t   stript
   definitiont   posR/  t   endR   t
   last_matcht   _previous_statet   otherErrorsR   t   allowFallbackExpressionParsingt   warnEnvt   config(   R   R  R  R  (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR     s    						c         C   s:  t  |  d k rY t  |  d k rA t | d | d d j  St | d d j  Sn  | d g } x | D] } t  | d  d k rd } | j | d  | j d  xt | d j j d  D]E } t  |  d k r q n  | j |  | j |  | j d  q Wql | j | d j  ql Wt d j |   S(   Ni   i    s   
s     s   :
R!   (   R/  R   R   R
  R  R  (   R   t   errorst   headert   resultR   t   identt   line(    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyt   _make_multi_error  s$    c         C   s*   d |  j  d } d | |  j | f GHd  S(   NR   R   s   %s
%s
%s(   R  R  (   R   R  t	   indicator(    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyt   status"  s    c         C   s   g  } d |  j  d } t d | |  j  |  j | f  } | j | d f  x$ |  j D] } | j | d f  qV Wg  |  _ |  j | d   d  S(   NR   R   s.   Invalid definition: %s [error at %d]
  %s
  %ss
   Main errors   Potential other errorR!   (   R  R   R  R
  R  R  (   R   R  R  R  t   exMaint   err(    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyt   fail(  s    	c         C   s)   |  j  r |  j  j |  n	 d | GHd  S(   Ns   Warning: %s(   R  t   warn(   R   R  (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR  5  s    	c         C   sY   | j  |  j |  j  } | d  k	 rU |  j |  j f |  _ | j   |  _ | |  _ t St S(   N(	   t   matchR  R  R   R  R  R  R   R   (   R   t   regexR  (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR  <  s    	c         C   s   |  j  \ |  _ |  _ d  S(   N(   R  R  R  (   R   (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyt   backoutF  s    c         C   sC   t  |  } |  j |  j |  j | !| k r? |  j | 7_ t St S(   N(   R/  R  R  R   R   (   R   t   stringt   strlen(    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyt   skip_stringJ  s
     c         C   s#   |  j  t j d t j |    S(   Ns   \b%s\b(   R  t   ret   compilet   escape(   R   t   word(    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyt	   skip_wordR  s    c         C   s   |  j  t  S(   N(   R  t   _whitespace_re(   R   (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyt   skip_wsV  s    c         C   s!   |  j  |  r |  j   t St S(   N(   R  R  R   R   (   R   R  (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyt   skip_word_and_wsZ  s    
c         C   s!   |  j  |  r |  j   t St S(   N(   R  R  R   R   (   R   R  (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyt   skip_string_and_wsa  s    
c         C   s   |  j  |  j k S(   N(   R  R  (   R   (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyt   eofh  s    c         C   s+   y |  j  |  j SWn t k
 r& d SXd  S(   Nt   EOF(   R  R  t
   IndexError(   R   (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyt   current_charm  s    c         C   s$   |  j  d  k	 r |  j  j   Sd  Sd  S(   N(   R  R   t   group(   R   (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyt   matched_textu  s    c         C   s    |  j  |  j } |  j |  _ | S(   N(   R  R  R  (   R   t   rv(    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyt	   read_rest}  s    c         C   s'   |  j    |  j s# |  j d  n  d  S(   Ns   Expected end of definition.(   R  R  R  (   R   (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyt
   assert_end  s    
	c         C   s   |  j  d k r d  S|  j } |  j d 7_ t } xy t r |  j rS |  j d  nG |  j  d k r| | r| |  j d 7_ Pn |  j  d k r t } n t } |  j d 7_ q4 W|  j | |  j !S(   Nt   "i   s$   Unexpected end during inside string.s   \(   R  R   R  R   R   R  R  R  (   R   t   startPosR  (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyt   _parse_string  s     				c         C   s   i d d 6d d 6d d 6} |  j  } g  } x |  j s t |  d k r[ |  j | k r[ Pn  |  j | j   k r | j | |  j  nX t |  d k r |  j | d k r | j   n& |  j d	 k r |  j d
 |  j  n  |  j  d 7_  q- W|  j r|  j d |  n  |  j | |  j  !S(   NR  R  Rk  Rl  R  R  i    is   )]}s&   Unexpected '%s' in balanced-token-seq.i   s8   Could not find end of balanced-token-seq starting at %d.(	   R  R  R/  R  t   keysR
  R+  R  R  (   R   R  t   bracketsR  RA  (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyt   _parse_balanced_token_seq  s"    	!%		c         C   sl  |  j    |  j } |  j d  r |  j d  s= | |  _ q |  j d d g  } |  j d  sq |  j d  n  |  j d  s |  j d  n  t |  Sn  |  j d  r|  j d  s |  j d  n  |  j d  s |  j d	  n  g  } x |  j t	  rM|  j
 } |  j    |  j d  r4|  j d
  n  | j t | d    n  |  j d  rbq q |  j d  ruPq |  j d  q W|  j d  s|  j d  n  t |  Sx- |  j j D] } |  j |  rt |  SqWx |  j j D]x } |  j |  sqn  |  j d  s&|  j d  n  |  j d d g  } |  j d  sZ|  j d  n  t | |  SWd  S(   NRl  R  Rk  s!   Expected ']' in end of attribute.s-   Expected ']' in end of attribute after [[...]t   __attribute__R  s#   Expected '(' after '__attribute__'.s$   Expected '(' after '__attribute__('.s4   Parameterized GNU style attribute not yet supported.R   R  s2   Expected identifier, ')', or ',' in __attribute__.s(   Expected ')' after '__attribute__((...)'s0   Expected '(' after user-defined paren-attribute.s1   Expected ')' to end user-defined paren-attribute.(   R  R  R  R  R  R  R  R  R  t   _identifier_reR  R
  R  R   R  R  t   cpp_id_attributesR  t   cpp_paren_attributesR  (   R   R  R	  R  R  R  (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyt   _parse_attribute  sZ    
		

c         C   sw  |  j    |  j d  r  t   S|  j d  r9 t t  S|  j d  rR t t  Sxq t t t t	 t
 g D]Z } |  j } |  j |  rh x" |  j d k r |  j d 7_ q Wt |  j | |  j ! Sqh W|  j   } | d  k	 r t |  S|  j t  rs|  j j d  } |  j j d  } y t | |  SWqst k
 rR} |  j d |  qst k
 ro|  j d  qsXn  d  S(	   NRR   Ri   RC   t   uUlLfFi   i   s8   Can not handle character literal. Internal error was: %ssJ   Can not handle character literal resulting in multiple decoded characters.(   R  R  R  R#  R   R   t   _float_literal_ret   _binary_literal_ret   _hex_literal_ret   _integer_literal_ret   _octal_literal_reR  R  R  R&  R  R  R   R3  t   _char_literal_reR  R  R*  t   UnicodeDecodeErrorR  R(  (   R   R  R  R  R+  R'  R   (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyt   _parse_literal  s6    


	
c         C   sj  |  j  d k r d  S|  j d 7_ |  j   |  j d  r |  j t  sZ |  j d  n  |  j } |  j	   } |  j
 d  s |  j d  n  t d  | |  S|  j } yu |  j   |  j	   } |  j   |  j t  s |  j d  n  |  j } |  j   |  j d  s|  j d  n  Wn t k
 r} | |  _ y? |  j d	 t  } |  j   |  j
 d  su|  j d
  n  Wn7 t k
 r} |  j | d f | d f g d   n Xt |  SX|  j
 d  rt | | d   S|  j t  s|  j d  n  | |  j k r%|  j d | |  j f  n  |  j	   } |  j   |  j
 d  sZ|  j d  n  t | | |  S(   NR  i   s   ...s6   Expected fold operator after '...' in fold expression.R  s'   Expected ')' in end of fold expression.s@   Expected fold operator after left expression in fold expression.s6   Expected '...' after fold operator in fold expression.t
   inTemplates0   Expected ')' in end of parenthesized expression.s   If fold expressions   If parenthesized expressions5   Error in fold expression or parenthesized expression.s=   Expected fold operator or ')' after '...' in fold expression.s6   Operators are different in binary fold: '%s' and '%s'.s+   Expected ')' to end binary fold expression.(   R  R   R  R  R  R  t   _fold_operator_reR  R  t   _parse_cast_expressionR  R8  R   t   _parse_expressionR   R  R6  (   R   R:  R;  R  R9  t   eFoldR  t   eExpr(    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyt   _parse_fold_or_paren_expression  s`    
		

	
	
		
c         C   sl   |  j    |  j   } | d  k	 r& | S|  j    |  j d  rF t   S|  j   } | d  k	 rb | S|  j   S(   NRf   (   R  R  R   R  R4  R  t   _parse_nested_name(   R   R  (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyt   _parse_primary_expressionR  s    

c         C   s.  |  j    |  j d  r( d } d } n/ |  j d  rS d } d } |  j d  n d Sg  } |  j    |  j |  s$x t r |  j    |  j d t  } |  j    |  j d	  r | j t	 |   n | j |  |  j    |  j |  r Pn  |  j d
  sy |  j d | | f  qy qy Wn  | | f S(   NR  R  s   parenthesized expression-listR  R  s   braced-init-lists*   Sorry, braced-init-list not yet supported.R  s   ...R   s"   Error in %s, expected ',' or '%s'.(   NN(
   R  R  R  R   R  R   R  R   R
  Rv  (   R   t   closeR  RB  R7  (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyt*   _parse_expression_list_or_braced_init_listf  s2    
	
	


!c            s  d  } d  }   j   d  } x' t D] }   j |  r# | } Pq# q# W| d  k	 r@d }   j d  s{   j d |  n    j t  }   j     j d  s   j d |  n    j d  s   j d |  n    f d   }   j	 d	 g |  }   j     j d	  s+  j d
 |  n  t
 | | |  } nh  j d  rd }   j d  st  j d  n    j } yD   j t  } t | d t }   j d	  s  j d  n  Wqt k
 r}	 |   _ yY   f d   }   j	 d	 g |  } t | d t }   j d	  s4  j d  n  Wqt k
 r}
 |   _ d } | d 7} g  } | j |	 d f  | j |
 d f    j | |   qXqXn   j } y   j   } d } Wn t k
 r} |   _ yT   j t d  } d }   j     j d k r6  j d k r6  j d  n  Wqt k
 r} |   _ d } | d 7} g  } | j | d f  | j | d f    j | |   qXn Xg  } x t r  j   | d+ k rH  j d  r0  j d t  }   j     j d  s  j d   n  | j t |   qn    j d!  r  j d"  r`  j d# 8_ q  j d$  r  j d% 8_ q  j   } | j t |   qn    j d&  r  j d"  r  j d% 8_ q  j   } | j t |   qn    j d'  r | j t    qn    j d(  rH| j t    qqHn    j   \ } } | d  k	 r| d	 k r| j t |   q| d) k st  t st  qn  PqWt |  d* k r| St | |  Sd  S(,   NRb  R   s   Expected '<' afer '%s'.R   s    Expected '>' after type in '%s'.R  s   Expected '(' in '%s'.c              s     j  d t  S(   NR  (   R  R   (    (   R   (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyt   parser  s    R  s   Expected ')' to end '%s'.Rl   s   Expected '(' after 'typeid'.Re  s%   Expected ')' to end 'typeid' of type.c              s     j  d t  S(   NR  (   R  R   (    (   R   (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR    s    s+   Expected ')' to end 'typeid' of expression.s   Error in 'typeid(...)'.s    Expected type or expression.s   If types   If expressionR7  t   operatorCastt   typeOperatorCastR  s3   Expecting '(' or '{' after type in cast expression.s   Error in postfix expression,s%    expected primary expression or type.s   If primary expressionRl  R  Rk  s*   Expected ']' in end of postfix expression.Rq  R   i   s   ..i   s   ->s   ++s   --R  i    (   R7  Rb  Rl   (   R   R  Ra  R  R  R  t   _parse_typeR   R  t   _parse_expression_fallbackR`  R  Rc  R   R   R
  R  R  R  R  Rj  R  Ro  Rr  Rm  Rn  R  Rh  R   R/  Rs  (   R   t
   prefixTypeR+  Rb  R{   RG  R  R7  R  t   eTypeR  R  R  t   eOutert   eInnerRt  R  t   lst(    (   R   s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyt   _parse_postfix_expression  s    


			
	
	
	
	

	c         C   s  |  j    x6 t D]. } |  j |  r |  j   } t | |  Sq W|  j d  rK|  j d  r |  j d  s |  j d  n  |  j t	  s |  j d  n  t
 |  j  } |  j    |  j d  s |  j d  n  t |  S|  j d  r5|  j d t  } |  j    |  j d  s+|  j d	  n  t |  S|  j   } t |  S|  j d
  r|  j d  sy|  j d  n  |  j d t  } |  j    |  j d  s|  j d  n  t |  S|  j d  r1|  j d  s|  j d  n  |  j d t  } |  j    |  j d  s'|  j d  n  t |  S|  j } |  j d  } |  j    |  j d  sn| |  _ n t } |  j d  r|  j d  n  | r|  j d d   } |  j d t d d  }	 n |  j d  |  j   \ }
 } |
 r | d k s t  n  t | | t | |	  |
 |  S|  j } |  j d  } |  j    |  j d  s\| |  _ nQ |  j d  } | r|  j d  r|  j d  n  |  j   } t | | |  S|  j   S(   NR_   s   ...R  s    Expecting '(' after 'sizeof...'.s%   Expecting identifier for 'sizeof...'.R  s!   Expecting ')' to end 'sizeof...'.t   nameds   Expecting ')' to end 'sizeof'.R#   s   Expecting '(' after 'alignof'.s   Expecting ')' to end 'alignof'.RO   s   Expecting '(' after 'noexcept'.R  s    Expecting ')' to end 'noexcept'.s   ::RN   sY   Sorry, neither new-placement nor parenthesised type-id in new-epression is supported yet.R  t	   paramModesA   Sorry, parenthesised type-id in new expression not yet supported.s   )}R:   Rl  Rk  s(   Expected ']' in array delete-expression.(    R  t   _expression_unary_opsR  R  RI  R  R  R  R  R  Ry  R  RK  R  R   RO  t   _parse_unary_expressionRQ  RS  R  RU  R  R   t   _parse_decl_specsR   t   _parse_declaratorR  R   RW  R  R^  R  (   R   R:  R7  R  RG  R  RX  RY  R  R  R  R_  (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR     s    









	
	
c         C   s   |  j  } |  j   |  j d  r yK |  j t  } |  j d  sS |  j d  n  |  j   } t | |  SWq t k
 r } | |  _  y |  j	   SWq t k
 r } g  } | j
 | d f  | j
 | d f  |  j | d   q Xq Xn
 |  j	   Sd  S(   NR  R  s    Expected ')' in cast expression.s   If type cast expressions   If unary expressions   Error in cast expression.(   R  R  R  R  R   R  R  RF  R   R  R
  R  (   R   R  RG  R7  t   exCastt   exUnaryt   errs(    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR  }  s&    	
	c            s"     f d       |  d d | S(   Nc   
         s^    d t  t  k r(  f d   } n     f d   } g  } g  } | j | d |   x t rP j   | r  j d k r Pn   j } t } x t   D] }  j |  s q n  | d k r  j d k r  j d 8_ Pn  y4 | d |  }	 | j |	  | j |  t } PWq t	 k
 r>|  _ q Xq W| sb Pqb qb Wt
 | |  S(   Ni   c            s
     j    S(   N(   R  (   R  (   R   (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR    s    c            s       d d |  S(   Ni   R  (    (   R  (   t   _parse_bin_op_exprt   opIdR   (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR    s    R  R   R   (   R/  t   _expression_bin_opsR
  R   R  R  R  R   R  R   RA  (
   R   R  R  R  RB  RC  R  t   oneMoreR:  R7  (   R  (   R  R   s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR    s:    	
	i    R  (    (   R   R  (    (   R  s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyt   _parse_logical_or_expression  s    #c         C   s   d  S(   N(   R   (   R   t
   orExprHead(    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyt"   _parse_conditional_expression_tail  s    c         C   s   g  } g  } |  j  d |  } | j |  xy t r t } |  j   xR t D]J } |  j |  sf qK n  |  j  t  } | j |  | j |  t } qK W| s. Pq. q. Wt |  d k r | St | |  Sd  S(   NR  i    (	   R  R
  R   R   R  t   _expression_assignment_opsR  R/  RE  (   R   R  RB  RC  t   orExprR  R:  R7  (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyt   _parse_assignment_expression  s&    
	

c         C   s   |  j  d |  } | S(   NR  (   R  (   R   R  R  (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyt   _parse_constant_expression  s    c         C   s   |  j  d |  S(   NR  (   R  (   R   R  (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR    s    c   
      C   s  |  j  } y |   SWnG t k
 r] } | s7 |  j r=   n  |  j d | j  | |  _  n X| d  k	 sp t  |  j   |  j  } |  j t	  r |  j
 } ni d d 6d d 6d d 6} g  }	 x |  j s`t |	  d k r |  j | k r Pn  |  j | j   k r|	 j | |  j  n2 t |	  d k rN|  j |	 d	 k rN|	 j   n  |  j  d
 7_  q Wt |  d k r|  j r|  j d |  n  |  j | |  j  !j   } t | j    S(   NsB   Parsing of expression failed. Using fallback parser. Error was:
%sR  R  Rk  Rl  R   R   i    ii   s0   Could not find end of expression starting at %d.(   R  R   R  R  R   R   R   R  R  t
   _string_reR  R  R/  R  R  R
  R+  R  R  R  Rx  (
   R   R  R  t   allowt   prevPosR   R  R   R  RA  (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR    s:    		
	!%	c         C   s  |  j    |  j t  r& t |  j  Sx d D]y } |  j |  sH q- n  |  j    |  j d  r |  j    |  j d  s |  j d | d  n  | d 7} n  t |  SW|  j d  r |  j    |  j t  s |  j d	  n  t	 |  j  } t
 |  S|  j d
 t d d  } t |  S(   NRN   R:   Rl  Rk  s   Expected "]" after  "operator s   ["s   []s   ""s%   Expected user-defined literal suffix.R  R  R  (   RN   R:   (   R  R  t   _operator_reR  R  R  R  R  R  Ry  R  R  R   R  (   R   R:  RL  R   (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyt   _parse_operator  s*    




c            s    j      j d  s d  S  j d  r6 t g   Sg  } g  } x  j } t } t } yj   j d t  }   j      j d  r t } n%   j d  r t } n   j	 d  | j
 |  Wn t k
 r} | j
 | d f  |   _ y   f d   }   j d d g |  }	   j      j d  r>t } n%   j d  rVt } n   j	 d  | j
 t |	   Wqt k
 r} |   _ | j
 | d f  d	 }
   j | |
   qXn X| rE | st  PqE qE Wt |  S(
   NR   R   R  R   s.   Expected ">" or "," in template argument list.s   If type argumentc              s     j  d t  S(   NR  (   R  R   (    (   R   (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR  Y  s    s   If non-type arguments(   Error in parsing template argument list.(   R  R  R   R  R  R  R   R  R   R  R
  R   R  R  R  R   (   R   t
   prevErrorsRN  R  t   parsedCommat	   parsedEndR   R   R  R   R  (    (   R   s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyt   _parse_template_argument_list>  sT    

	
			
			c         C   s  g  } g  } |  j    t } |  j d  r4 t } n  xz|  j    t |  d k re |  j d  } n t } | j |  d  } |  j d  r |  j   } nz |  j	 t
  s | r t |  d k r | j   Pn  |  j d  n  |  j } | t k r
|  j d |  n  t |  } |  j } y |  j   }	 Wn2 t k
 rc}
 | |  _ d  }	 |  j j |
  n X| j t | |	   |  j    |  j d  s7 | r|  j d  n  Pq7 q7 Wt | | |  S(   Ns   ::i    Re   RS   s#   Expected identifier in nested name.s3   Expected identifier in nested name, got keyword: %ss.   Expected '::' in pointer to member (function).(   R  R   R  R   R/  R  R
  R   R  R  R  R+  R  R  t	   _keywordsRy  R  R  R   R  R  R  (   R   t   memberPointerR  R  RX  Re   R  RL  R  RN  t   ex(    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR  n  sN    
	

				
c         C   sK  |  j    x* |  j D] } |  j |  r t |  Sq Wg  } |  j d  r\ | j d  n |  j d  r{ | j d  n  xC |  j d  r | j d  q~ |  j d  r | j d  q~ Pq~ W|  j d  r | j d  n> |  j d  r | j d  n |  j d  r| j d  n  t |  d k rCt d	 j |   S|  j    |  j d
  r|  j d  s{|  j	 d  n  |  j d  r|  j
 d  s|  j	 d  n  t   S|  j d t  } |  j    |  j
 d  s|  j	 d  n  t |  Sd  } |  j    x* |  j D] } |  j |  r| } PqqW|  j   } t | |  S(   NR^   Ro   R]   RK   R.   RJ   R<   i    u    R8   R  s   Expected '(' after 'decltype'.R'   R  s#   Expected ')' after 'decltype(auto'.R  s%   Expected ')' after 'decltype(<expr>'.(   R  t   _simple_fundemental_typesR  R  R  R
  R/  R  R  R  R  R  R  R   R  R   t   _prefix_keysR  R  (   R   R   t   elementsR7  R+  t   kR  (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyt   _parse_trailing_type_spec  sX    




c      	   C   s+  | d k r d  S|  j   |  j d  sL | d k rE |  j d  qL d  Sn  g  } |  j   |  j d  sBx |  j   |  j d  r | j t d  t   |  j   |  j d  s |  j d  n  Pn  |  j d d  d	 d
  } | j t |   |  j   |  j d  rqn qn |  j d  r'Pqn |  j d |  j  qn Wn  | d k rst	 rst
 | d  d  d  d  d  d  d   S|  j   |  j d  } |  j d  } | s|  j d  } n  d  } |  j d  rd } n  | r|  j d  rd } n  d  } d  } d  }	 d  }
 |  j   |  j d  rSd } |  j   |  j d  rS|  j d  qSn  |  j   |  j d  } |  j d  }	 | s|  j d  } n  |  j   |  j d  r|  j   d } x' | D] } |  j |  r| }
 PqqW|
 s|  j d d j |   qn  t
 | | | | | | |	 |
  S(   NRN   R  R  s+   Expecting "(" in parameters_and_qualifiers.R  s   ...s6   Expected ")" after "..." in parameters_and_qualifiers.R  R  t   singleR   s<   Expecting "," or ")" in parameters_and_qualifiers, got "%s".R4   Rs   s   &&R   RO   s)   Parameterised "noexcept" not implemented.R  R  R   R  R:   R9   s'   Expected "%s" in initializer-specifier.u   " or "(   R  R:   R9   (   R   R  R  R  R
  R  R   t   _parse_type_with_initR  R   R  R  R  (   R   R  R  R	  R4   Rs   R  R  R  R  R  t   validR   (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyt    _parse_parameters_and_qualifiers  s    





		




c         C   s  d } d } d } d } d } d } d }	 d }
 d } g  } x|  j   | s | d k r |  j d  rv d } q? n  |  j d  r d } q? q n  | d k r |  j d  r d } q? q n  |  j d  r d } q? q n  | r| d k r|  j d  } | rq? qn  | d k r| s=|  j d  } | r=q? q=n  | sa|  j d	  } | raq? qan  | s|  j d
  } | rq? qn  | s|  j d  } | rq? qqn  | r| d k r|  j d  } | rq? qn  |	 r| r|  j d  }	 |	 rq? qn  |
 r3| r3|  j d  }
 |
 r3q? q3n  |  j   } | rX| j |  q? n  Pq? Wt | | | | | | |	 |
 | | 
 S(   s   Just parse the simple ones.R#  R  R`   RB   RL   RY   Rg   RI   RF   Rq   R@   R5   Rs   R4   N(   R#  R  (   R#  R  (   R   R  R  R  R
  R  (   R   R  t   typedR  R  RI   Rq   R@   R5   Rs   R4   RF   R  R  (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyt   _parse_decl_specs_simple3  s    
										c         C   s   | r( | d k r( t  d |   q( n  |  j | |  } d  } | rg |  j   } |  j | |  } n d  } t | | | |  S(   NR   R#  R  RM  s#   Internal error, unknown outer "%s".(   R   R#  R  RM  (   R  R  R   R
  R  (   R   R  R  R  R  R  (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR  ~  s    c            s  | d k rK   j  } y   j   } Wq t k
 rG |   _  d  } q Xn | d k r   j t  r t   j  } t | d   } t	 | g t
 g d t
 }   j     j d k r   j d  q q d  } n | r   j   } n d  } g  } x   j   | r  j d  r  j     j d  rI| j t d    q n    f d   }	   j d g |	  }
   j d  s  j d	  n  | j t |
   q q Pq W  j |  } t d
 | d | d |  S(   Nt   maybeR  RX  R  s    Unexpected ':' after identifier.Rl  Rk  c              s     j  d t  S(   NR  (   R  R   (    (   R   (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR    s    s&   Expected ']' in end of array operator.R  R  R  (   R  R  R   R   R  R  Ry  R  R  R  R   R  R  R  R  R
  R   R  R  R  (   R   R  R  R  R  R  RL  R  R  R  R   R  (    (   R   s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyt!   _parse_declarator_name_param_qual  sJ    		
	

c      	   C   s  | d k r t  d |   n  g  } |  j   | r|  j d  r|  j   t } t } g  } xx | s |  j d  } | r qc q n  | s |  j d  } | r qc q n  |  j   } | d  k	 r | j |  qc n  Pqc W|  j | | |  }	 t	 d	 |	 d | d | d
 |  S| r|  j d  rg  } x- |  j   } | d  k rIPn  | j |  q-W|  j | | |  }	 t
 d	 |	 d
 |  S| r|  j d  r|  j | | t  }	 t d	 |	  S| r|  j }
 yI |  j d t  } |  j   |  j d  s|  j d  n  |  j   Wn/ t k
 rB} |
 |  _ | j | d f  qXt } t } xM | sv|  j d  } | rvqRqvn  | s|  j d  } | rqRqn  PqRW|  j | | |  }	 t | | | d	 |	 Sn  | r7|  j d k r7| d k rt d d  d g  d d   S|  j }
 y |  j | | |  } | SWq7t k
 r3} | j | d f  |
 |  _ y |  j d k sst  |  j d  |  j | | |  } |  j d  s|  j d  n  |  j d t d d d |  }	 t d | d	 |	  SWq4t k
 r/} |
 |  _ | j | d f  d } |  j | |   q4Xq7Xn  |  j }
 y |  j | | |  SWnG t k
 r} |
 |  _ | j | d f  d } |  j | |   n Xd  S(    NR   R  R  RN   s'   Internal error, unknown paramMode '%s'.R   Rs   R4   R  R  R   s   ...R  s-   Expected '*' in pointer to member declarator.s   If pointer to member declaratorR  R  R  R  s%   If declId, parameters, and qualifiersR  s$   Expected ')' in "( ptr-declarator )"R  R  R  R  s"   If parenthesis in noptr-declarators   Error in declarators   If declarator-ids0   Error in declarator or parameters and qualifiers(   R   R  R  RN   (   R  R  R  R   R  R  R   R
  R  R  R
  R  R  R  R   R  R   R  R  R  R  R   R  R  (   R   R  R  R  R  Rs   R4   R  R  R  R  R  R   R  t   exParamQualR  t   exNoPtrParenR  (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR    s    

			
										c            s     j      j d  s d  S| d k rS   f d   }   j g  | d | } n | d k r   f d   }   j d d g | d | } nM | d  k r   f d	   }   j d d
 g | d | } n   j d |  t |  Sd  S(   NR   R#  c              s     j  d t  S(   NR  (   R  R   (    (   R   (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR  A  s    R  RM  c              s     j  d t  S(   NR  (   R  R   (    (   R   (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR  F  s    R   R   c              s     j  d t  S(   NR  (   R  R   (    (   R   (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR  K  s    R  s;   Internal error, initializer for outer '%s' not implemented.(   R  R  R   R  R  R  (   R   R  t   allowFallbackR  R   (    (   R   s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyt   _parse_initializer9  s$    
	c         C   s  | rC | d k r% t  d |   n  | d k rC | s@ t  qC n  | d k rCg  } |  j } yD |  j d | d t  } |  j d	 t d
 | d t  } |  j   Wqt k
 r?} | d k r d } n! | d k r d } n t s t  | j	 | | f  | |  _ y. |  j d |  } |  j d	 t d
 |  } Wq@t k
 r;}	 | |  _ | d k rdd } n! | d k ryd } n t st  | j	 |	 | f  t r| d k rd }
 |
 d 7}
 n! | d k rd }
 n t st  |  j
 | |
   q<| |  _ t } |  j d | d |  } |  j d	 t d
 | d |  } q@XqXnu d } | d k r^t } n0 | d k ryd } d } n | d k rd } n  |  j d |  } |  j d	 | d
 |  } t | |  S(   s   
        named=False|'maybe'|True: 'maybe' is e.g., for function objects which
        doesn't need to name the arguments

        outer == operatorCast: annoying case, we should not take the params
        R   R#  R  R  RM  s#   Internal error, unknown outer "%s".R  R  R  R  s   If just a names"   If the function has no return types   If typedef-like declarations!   If the function has a return types%   Type must be either just a name or a s   typedef-like declaration.s(   Error when parsing function declaration.R  (   R   R#  R  R  RM  (   R   R  N(   R  R   R  R  R   R  R   R  R   R
  R  R   R  (   R   R  R  R  R  R  R  t	   exUntypedt   desct   exTypedR  R  R  (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR  T  sr    														c         C   s  | r | d k s t   n  |  j d | d |  } | d k r^ |  j d |  } t | |  S|  j } d  } y| |  j d | d t  } | d  k r t | d   S|  j   |  j d k r |  j d	 k r | |  _ d  } n t | |  SWn" t	 k
 r} | |  _ | } n X|  j
 d
  s*t | d   Sy) |  j d t d d   } t | |  SWnv t	 k
 r}	 | d  k rz|	  n  g  }
 |
 j | d f  |
 j |	 d f  d } | d 7} |  j |
 |   n Xd  S(   NR   R#  R  RM  R  R  R  R   R   R   s   If default is an expressions   If default is a types$   Error in non-type template parameters#    or constrianted template paramter.(   R   R#  R  RM  (   R   R  R  R"  R  R   R   R  R  R   R  R  R
  R  (   R   R  R  R   R  R  R  R   t   typeInitR  R  R  (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR    sD    	
			
	
c         C   sQ   |  j    } |  j   |  j d  s2 t | d   S|  j t d   } t | |  S(   NR   (   R  R  R  R$  R   R  R   (   R   R  R   (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyt   _parse_type_using  s    
c         C   s2   |  j    } |  j   |  j d  } t | |  S(   NR#  (   R  R  R  R%  (   R   R  R  (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyt   _parse_concept  s    
c         C   s7  |  j    } |  j   |  j d  } g  } |  j   |  j d  r'x |  j   d } t } t } |  j d  r{ t } n  |  j t  r |  j } |  j   n  | r |  j d  r t } n  |  j    } |  j   |  j d  } | j	 t
 | | | |   |  j   |  j d  rqG qG PqG Wn  t | | |  S(   NR  R  RV   Rq   s   ...R   (   R  R  R  R  R   R   R  t   _visibility_reR  R
  R&  R)  (   R   R  R  R*  R'  Rq   R(  t   baseName(    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyt   _parse_class  s6    


			

c         C   s   |  j    } t |  S(   N(   R  R,  (   R   R  (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyt   _parse_union  s    c         C   s`   d  } |  j   |  j   } |  j   d  } |  j d  rP |  j d t  } n  t | | |  S(   NR  R  (   R   R  R  R  R  R   R-  (   R   R.  R  R/  (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyt   _parse_enum  s    

c            sr     j    }   j   d  }   j d  re   j     f d   }   j g  |  } t |  } n  t | |  S(   NR   c              s     j  d t  S(   NR  (   R  R   (    (   R   (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR    s    (   R  R  R   R  R  R  R0  (   R   R  R  R  t   initVal(    (   R   s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyt   _parse_enumerator  s    

c         C   s  g  } |  j    |  j d  s/ |  j d  n  xeg  } |  j    |  j d  ri |  j   } t | _ n d  } |  j    d  } |  j d  r d } n. |  j d  r d } n | r |  j d  n  | r|  j    |  j d  } |  j    |  j	 t
  rt |  j  } n d  } |  j    | rP|  j d  rP|  j d	 t d
 d   } n d  } t | | | |  } | rt | |  }	 n t |  }	 | j |	  nj |  j }
 y) |  j d d  }	 | j t |	   Wn5 t k
 r} d } | j | | f  |
 |  _ n X|  j    |  j d  r,t |  S|  j d  rAq2 q2 d } y |  j d  Wn& t k
 r} | j | d f  n X|  j | |   q2 Wd  S(   NR   s   Expected '<' after 'template'Re   Rm   R1   sF   Expected 'typename' or 'class' after template template parameter list.s   ...R   R  R  R  RM  s@   If non-type template parameter or constrained template parameterR   R   s!   Error in template parameter list.s   Expected "=", ",", or ">".R!   (   R  R  R  R  t   _parse_template_parameter_listR   R  R   R  R  R  Ry  R  R  R   R  R  R  R
  R  R  R  R   R  R  (   R   R  R  R  R   R  RL  R9   R'  R  R  R   R  R  (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR$     sn    


		


		

c         C   sC  |  j  } y |  j   } Wn t k
 r6 | |  _  d  SX|  j   |  j d  s] | |  _  d  Sg  } x |  j   |  j d  } |  j   |  j t  s |  j d  n  |  j	 } | t
 k r |  j d |  n  t |  } | j t | |   |  j   |  j d  rPqf |  j d  r%qf qf |  j d  qf Wt | |  S(   NR  s   ...s2   Expected identifier in template introduction list.sB   Expected identifier in template introduction list, got keyword: %sR  R   s:   Error in template introduction list. Expected ",", or "}".(   R  R  R  R   R  R  R  R  R  R  R  Ry  R
  R  R  (   R   R  R3   R  R  t   txt_identifierRL  (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyt   _parse_template_introductionh  s<    		
	

		
c         C   s2  g  } x |  j    |  j } |  j d  r y |  j   } Wq t k
 r~ } | d k ru t |  d k ru t d   S|  q Xn |  j   } | s Pn  | d k r t |  d k r | |  _ |  j	 d  n  | j
 |  q	 Wt |  d k r| d k r|  j	 d  n  t |  d k r$d  St |  Sd  S(   NRe   R#  i    R3   s0   More than 1 template parameter list for concept.s,   Missing template parameter list for concept.(   R  R  R  R$  R   R/  R  R   R&  R  R
  (   R   R  R  R  R  R   (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyt"   _parse_template_declaration_prefix  s.    
	
	c         C   s_  | j    } t } | s! d } n3 | rE | j d  k rE d } t } n t | j  } | d | k  r~ |  j d | | f  n  | | k r[| | } | r | r d | | | f }	 |	 d 7}	 | r |	 d t |  7}	 n  |	 t |  7}	 |  j |	  n  g  }
 x' t	 |  D] } |
 j
 t g    qW| rL| rL|
 j | j  n  t |
  } n  | S(   Ni    i   se   Too few template argument lists comapred to parameter lists. Argument lists: %d, Parameter lists: %d.s   Too many template argument lists compared to parameter lists. Argument lists: %d, Parameter lists: %d, Extra empty parameters lists prepended: %d.s    Declaration:
	s   %s
	(   R  R   R  R   R   R/  R  R   R  RD  R
  R  R  R  (   R   R  R  t   fullSpecShorthandt   isMembert   numArgst   isMemberInstantiationt	   numParamst   numExtraR  t   newTemplatesR}   (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyt   _check_template_consistency  s8    			

c   	   	   C   sp  | d k r t  d	 |   n  d  } d  } d  } |  j   |  j t  rV |  j } n  | d k rt |  j |  } n  | d k rUg  } |  j } y% | s |  j d
 t	 d d  } n  Wn/ t
 k
 r } | j | d f  | |  _ n X|  j } y | s|  j   } n  Wq6t
 k
 rQ} | |  _ | j | d f  d } |  j | |   q6Xn | d k rp|  j   } n | d k r|  j d
 t	 d d  } n | d k r|  j d
 t	 d d  } nx | d k r|  j   } n] | d k r|  j   } nB | d k r|  j   } n' | d k r*|  j   } n t s6t  |  j | j | d t d | d k } t | | | |  S(   NR   R3   R#  R  R1   Rn   R?   R4  s(   Internal error, unknown objectType "%s".R  R  s   If typedef-like declarations   If type alias or template aliass   Error in type declaration.R(  R)  (   R   R3   R#  R  R1   Rn   R?   R4  (   R   R3   R#  R  R1   (   R  R   R  R  R  R  R'  R  R  R   R   R
  R  R  R  R  R  R   R!  R#  R   R   R/  R  R1  (	   R   R  R'  R  R   R  R  R   R  (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyt   parse_declaration  sd    	
				c         C   sR   |  j  d d  } |  j   } |  j | | d t } t | |  } d | _ | S(   NR  RM   R(  (   R'  R  R/  R   R?  R  (   R   R  R  R  (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyt   parse_namespace_object  s    		c   
      C   s-  |  j  } ys |  j d d  } |  j   } |  j   |  j d  |  j | | d t } t | |  } d | _ | t f SWn t	 k
 r(} y= | |  _  |  j
 d  } |  j   |  j d  | t f SWq)t	 k
 r$} g  } | j | d f  | j | d f  d }	 |  j | |	   q)Xn Xd  S(	   NR  t   xrefs   ()R(  R  s   If shorthand refs   If full function refs   Error in cross-reference.(   R  R'  R  R  R  R/  R   R?  R  R   R0  R   R
  R  (
   R   R  R  R  t   res1t   e1t   res2t   e2R  R  (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyt   parse_xref_object  s0    	
			
c         C   s   |  j  } y' |  j t  } |  j   |  j   Wn t k
 r } | |  _  y' |  j t  } |  j   |  j   Wq t k
 r } d } g  } | j | d f  | j | d f  |  j | |   q Xn X| S(   Ns%   Error when parsing (type) expression.s   If expressions   If type(	   R  R  R   R  R  R   R  R
  R  (   R   R  R7  t   exExprt   exTypeR  R  (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyt   parse_expression7  s$    	
	
(
   Rr   R*   R.   Rt   R/   R0   RJ   RD   R<   R'   (   R1   Rc   R?   Rn   Rm   N(C   R   R   R  R  R   R  R  R  R  R  R  R  R  R  R  R  R  R  R  R  R  R  R  R  R  R  R  R  R  R  R  R  R  R  R  R  R  R   R  R  R  R   R  R
  R  R  R  R  R  R   R  R  R  R  R  R  R   R!  R#  R$  R&  R'  R/  R0  R1  R7  R:  (    (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR    s|    						
											<	*	;				]		1		 		(	!	01	8	\	K	/pS	,								H	'	"&	9	
	c          C   s.   t  t d  d   }  t |  g t g d t S(   Nt   PhonyNameDueToErrorRX  (   R  Ry  R   R  R   (   R  (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyt   _make_phony_error_nameL  s    t	   CPPObjectc           B   s  e  Z d  Z e d d e d  d d" d e e d	 d e d
  d d# d e e d d e d  d d d d$ d e e d d e d  d e d d% g Z e	 e
 j  Z e j e d <d   Z d   Z d   Z d   Z d   Z d   Z d   Z d    Z d!   Z RS(&   s%   Description of a C++ language object.t	   parametert   labelt
   ParametersR  R  R	  t   argumentt   can_collapses   template parameters   Template Parameterst   tparamt
   exceptionst   Throwst   rolenames	   cpp:classt   throwsRh   t	   exceptiont   returnvaluet   Returnst   has_argt   returnsR\   s   tparam-line-specc         C   s    |  j  j j | d |  j d  S(   NR  (   t   state_machinet   reporterR|  t   lineno(   R   R  (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR  f  s    c         C   sQ  | j  d k s t  | j } | s* t  | j d  k	 s? t  | j d  k sT t  | j d  k si t  | j } | s~ t  | j d  k r d  S| j } | d  k r d  S| j  d k r d  S| j	 r d  S| j } | j
 | j d t d t } | d  k	 rd  S| j j   } | | _ t d | d | j d d  d d  d	 | d
 |  j j  d  S(   NR4  R?   R\  R]  R  R  R  RN  R   RD  (   R  R   R   R  R   R  RN  R  R   R.  Rg  R   R   R   R2  RC  R"  RD  (   R   R   R   RB  t
   parentDeclt   targetSymbolR   t	   declClone(    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyt   _add_enumerator_to_parentj  s6    						c         C   s  g  } xd t  d t d  D]O } y# | j d |  } | j |  Wq t k
 rh | t k  si t  q Xq Wt t |   } | d } | s t  t j	 d  j
 |  s |  j d t |  | f  n  | j j   j   j d  } t }	 | j j }
 xM |
 d  k	 rL|
 j } |
 j }
 | d  k r0q n  | j d k r t }	 Pq q W|	 s| } x: |  j j j D]) } | j |  ri| t |  } PqiqiW|  j |  } |  j d j d	 | | d
 d  f  n  | |  j j j  k r|  j j! d d } | | k r$| j j" | | <| d j |  n  | s0t  | d j |  xG | d D]; } | s^qLn  | |  j j j  k rL| d j |  qLqLW|  j# | d <|  j j j$ |  n  d  S(   Ni   R   i    s   ^[a-zA-Z0-9_]*$sM   Index id generation for C++ object "%s" failed, please report as bug (id=%s).R  R3   t   entriesR  R!   R  R  R  R  (%   RD  R6  R!  R
  R   R   Rt  t   reversedR  R  R  R  R   R   R  R   t   lstripR   R  R   R   R  R   R"  R  t   cpp_index_common_prefixt
   startswithR/  t   get_index_textt	   indexnodet   statet   documentR  t
   domaindataRD  R  t   note_explicit_target(   R   R   t   sigR  R  R}   R  t   newestIdR  t   isInConceptR   R  t   strippedNameR+  t	   indexTextR  (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyt   add_target_and_index  s\    
			&c         C   s   t     d  S(   N(   R   (   R   R  (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyt   parse_definition  s    c         C   s   | j  | d |  j |  d  S(   NR  (   R  R"  (   R   R  R   R=  (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR    s    c         C   s   |  j  j j j } d | j k rU | j d d } | | j d <| j   | j d <n  | j d } | j } | d  k	 r | j
 d k r |  j d d t | j     t   } | j |  } | | j d <g  St j |   S(	   Ns   cpp:parent_symbolR  t   root_symbols   cpp:parent_keyR  s4   C++ declarations inside functions are not supported.s    Parent function is s   cpp:last_symbol(   R[  R\  t   settingsR"  t	   temp_dataR]  R  t   ref_contextR   R   R  R  R   R  R<  R  R   t   run(   R   R"  t   rootRB  RP  R  R   (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyRj    s    		c   
      C   sZ  |  j  j d } t | |  |  j  j  } y |  j |  } | j   WnQ t k
 r } |  j | j  t	   } | j
 |  } | |  j  j d <t  n Xy/ | j | d |  j  j } | |  j  j d <Wn7 t k
 r} | j |  j  j d <|  j d |  n X| j d k r!|  j |  n  t |  j  }	 d |  j k |	 d <|  j | | |	  | S(   Ns   cpp:parent_symbols   cpp:last_symbolRD  s   Duplicate declaration, %sR4  s   tparam-line-spec(   R"  Rh  R  R  Re  R  R   R  R   R<  R  t
   ValueErrorR  RD  R   R   R  RS  t   dictR=  R  (
   R   R_  R  RB  R  R   R   R  R   R=  (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyt   handle_signature  s.    	
c         C   sl   |  j  j d } | s t  |  j  j d |  _ |  j  j d |  _ | |  j  j d <| j   |  j  j d <d  S(   Ns   cpp:last_symbols   cpp:parent_symbols   cpp:parent_key(   R"  Rh  R   t   oldParentSymbolRi  t   oldParentKeyR  (   R   t
   lastSymbol(    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyt   before_content  s    c         C   s*   |  j  |  j j d <|  j |  j j d <d  S(   Ns   cpp:parent_symbols   cpp:parent_key(   Ro  R"  Rh  Rp  Ri  (   R   (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyt   after_content"  s    (   R  R>  R	  RA  (   RC  s   template parameter(   RG  Rh   RH  (   RL  R\   (   R   R   R  R   R   R   R   R   t   doc_field_typesRm  R   t   option_specR   t   flagR  RS  Rd  Re  R  Rj  Rn  Rr  Rs  (    (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR=  R  s.   		*	<				$		t   CPPTypeObjectc           B   s   e  Z d    Z d   Z RS(   c         C   s   t  d  | S(   Ns   %s (C++ type)(   R   (   R   R  (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyRY  )  s    c         C   s   | j  d  S(   NR   (   R0  (   R   R  (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyRe  -  s    (   R   R   RY  Re  (    (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyRw  (  s   	t   CPPConceptObjectc           B   s   e  Z d    Z d   Z RS(   c         C   s   t  d  | S(   Ns   %s (C++ concept)(   R   (   R   R  (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyRY  3  s    c         C   s   | j  d  S(   NR3   (   R0  (   R   R  (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyRe  7  s    (   R   R   RY  Re  (    (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyRx  2  s   	t   CPPMemberObjectc           B   s   e  Z d    Z d   Z RS(   c         C   s   t  d  | S(   Ns   %s (C++ member)(   R   (   R   R  (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyRY  =  s    c         C   s   | j  d  S(   NR#  (   R0  (   R   R  (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyRe  A  s    (   R   R   RY  Re  (    (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyRy  <  s   	t   CPPFunctionObjectc           B   s   e  Z d    Z d   Z RS(   c         C   s   t  d  | S(   Ns   %s (C++ function)(   R   (   R   R  (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyRY  G  s    c         C   s   | j  d  S(   NR  (   R0  (   R   R  (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyRe  K  s    (   R   R   RY  Re  (    (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyRz  F  s   	t   CPPClassObjectc           B   s   e  Z d    Z d   Z RS(   c         C   s   t  d  | S(   Ns   %s (C++ class)(   R   (   R   R  (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyRY  Q  s    c         C   s   | j  d  S(   NR1   (   R0  (   R   R  (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyRe  U  s    (   R   R   RY  Re  (    (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR{  P  s   	t   CPPUnionObjectc           B   s   e  Z d    Z d   Z RS(   c         C   s   t  d  | S(   Ns   %s (C++ union)(   R   (   R   R  (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyRY  [  s    c         C   s   | j  d  S(   NRn   (   R0  (   R   R  (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyRe  _  s    (   R   R   RY  Re  (    (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR|  Z  s   	t   CPPEnumObjectc           B   s   e  Z d    Z d   Z RS(   c         C   s   t  d  | S(   Ns   %s (C++ enum)(   R   (   R   R  (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyRY  e  s    c         C   sp   | j  d  } |  j d k r* d  | _ nB |  j d k rE d | _ n' |  j d k r` d | _ n t sl t  | S(   NR?   s   enum-structRc   s
   enum-classR1   (   R0  t   objtypeR   R.  R   R   (   R   R  R   (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyRe  i  s    (   R   R   RY  Re  (    (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR}  d  s   	t   CPPEnumeratorObjectc           B   s   e  Z d    Z d   Z RS(   c         C   s   t  d  | S(   Ns   %s (C++ enumerator)(   R   (   R   R  (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyRY  y  s    c         C   s   | j  d  S(   NR4  (   R0  (   R   R  (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyRe  }  s    (   R   R   RY  Re  (    (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR  x  s   	t   CPPNamespaceObjectc           B   s>   e  Z d  Z e Z d Z d Z e Z i  Z	 d   Z
 d   Z RS(   sb   
    This directive is just to tell Sphinx that we're documenting stuff in
    namespace foo.
    i   i    c         C   s    |  j  j j | d |  j d  S(   NR  (   RM  RN  R|  RO  (   R   R  (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR    s    c         C   s  |  j  j d d } |  j d j   d
 k r< | } g  } n t |  j d |  |  j  } y | j   } | j   Wn; t k
 r } |  j	 | j
  t   } t | d   } n X| j | j | j  } | g } | |  j  j d <| |  j  j d <| j   |  j  j d	 <g  S(   NR  Rf  i    t   NULLR  RR   s   cpp:parent_symbols   cpp:namespace_stacks   cpp:parent_key(   R  R  RR   (   R"  R]  t	   argumentsR  R  R  R1  R  R   R  R   R<  R?  R   R  R  R  Rh  R  Ri  (   R   t
   rootSymbolR   t   stackR  R   R   R  (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyRj    s$    			(   R   R   R  R   t   has_contentt   required_argumentst   optional_argumentsR   t   final_argument_whitespaceRu  R  Rj  (    (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR    s   	t   CPPNamespacePushObjectc           B   s8   e  Z e Z d  Z d Z e Z i  Z d   Z	 d   Z
 RS(   i   i    c         C   s    |  j  j j | d |  j d  S(   NR  (   RM  RN  R|  RO  (   R   R  (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR    s    c         C   s=  |  j  d j   d
 k r g  St |  j  d |  |  j  } y | j   } | j   Wn; t k
 r } |  j | j  t	   } t
 | d   } n X|  j j j d d   } | s |  j j d d } n  | j | j | j  } |  j j j d g   } | j |  | |  j j d <| |  j j d <| j   |  j j d	 <g  S(   Ni    R  R  RR   s   cpp:parent_symbolR  Rf  s   cpp:namespace_stacks   cpp:parent_key(   R  R  RR   (   R  R  R  R  R1  R  R   R  R   R<  R?  R   R"  Rh  R<  R]  R  R  R  R
  R  Ri  (   R   R  R   R   R  t	   oldParentR   R  (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyRj    s(    	(   R   R   R   R  R  R  R   R  Ru  R  Rj  (    (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR    s   	t   CPPNamespacePopObjectc           B   s8   e  Z e Z d  Z d  Z e Z i  Z d   Z	 d   Z
 RS(   i    c         C   s    |  j  j j | d |  j d  S(   NR  (   RM  RN  R|  RO  (   R   R  (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR    s    c         C   s   |  j  j j d d   } | s1 t |  d k rG |  j d  g  } n
 | j   t |  d k rp | d } n |  j  j d d } | |  j  j d <| |  j  j d <| j   |  j  j	 d <g  S(	   Ns   cpp:namespace_stacki    s<   C++ namespace pop on empty stack. Defaulting to gobal scope.iR  Rf  s   cpp:parent_symbols   cpp:parent_key(
   R"  Rh  R<  R   R/  R  R+  R]  R  Ri  (   R   R  R   (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyRj    s    	
(   R   R   R   R  R  R  R   R  Ru  R  Rj  (    (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR    s   	t   CPPXRefRolec           B   s   e  Z d    Z RS(   c         C   s   | j  j | j  | s4 t j d t |   } n  | d d k r | rg | j d  rg | d  } n  | j d  r | d  } q n  | s | j d  } | d  d k r | d } | j d  } | d	 k r | | d
 } q q n  | | f S(   Ns   [anonymous]R  t   anys   ()iR   i   s   ::ii   (	   t
   attributest   updateRi  t   _anon_identifier_ret   subR2  R`  RV  t   rfind(   R   R"  t   refnodet   has_explicit_titlet   titlet   targett   dcolon(    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyt   process_link  s     
(   R   R   R  (    (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR    s   t   CPPExprRolec           B   s    e  Z d    Z i  g  d  Z RS(   c         C   s7   | r d |  _  t j |  _ n d |  _  t j |  _ d  S(   Ns   cpp-exprs	   cpp-texpr(   t
   class_typeR   t   literalt	   node_typeRI   (   R   t   asCode(    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR     s
    		c            sB  d t  f    f d     Y} t j |  j d d  }   j j j }	 t | |   |	 j  }
 d d |  j	 g } y |
 j
   } WnR t k
 r } |   j d | t | j  f  |  j | | d | g g  f SX|	 j j d	 d   } | d  k r|	 j d d
 } n  |  j d |  } | j | d |	 |  | g g  f S(   Nt   Warnerc              s   e  Z    f d    Z RS(   c            s     j  j | d  d  S(   NR  (   RN  R|  (   R   R  (   t   inlinerRO  (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR    s    (   R   R   R  (    (   R  RO  (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR    s   s   
R@  R2  R  s!   Unparseable C++ expression: %r
%st   classess   cpp:parent_symbolRf  R  (   RG  R   t   unescapeR  R\  Rg  R"  R  R  R  R:  R   R  R   R   R  Rh  R<  R   R]  R  (   R   RG  t   rawtextR  RO  R  R=  t   contentR  R"  R  R  R   R  RB  R  (    (   R  RO  s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyt   __call__  s"     (   R   R   R   R  (    (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR    s   	
t	   CPPDomainc           B   si  e  Z d  Z d Z d Z i e e d  d d d  d 6e e d  d d d  d 6e e d  d d d d  d 6e e d	  d	 d
  d	 6e e d  d d  d 6e e d  d d  d 6e e d  d d d  d 6e e d  d  d 6Z i e d 6e	 d 6e
 d 6e d	 6e d
 6e d 6e d 6e d 6e d 6e d 6e d 6e d 6e d 6e d 6Z i e   d 6e   d 6e   d 6e d e  d 6e   d	 6e   d
 6e   d 6e   d 6e   d 6e   d 6e d e  d 6e d e  d 6Z i e d# d# d# d# d# d#  d 6i  d 6Z d   Z d   Z d   Z d   Z e d  Z  d   Z! d    Z" d!   Z# d"   Z$ RS($   s   C++ language domain.R  s   C++R1   R   RL  Rn   R  t   funcR#  t   varR3   R?   R4  s   enum-structs
   enum-classRM   s   namespace-pushs   namespace-popR  t
   fix_parensR  R7  t   texprRf  R  c         C   s   t  j r6 d | f GHd GH|  j d j d  GHd GHn  |  j d } | j |  t  j r d GH|  j d j d  GHd GHd | f GHn  xD t |  j d	 j    D]) \ } } | | k r |  j d	 | =q q Wd  S(
   Ns
   clear_doc:s   	before:Rf  i   s   	before ends   	after:s
   	after ends   clear_doc end:R  (   RC  R  R'  R   RR  Rt  t   items(   R   RD  R  R  t   nDocname(    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyRR  ^  s    		&c         C   s;   t  j r7 d | f GH|  j d j d  GHd | f GHn  d  S(   Ns   process_doc:Rf  i    s   process_doc end:(   RC  R  R'  R   (   R   R"  RD  R\  (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyt   process_docr  s    	c         C   s   | j  j |  j j  d  S(   N(   R  R  R"  Ri  (   R   R  (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyt   process_field_xrefy  s    c         C   s   t  j rQ d GHd GH|  j d j d  GHd GHd GH| d j d  GHd GHd GHn  |  j d j | d | |  j  |  j d	 } xy | d	 j   D]g \ } } | | k r | | k r t d
  } | | | | f } t j	 | d | q | | | <q q Wd  S(   Ns   merge_domaindata:s   	self:Rf  i   s	   	self ends   	other:s
   	other ends   merge_domaindata endR  sI   Duplicate declaration, also defined in '%s'.
Name of declaration is '%s'.Rz  (
   RC  R  R'  R   R}  R"  R  R   R{  R|  (   R   R~  t	   otherdatat   ourNamesR  RD  R  (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyt   merge_domaindata}  s&    	c	   !   
      s  d t  f   f d     Y}	 |	     d k s@  d k rM  d 7 n  t    j  }
 y  |
 j   \ } } |
 j   Wn^ t k
 r }     f d   } | |  \ } }  j d | t | j  f  d SX j
 d d   }  j d	 } | rS| j |  } | sDd
  f GHd | f GH| j d  GHn  | sYt  n | } | r| } | j } | j r| j j } n g  } | j | |  d t d t d t } n3 | } | j } | j |  d t d t d t } | d  k s| j d  k r;t |  } | j d  s+| d k r7t    n  d S j d  rW d  n   d k rld  n  | j j       f d   } |   s j d  | j j | j   f  n  | j } | r| j   } | j   j d  } n | j   } | j } | st   d k r| j d  j   } d }   j
 d t   r| j d k r| r j j! r d k r|  d 7}  n   j j! r d k r| j" d  r|  d 7}  n   d k s d k r| j" d  r| j" d  r|  d 7}  qq j j! rs d k r5| j" d  r5|  d 7}  q d k r| j" d  rp| j" d  rp| d  } qpqq| j" d  r|  d 7}  qn  |  d k r| d |  7} n  | t# j$ |  7} n  t% | | | | j&   | |  | j f S(    NR  c              s   e  Z    f d    Z RS(   c            s      r t  j | d  n  d  S(   NRz  (   R{  R|  (   R   R  (   t   emitWarningst   node(    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR    s    (   R   R   R  (    (   R  R  (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR    s   R  R  s   ()c            s~    d k r"  d k r"  |  f St   d     j  } y | j   | j   Wn t k
 rs }  d  | f SX |  f S(   NR  R  i(   R  R  R7  R  R   (   R   t   parser2R6  (   R"  R  RG  t   warner(    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyt   findWarning  s    

s&   Unparseable C++ cross-reference: %r
%ss   cpp:parent_keyRf  s   Target: s   ParentKey: i   R[  R\  R]  s   std::R}  s   cpp:i   R  c             sj    d k s  d k r t  S  d k r, t  S j   }  |  rK   |  k Sd    f GHt sf t  d  S(   NR  RL  RM  s   Type is %s, declType is %s(   R   t   objtypes_for_roleR   R   (   t   objtypes(   t   declTypR   RG  (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyt	   checkType  s    
s   cpp:%s targets a %s (%s).R  RL  i    t   refexplicits
   operator()RS   i(   NN(   NN('   RG  R  R  R7  R  R   R  R   R   R   R<  R'  R  R   R   R  R  R  R  R   R  R  R   RX  R
   R  R  R   RV  RD  R+  t   astextR   t   add_function_parenthesesR`  R   R  R   R7  (!   R   R"  t   fromdocnamet   builderRG  R  R  t   contnodeR  R  R  R   t   isShorthandR   R  R   R  t	   parentKeyR  RB  t   nsR  Rh  R   R  t   txtNameR  R   t   fullNestedNamet   displayNameRD  R  t   addParen(    (   R  R  R"  R  R   R  RG  R  s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyt   _resolve_xref_inner  s    						
				"c         C   s#   |  j  | | | | | | |  d S(   Ni    (   R  (   R   R"  R  R  RG  R  R  R  (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyt   resolve_xref"  s    c      
   C   sm   |  j  | | | d | | | d t \ } } | ri | d k rL d | f g Sd |  j |  | f g Sn  g  S(   NR  R  RM  s   cpp:templateParams   cpp:(   R  R   t   role_for_objtype(   R   R"  R  R  R  R  R  R~  (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyt   resolve_any_xref(  s    c   	      c   s   |  j  d } x | j   D] } | j d  k r5 q n  | j sD t  | j   } t |  j d  } | j	   j d  } | j j
 } | j } | j j   } | | | | | d f Vq Wd  S(   NRf  R  i   (   R'  RU  R   R   RD  R   R  R   RV  R   R  R7  (	   R   R  R   R  R  t   dispnameR  RD  R`  (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyt   get_objects5  s    	c         C   s   | j  d d   } | d  k r" d  S| j  d d   } | d  k sR t |  d k rV d  S|  j d } | j |  } | j   } d j t |  | g  S(   NR  s   cpp:parent_keyi    Rf  s   ::(   R<  R   R/  R'  R  R  R  R   (   R   R  R  R  R  RB  t
   parentName(    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyt   get_full_qualified_nameD  s    N(%   R   R   R  R  R?  R	   R   t   object_typesR{  R|  Rz  Ry  Rw  Rx  R}  R  R  R  R  R   R  R   R  R   t   rolesRC  R   t   initial_dataRR  R  R  R  R  R  R  R  R  (    (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyR  ,  sh   










							c         C   sf   |  j  t  |  j d g  d  |  j d g  d  |  j d g  d  i d d 6d d 6t d	 6t d
 6S(   NRW  R"  R  R  t   builtinR   i   t   env_versiont   parallel_read_safet   parallel_write_safe(   t
   add_domainR  t   add_config_valueR   (   t   app(    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyt   setupS  s    (   R  R  t   copyR    t   docutilsR   R   t   docutils.parsers.rstR   t   sixR   R   t   sphinxR   t   sphinx.directivesR   t   sphinx.domainsR   R	   t   sphinx.environmentR
   t   sphinx.localeR   R   t   sphinx.rolesR   t   sphinx.utilR   t   sphinx.util.docfieldsR   R   t   sphinx.util.docutilsR   t   sphinx.util.nodesR   t   sphinx.util.pycompatR   R   t   typingR   R   R   R   R   R   R   R   R   t   sphinx.applicationR   t   sphinx.buildersR   t   sphinx.configR   R    t	   getLoggerR   R{  R  R  R  R  R  t   _integer_suffix_reR  R  R  R  R  t   SR  R  R  R  R  R6  R   R5  R  R  R  R  R?  RJ  R,  R  R  R  Ra  R  R   R   R   R   R  R  R  R  R  R  R  R#  R&  R(  R*  R3  R4  R6  R8  RA  RE  RF  RI  RK  RO  RQ  RS  RU  RW  R^  R`  Rc  Rh  Rj  Rm  Rn  Ro  Rr  Rs  Rv  Rx  Ry  R  R  R  R  R  R  R  R  R  R  R  R  R  R  R  R  R  R  R  R  R  R  R  R  R  R   R  R
  R  R  R  R  R  R  R"  R$  R%  R&  R)  R,  R-  R0  R1  R?  RG  R@  RC  R  R<  R=  Rw  Rx  Ry  Rz  R{  R|  R}  R  R  R  R  R  R  R  R  (    (    (    s1   lib/python2.7/site-packages/sphinx/domains/cpp.pyt   <module>
   s  @						





			

)	
=#"J !F9&)*-293'r!oSO kF<aDWi'!#)#s
         `	






'#% (