ó
¡CóSc           @   sH   d  d l  Z  d  d l Z d d l m Z d f  d „  ƒ  YZ d „  Z d S(   iÿÿÿÿNi   (   t	   dbustypest   DBusXMLParserc           B   sƒ   e  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 d „  Z RS(   t   topt   nodet	   interfacet   methodt   signalt   propertyt   argt
   annotationt   ignoredc         C   s§   t  j j j ƒ  |  _ |  j |  j _ |  j |  j _ |  j	 |  j _
 |  j |  j _ g  |  _ d  |  _ t j |  _ g  |  _ d  |  _ g  |  _ d |  _ |  j j | ƒ d  S(   Nt    (   t   xmlt   parserst   expatt   ParserCreatet   _parsert   handle_commentt   CommentHandlert   handle_char_datat   CharacterDataHandlert   handle_start_elementt   StartElementHandlert   handle_end_elementt   EndElementHandlert   parsed_interfacest   Nonet   _cur_objectR   t	   STATE_TOPt   statet   state_stackt   _cur_object_stackt   doc_comment_last_symbolt   Parse(   t   selft   xml_data(    (    s%   /usr/share/glib-2.0/codegen/parser.pyt   __init__(   s    						t   begint   paramst   bodyt   skipc         C   s¨  t  j } | j d ƒ } d } d } t } i  } x4| D],} | }	 | j ƒ  } | t  j k r t | ƒ d k rc| j d ƒ }
 |
 d k rÉ | j d ƒ r½ | d t | ƒ d !} t  j } qt  j	 } q| d |
 !} | |
 d j
 ƒ  } t | ƒ d k r| d	 | d
 7} n  t  j } qcq7 | t  j k rü| j d ƒ r´| j d ƒ }
 |
 d k rŒt  j } | s{| d	 7} t } n  | |	 d 7} qù| d |
 !} | |
 d } | | | <qct  j } t | ƒ d k rc| sè| d	 7} t } n  | |	 d 7} qcq7 | t  j k r7 t | ƒ d k rG| s6| d	 7} t } n  | |	 d 7} qc| rc| d
 7} t } qcq7 q7 W| rz| d
 7} n  | d k r¤| |  _ | |  _ | |  _ n  d  S(   Ns   
R   i    s   : iÿÿÿÿt   :i   i   s   <para>s   </para>t   @(   R   t   COMMENT_STATE_BEGINt   splitt   Falset   lstript   lent   findt   endswitht   COMMENT_STATE_PARAMSt   COMMENT_STATE_SKIPt   stript
   startswitht   COMMENT_STATE_BODYt   TrueR    t   doc_comment_paramst   doc_comment_body(   R"   t   datat   comment_statet   linest   symbolR'   t   in_paraR&   t   linet	   orig_linet   colon_indext   rest_of_linet   paramt   docs(    (    s%   /usr/share/glib-2.0/codegen/parser.pyR   ?   sn    		
		
	
	
		c         C   s   d  S(   N(    (   R"   R:   (    (    s%   /usr/share/glib-2.0/codegen/parser.pyR   ~   s    c         C   s1  |  j  } |  j } |  j  t j k r3 t j |  _  nÚ|  j  t j k rr | t j k rc t j |  _  qt j |  _  n›|  j  t j k r²| t j k rÎ t j |  _  t j | d ƒ } | |  _ |  j	 j
 | ƒ n` | t j k r"t j |  _  t j | d | d ƒ } |  j j j
 | ƒ | |  _ n t j |  _  d | k r|  j | d k r|  j |  j _ d |  j k r‡|  j d } | |  j _ n  d |  j k r¯|  j d |  j _ q¯qn[|  j  t j k rr| t j k rt j |  _  t j | d ƒ } |  j j j
 | ƒ | |  _ n| t j k r^t j |  _  t j | d ƒ }	 |  j j j
 |	 ƒ |	 |  _ n» | t j k r¹t j |  _  t j | d | d | d ƒ }
 |  j j j
 |
 ƒ |
 |  _ n` | t j k rt j |  _  t j | d | d ƒ } |  j j j
 | ƒ | |  _ n t j |  _  d | k r|  j | d k r|  j |  j _ d |  j k ro|  j d |  j _ qoqn›|  j  t j k r)| t j k r>t j |  _  d  } d | k r¾| d } n  t j | | d ƒ } | d } | d k r |  j j  j
 | ƒ n2 | d	 k r"|  j j! j
 | ƒ n t" d
 | ƒ ‚ | |  _ n` | t j k r’t j |  _  t j | d | d ƒ } |  j j j
 | ƒ | |  _ n t j |  _  |  j | j# k rd | k r&| d |  j k r&|  j | d } | d  k rû| |  j _ n  d |  j k r#|  j d |  j _ q#q&qnä|  j  t j k r•| t j k rªt j |  _  d  } d | k ru| d } n  t j | | d ƒ } |  j j$ j
 | ƒ | |  _ n` | t j k rþt j |  _  t j | d | d ƒ } |  j j j
 | ƒ | |  _ n t j |  _  |  j | j# k rd | k r’| d |  j k r’|  j | d } | d  k rg| |  j _ n  d |  j k r|  j d |  j _ qq’qnx|  j  t j k r
| t j k rût j |  _  t j | d | d ƒ } |  j j j
 | ƒ | |  _ qt j |  _  n|  j  t j k r| t j k rpt j |  _  t j | d | d ƒ } |  j j j
 | ƒ | |  _ qt j |  _  nŽ |  j  t j k rô| t j k råt j |  _  t j | d | d ƒ } |  j j j
 | ƒ | |  _ qt j |  _  n t" d |  j  | f ƒ ‚ |  j% j
 | ƒ |  j& j
 | ƒ d  S(   Nt   namet   valuet   short_descriptiont   sincet   typet   accesst	   directiont   int   outs   Invalid direction "%s"s:   Unhandled state "%s" while entering element with name "%s"('   R   R   R   t   STATE_IGNOREDR   t
   STATE_NODEt   STATE_INTERFACER    t	   InterfaceR   t   appendt   STATE_ANNOTATIONt
   Annotationt   annotationsR    R9   t
   doc_stringR8   t   doc_string_briefRH   t   STATE_METHODt   Methodt   methodst   STATE_SIGNALt   Signalt   signalst   STATE_PROPERTYt   Propertyt
   propertiest	   STATE_ARGR   t   Argt   in_argst   out_argst   RuntimeErrorRE   t   argsR   R   (   R"   RE   t   attrst	   old_statet   old_cur_objectt   ifacet   annoRG   R   R   t   propt   arg_nameR   RK   RV   (    (    s%   /usr/share/glib-2.0/codegen/parser.pyR   ‚   sü    			!
c         C   s(   |  j  j ƒ  |  _ |  j j ƒ  |  _ d  S(   N(   R   t   popR   R   R   (   R"   RE   (    (    s%   /usr/share/glib-2.0/codegen/parser.pyR     s    (   t   __name__t
   __module__R   RO   RP   RX   R[   R^   Ra   RS   RN   R$   R+   R2   R6   R3   R   R   R   R   (    (    (    s%   /usr/share/glib-2.0/codegen/parser.pyR      s$   		?		šc         C   s   t  |  ƒ } | j S(   N(   R   R   (   R#   t   parser(    (    s%   /usr/share/glib-2.0/codegen/parser.pyt   parse_dbus_xml   s    (   t   syst   xml.parsers.expatR   R   R    R   Rr   (    (    (    s%   /usr/share/glib-2.0/codegen/parser.pyt   <module>   s
   ÿ 