
    BWc2                     F    d dl ZddlmZ ddlmZ  G d d          Zd ZdS )    N   )	dbustypes)print_errorc                   b    e Zd ZdZ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d ZdS )DBusXMLParsertopnode	interfacemethodsignalpropertyarg
annotationignoredTc                    t           j        j                                        | _        | j        | j        _        | j        | j        _        | j	        | j        _
        | j        | j        _        g | _        d | _        t          j        | _        g | _        d | _        g | _        d| _        || _        | j                            |           d S )N )xmlparsersexpatParserCreate_parserhandle_commentCommentHandlerhandle_char_dataCharacterDataHandlerhandle_start_elementStartElementHandlerhandle_end_elementEndElementHandlerparsed_interfaces_cur_objectr   	STATE_TOPstatestate_stack_cur_object_stackdoc_comment_last_symbol_h_type_implies_unix_fdParse)selfxml_datah_type_implies_unix_fds       share/glib-2.0/codegen/parser.py__init__zDBusXMLParser.__init__'   s    {(5577&*&9#,0,A)+/+D()-)@&!#",
!#')$'=$8$$$$$    beginparamsbodyskipc                 \   t           j        }|                    d          }d}d}d}i }|D ]}|}	|                                }|t           j        k    rt	          |          dk    r|                    d          }
|
dk    rI|                    d          r'|dt	          |          dz
           }t           j        }t           j        }|d|
         }||
d	z   d          	                                }t	          |          dk    r|| dz  }t           j        }|t           j        k    r|
                    d
          rX|                    d          }
|
dk    rt           j        }|s|dz  }d}||	 dz  }P|d|
         }||
d	z   d          }|||<   nt           j        }t	          |          dk    r|s|dz  }d}||	dz   z  }|t           j        k    r*t	          |          dk    r|sd}||	dz   z  }|r|dz  }d}|r|dz  }|dk    r|| _        || _        || _        d S d S )N
r   Fr   z: :r      @T)r   COMMENT_STATE_BEGINsplitlstriplenfindendswithCOMMENT_STATE_PARAMSCOMMENT_STATE_SKIPstrip
startswithCOMMENT_STATE_BODYr&   doc_comment_paramsdoc_comment_body)r)   datacomment_statelinessymbolr1   in_parar0   line	orig_linecolon_indexrest_of_lineparamdocss                 r,   r   zDBusXMLParser.handle_commentA   s   %9

