
    @;fc2                     F    d dl Zd dlZddlmZ ddlmZ  G d d      Zd Zy)    N   )	dbustypes)print_errorc                   `    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y)DBusXMLParsertopnode	interfacemethodsignalpropertyarg
annotationignoredc                    t         j                  j                  j                         | _        | j
                  | j                  _        | j                  | j                  _        | j                  | j                  _
        | j                  | j                  _        g | _        d | _        t        j                   | _        g | _        d | _        g | _        d| _        || _        | j                  j-                  |       y )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&*&9&9#,0,A,A)+/+D+D()-)@)@&!#",,
!#')$'=$8$    beginparamsbodyskipc                    t         j                  }t        j                  |      j	                  d      }d}d}d}i }|D ]  }|t         j                  k(  rt        |      dkD  s&|j                  d      }	|	dk(  rD|j                  d      r"|dt        |      dz
   }t         j                  }ot         j                  }|d|	 }||	d	z   d  j                         }
t        |
      dkD  r||
 dz  }t         j                  }|t         j                  k(  r|j                  d
      rM|j                  d      }	|	dk(  r#t         j                  }|s|dz  }d}|| dz  }|d|	 }||	d	z   d  }|||<   3t         j                  }t        |      dkD  sS|s|dz  }d}||dz   z  }f|t         j                  k(  s{t        |      dkD  r|sd}||dz   z  }|s|dz  }d} |r|dz  }|dk7  r|| _        || _        || _        y y )N
r   Fr   z: :r      @T)r   COMMENT_STATE_BEGINtextwrapdedentsplit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colon_indexrest_of_lineparamdocss                r,   r   zDBusXMLParser.handle_commentB   s&   %99%++D1 ,	(D A AAt9q="&))D/K"b(==-%)!c$i!m%<F,9,N,NM,9,L,LM!%a!4'+K!O,='>'D'D'F|,q0 |nB$77D(5(J(J-"D"DD??3'"&))D/K"b((5(H(H& DLD&*G4&+ $Q{ 3#K!O$56(,u$1$D$DM4y1}& DLD&*Gt+-"B"BBt9q=""&D4K'D"'Y,	(Z DLDR<+1D(&,D#$(D! r.   c                      y N )r)   rG   s     r,   r   zDBusXMLParser.handle_char_data~   s    r.   c                    | j                   }| j                  }| j                   t        j                  k(  rt        j                  | _         
nC| j                   t        j                  k(  rA|t        j
                  k(  rt        j
                  | _         	nt        j                  | _         	n| j                   t        j
                  k(  r|t        j                  k(  rPt        j                  | _         t        j                  |d         }|| _        | j                  j                  |       n|t        j                  k(  r^t        j                  | _         t        j                  |d   |d         }| j                  j                  j                  |       || _        nt        j                  | _         d|v r| j                  |d   k(  r| j                  | j                  _        d| j"                  v r | j"                  d   }|| j                  _        d| j"                  v rn| j"                  d   j'                         | j                  _        n@| j                   t        j                  k(  rR|t        j*                  k(  rgt        j*                  | _         t        j,                  |d   | j.                        }| j                  j0                  j                  |       || _        nh|t        j2                  k(  rZt        j2                  | _         t        j4                  |d         }	| j                  j6                  j                  |	       |	| _        n|t        j8                  k(  rbt        j8                  | _         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|v r;| j                  |d   k(  r(| j                  | j                  _        d| j"                  v r| j"                  d   j'                         | j                  _        n| j                   t        j*                  k(  r|t        j>                  k(  rt        j>                  | _         d }d|v r|d   }t        j@                  ||d         }|jC                  dd	      }|d	k(  r&| j                  jD                  j                  |       nE|d
k(  r&| j                  jF                  j                  |       ntI        djK                  |             || _        n|t        j                  k(  r^t        j                  | _         t        j                  |d   |d         }| j                  j                  j                  |       || _        nt        j                  | _         | j                  |jL                  k(  r<d|v r7|d   | j"                  v r%| j"                  |d      }||| j                  _        d| j"                  v r| j"                  d   j'                         | j                  _        n| j                   t        j2                  k(  r|t        j>                  k(  rft        j>                  | _         d }d|v r|d   }t        j@                  ||d         }| j                  jN                  j                  |       || _        n|t        j                  k(  r^t        j                  | _         t        j                  |d   |d         }| j                  j                  j                  |       || _        nt        j                  | _         | j                  |jL                  k(  rd|v r|d   | j"                  v ru| j"                  |d      }||| j                  _        d| j"                  v rA| j"                  d   j'                         | j                  _        n| j                   t        j8                  k(  r|t        j                  k(  r_t        j                  | _         t        j                  |d   |d         }| j                  j                  j                  |       || _        nt        j                  | _         nm| j                   t        j>                  k(  r|t        j                  k(  r^t        j                  | _         t        j                  |d   |d         }| j                  j                  j                  |       || _        nt        j                  | _         n| j                   t        j                  k(  r|t        j                  k(  r^t        j                  | _         t        j                  |d   |d         }| j                  j                  j                  |       || _        n;t        j                  | _         n%tI        djK                  | j                   |             | jP                  j                  |       | jR                  j                  |       y )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&   rF   
doc_stringrE   doc_string_briefrB   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   sg   JJ	))::444&44DJZZ=222}///*55
*88
ZZ=333}444*::
!++E&M:#( &&--e4777*;;
 ++E&M5>J  ,,33D9#' *88
 4#?#?5=#P.2.C.C  +&$*A*AA(,(?(?@S(T%8ID$$5d555-1-D-DW-M-S-S-UD$$*ZZ=888}111*77
"))&M$:V:V   ((//7#) 333*77
"))%-8  ((//7#) 555*99
 ))%-vhX  ++2248#' 777*;;
 ++E&M5>J  ,,33D9#' *88
 4#?#?5=#P.2.C.C  +d555-1-D-DW-M-S-S-UD$$*ZZ=555}...*44
U?$V}HmmHeFm<!IIk48	$$$,,33C8%'$$--44S9 8 ? ?	 JK#& 777*;;
 ++E&M5>J  ,,33D9#' *88
 ++~/B/BBU?uV}8O8O'O!%!8!8v!GJ!-6@((3$"9"99151H1H#2%' ((. ZZ=555}...*44
U?$V}HmmHeFm<  %%,,S1#& 777*;;
 ++E&M5>J  ,,33D9#' *88
 ++~/B/BBU?uV}8O8O'O!%!8!8v!GJ!-6@((3$"9"99151H1H#2%' ((. ZZ=777}555*;;
 ++E&M5>J  ,,33D9#' *88
ZZ=222}555*;;
 ++E&M5>J  ,,33D9#' *88
ZZ=999}555*;;
 ++E&M5>J  ,,33D9#' *88
 LSSJJ 		*%%n5r.   c                     | j                   j                         | _        | j                  j                         | _        y rR   )r$   popr#   r%   r!   )r)   rU   s     r,   r   z DBusXMLParser.handle_end_element&  s/    %%))+
11557r.   N)T)__name__
__module____qualname__r"   r_   r`   rh   rk   rn   rq   rc   r^   r-   r9   r@   rD   rA   r   r   r   r   rS   r.   r,   r   r      sf    IJ!OLLNI#M%* "#:)xb6H8r.   r   c                 2    t        | |      }|j                  S rR   )r   r    )r*   r+   parsers      r,   parse_dbus_xmlr   +  s    8%;<F###r.   )	xml.parsers.expatr   r:   r   r   utilsr   r   r   rS   r.   r,   <module>r      s%   ,    K8 K8\$r.   