B []1@sBddlZddlZddlmZddlmZGdddZddZdS) N) dbustypes) print_errorc@sheZdZdZdZdZdZdZdZdZ dZ d Z d d Z d Z d ZdZdZddZddZddZddZdS) DBusXMLParsertopZnodeZ interfacemethodsignalpropertyargZ annotationZignoredcCsrtjj|_|j|j_|j|j_|j |j_ |j |j_ g|_ d|_tj|_g|_d|_g|_d|_|j|dS)N)xmlZparsersZexpatZ ParserCreateZ_parserhandle_commentZCommentHandlerhandle_char_dataZCharacterDataHandlerhandle_start_elementZStartElementHandlerhandle_end_elementZEndElementHandlerparsed_interfaces _cur_objectr STATE_TOPstate state_stack_cur_object_stackdoc_comment_last_symbolZParse)selfxml_datar%/usr/share/glib-2.0/codegen/parser.py__init__'s    zDBusXMLParser.__init__ZbeginparamsbodyskipcCstj}|d}d}d}d}i}x|D]}|} |}|tjkrt|dkr|d} | dkr|dr|dt|d}tj}qtj}nB|d| }|| d d } t| dkr|d | d 7}tj}q(|tjkr| d rL|d} | dkr&tj }|s|d 7}d }|| d7}n$|d| } || d d} | || <n2tj }t|dkr|sr|d 7}d }|| d7}q(|tj kr(t|dkr|s|d 7}d }|| d7}q(|r(|d 7}d}q(W|r|d 7}|dkr||_ ||_ ||_dS)N r Frz: :rzz@T)rCOMMENT_STATE_BEGINsplitlstriplenfindendswithCOMMENT_STATE_PARAMSCOMMENT_STATE_SKIPstrip startswithCOMMENT_STATE_BODYrdoc_comment_paramsdoc_comment_body)rdataZ comment_statelinesZsymbolrZin_pararlineZ orig_lineZ colon_indexZ rest_of_lineZparamZdocsrrrr >sn               zDBusXMLParser.handle_commentcCsdS)Nr)rr2rrrr}szDBusXMLParser.handle_char_datacCs|j}|j}|jtjkr$tj|_n|jtjkrP|tjkrDtj|_ntj|_n|jtjkr:|tjkrtj|_t|d}||_|j |nD|tj krtj |_t |d|d}|jj |||_ntj|_d|kr|j|dkr|j|j_d|jkr|jd}||j_d|jkr|jd|j_n|jtjkr|tjkrtj|_t|d}|jj |||_n|tjkrtj|_t|d} |jj | | |_n|tjkrtj|_t|d|d|d} |jj | | |_nF|tj kr:tj |_t |d|d}|jj |||_ntj|_d|kr|j|dkr|j|j_d|jkr|jd|j_np|jtjkr|tjkr&tj|_d} d|kr|d} t| |d} | dd} | dkr|jj! | n(| d kr|jj" | nt#d $| | |_nF|tj krdtj |_t |d|d}|jj |||_ntj|_|j|j%krd|kr|d|jkr|j|d}|dkr||j_d|jkr|jd|j_n"|jtjkr|tjkr4tj|_d} d|kr|d} t| |d} |jj& | | |_nF|tj krrtj |_t |d|d}|jj |||_ntj|_|j|j%krd|kr|d|jkr|j|d}|dkr||j_d|jkr|jd|j_n|jtjkr:|tj kr0tj |_t |d|d}|jj |||_ntj|_n|jtjkr|tj krtj |_t |d|d}|jj |||_ntj|_nh|jtj kr|tj krtj |_t |d|d}|jj |||_ntj|_nt#d $|j||j' ||j( |dS) Nnamevalueshort_descriptionsincetypeaccess directioninoutzInvalid direction "{}"z:Unhandled state "{}" while entering element with name "{}"))rrr STATE_IGNOREDr STATE_NODESTATE_INTERFACErZ InterfacerappendSTATE_ANNOTATIONZ AnnotationZ annotationsrr1 doc_stringr0Zdoc_string_briefr-r8 STATE_METHODZMethodmethods STATE_SIGNALZSignalZsignalsSTATE_PROPERTYZPropertyZ properties STATE_ARGZArggetZin_argsZout_argsrformatr5argsrr)rr5ZattrsZ old_stateZold_cur_objectZifaceZannor7rrZpropZarg_namer r;rCrrrrs                                      z"DBusXMLParser.handle_start_elementcCs|j|_|j|_dS)N)rpoprrr)rr5rrrrs z DBusXMLParser.handle_end_elementN)__name__ __module__ __qualname__rr?r@rDrFrGrHrBr>rr%r+r/r,r rrrrrrrrs&?rcCst|}|jS)N)rr)rparserrrrparse_dbus_xml#srQ) sysZxml.parsers.expatr r rZutilsrrrQrrrrs