4   .	( .	(DI;;==D AA +(t99q= K"&))D//K"b( K==-- M%)!c$ii!m*;%<F,9,NMM,9,LMM!%am!4'+K!O,=,='>'D'D'F'F|,,q0 8 |$7$7$77D(5(J-"DD (??3'' 1"&))D//K"b( 	-(5(H& + DLD&*G9 0 0 00 $Q{] 3#K!O$5$56(,u$1$DM4yy1} 1& + DLD&*G	D 00-"BB (t99q= (" '"&I,,DD ("' 	DLDR< 	)+1D(&,D#$(D!!!	) 	)r.   c                     d S N )r)   rF   s     r,   r   zDBusXMLParser.handle_char_data   s    r.   c                    | j         }| j        }| j         t          j        k    rt          j        | _         	n| j         t          j        k    r6|t          j        k    rt          j        | _         nt          j        | _         n| j         t          j        k    rS|t          j        k    rMt          j        | _         t          j        |d                   }|| _        | j	        
                    |           nz|t          j        k    rYt          j        | _         t          j        |d         |d                   }| j        j        
                    |           || _        nt          j        | _         d|v rv| j        |d         k    re| j        | j        _        d| j        v r| j        d         }|| j        _        d| j        v r)| j        d                                         | j        _        nW| j         t          j        k    r|t          j        k    rZt          j        | _         t          j        |d         | j                  }| j        j        
                    |           || _        nL|t          j        k    rRt          j        | _         t          j        |d                   }	| j        j        
                    |	           |	| _        n|t          j        k    r`t          j        | _         t          j        |d         |d         |d                   }
| j        j        
                    |
           |
| _        nz|t          j        k    rYt          j        | _         t          j        |d         |d                   }| j        j        
                    |           || _        nt          j        | _         d|v rT| j        |d         k    rC| j        | j        _        d| j        v r)| j        d                                         | j        _        n1| j         t          j        k    r|t          j        k    rt          j        | _         d }d|v r|d         }t          j         ||d                   }|!                    dd	          }|d	k    r | j        j"        
                    |           nH|d
k    r | j        j#        
                    |           n"tI          d%                    |                     || _        nz|t          j        k    rYt          j        | _         t          j        |d         |d                   }| j        j        
                    |           || _        nt          j        | _         | j        |j&        k    rfd|v rb|d         | j        v rS| j        |d                  }||| j        _        d| j        v r)| j        d                                         | j        _        nS| j         t          j        k    rc|t          j        k    rat          j        | _         d }d|v r|d         }t          j         ||d                   }| j        j'        
                    |           || _        nz|t          j        k    rYt          j        | _         t          j        |d         |d                   }| j        j        
                    |           || _        nt          j        | _         | j        |j&        k    rfd|v rb|d         | j        v rS| j        |d                  }||| j        _        d| j        v r)| j        d                                         | j        _        n| j         t          j        k    r}|t          j        k    rZt          j        | _         t          j        |d         |d                   }| j        j        
                    |           || _        n[t          j        | _         nH| j         t          j        k    r{|t          j        k    rYt          j        | _         t          j        |d         |d                   }| j        j        
                    |           || _        nt          j        | _         n| j         t          j        k    r{|t          j        k    rYt          j        | _         t          j        |d         |d                   }| j        j        
                    |           || _        n:t          j        | _         n(tI          d%                    | j         |                     | j(        
                    |           | j)        
                    |           d S )Nnamevalueshort_descriptionsince)r+   typeaccess	directioninoutzInvalid direction "{}"z:Unhandled state "{}" while entering element with name "{}")*r#   r!   r   STATE_IGNOREDr"   
STATE_NODESTATE_INTERFACEr   	Interfacer    appendSTATE_ANNOTATION
Annotationannotationsr&   rE   
doc_stringrD   doc_string_briefrA   rX   STATE_METHODMethodr'   methodsSTATE_SIGNALSignalsignalsSTATE_PROPERTYProperty
properties	STATE_ARGArggetin_argsout_argsr   formatrU   argsr$   r%   )r)   rU   attrs	old_stateold_cur_objectifaceannorW   r   r   proparg_namer   r[   rf   s                  r,   r   z"DBusXMLParser.handle_start_element   s   J	):44 \	&4DJJZ=22 Z	}// 9*5

*8

Z=33 U	}44 9*:
!+E&M::#( &--e444477 9*;
 +E&M5>JJ ,33D999#'  *8
  V4#?5=#P V.2.C +&$*AA J(,(?@S(T%8ID$5d55 V-1-DW-M-S-S-U-UD$*Z=88 ~	}11 9*7
")&M$:V    (//777#)  33 9*7
")%-88 (//777#)  55 9*9
 )%-vhXX +224888#'  77 9*;
 +E&M5>JJ ,33D999#'  *8
  V4#?5=#P V.2.C +d55 V-1-DW-M-S-S-U-UD$*Z=55 ^	}.. 9*4
U? -$V}HmHeFm<<!IIk488	$ L$,33C8888%' L$-44S9999 8 ? ?	 J JKKK#&  77 9*;
 +E&M5>JJ ,33D999#'  *8
 +~/BB "U? "uV}8O'O "!%!8v!GJ! A6@(3$"99 "151H#2%'' (. Z=55 <	}.. 9*4
U? -$V}HmHeFm<< %,,S111#&  77 9*;
 +E&M5>JJ ,33D999#'  *8
 +~/BB "U? "uV}8O'O "!%!8v!GJ! A6@(3$"99 "151H#2%'' (. Z=77  	}55 9*;
 +E&M5>JJ ,33D999#'  *8

Z=22 	}55 9*;
 +E&M5>JJ ,33D999#'  *8

Z=99 	}55 9*;
 +E&M5>JJ ,33D999#'  *8

 LSSJ    		***%%n55555r.   c                 ~    | j                                         | _        | j                                        | _        d S rR   )r$   popr#   r%   r!   )r)   rU   s     r,   r   z DBusXMLParser.handle_end_element'  s5    %))++
15577r.   N)T)__name__
__module____qualname__r"   r_   r`   rh   rk   rn   rq   rc   r^   r-   r9   r?   rC   r@   r   r   r   r   rS   r.   r,   r   r      s        IJ!OLLNI#M% % % %* "#<) <) <)|  b6 b6 b6H8 8 8 8 8r.   r   c                 0    t          | |          }|j        S rR   )r   r    )r*   r+   parsers      r,   parse_dbus_xmlr   ,  s    8%;<<F##r.   )xml.parsers.expatr   r   r   utilsr   r   r   rS   r.   r,   <module>r      s   ,                M8 M8 M8 M8 M8 M8 M8 M8`$ $ $ $ $r.   