ó
Þw¶Vc           @   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   s9  |  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nc|  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 r1| t j k rFt j |  _  d  } d | k r¾| d } n  t j | | d ƒ } | 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 r}| 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 ro| |  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 rx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   gett   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   Rs   (    (    (    s%   /usr/share/glib-2.0/codegen/parser.pyt   <module>   s
   ÿ 