a ZS`2@sBddlZddlZddlmZddlmZGdddZddZdS) N) dbustypes) print_errorc@sjeZdZdZdZdZdZdZdZdZ dZ d Z dd d Z d Z dZdZdZddZddZddZddZdS) DBusXMLParsertopZnodeZ interfacemethodsignalpropertyarg annotationZignoredTcCsxtjj|_|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_symbol_h_type_implies_unix_fdZParse)selfxml_datah_type_implies_unix_fdr%/usr/share/glib-2.0/codegen/parser.py__init__'s    zDBusXMLParser.__init__ZbeginparamsbodyskipcCstj}|d}d}d}d}i}|D]}|} |}|tjkrt|dkr|d} | dkr|dr|dt|d}tj}qtj}nB|d| }|| d d } t| dkr|d | d 7}tj}q$|tjkr|| d rH|d} | dkr"tj }|s|d 7}d }|| d7}n$|d| } || d d} | || <n2tj }t|dkr|sn|d 7}d }|| d7}q$|tj kr$t|dkr|s|d 7}d }|| d7}q$|r$|d 7}d}q$|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_statelinesZsymbolr!Zin_parar lineZ orig_lineZ colon_indexZ rest_of_lineZparamZdocsrrrr@sn                zDBusXMLParser.handle_commentcCsdSNr)rr5rrrrszDBusXMLParser.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|vr|j|dkr|j|j_d|jvr|jd}||j_d|jvr|jd|j_n|jtjkr|tjkrtj|_tj|d|jd}|jj |||_n|tjkrtj|_t|d} |jj | | |_n|tjkrtj|_t|d|d|d} |jj | | |_nF|tj kr@tj |_t |d|d}|jj |||_ntj|_d|vr|j|dkr|j|j_d|jvr|jd|j_np|jtjkr|tjkr,tj|_d} d|vr|d} t | |d} |!dd } | d kr|jj" | n(| d kr|jj# | nt$d %| | |_nF|tj krjtj |_t |d|d}|jj |||_ntj|_|j|j&krd|vr|d|jvr|j|d}|dkr||j_d|jvr|jd|j_n"|jtjkr|tjkr:tj|_d} d|vr|d} t | |d} |jj' | | |_nF|tj krxtj |_t |d|d}|jj |||_ntj|_|j|j&krd|vr|d|jvr|j|d}|dkr||j_d|jvr|jd|j_n|jtjkr@|tj kr6tj |_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_descriptionsince)rtypeaccess directioninoutzInvalid direction "{}"z:Unhandled state "{}" while entering element with name "{}")*rrr STATE_IGNOREDr STATE_NODESTATE_INTERFACErZ InterfacerappendSTATE_ANNOTATIONZ Annotation annotationsrr4 doc_stringr3Zdoc_string_briefr0r< STATE_METHODZMethodrmethods STATE_SIGNALZSignalZsignalsSTATE_PROPERTYZPropertyZ properties STATE_ARGZArggetZin_argsZout_argsrformatr9argsrr)rr9attrsZ old_stateZold_cur_objectZifaceZannor;rrZpropZarg_namer r?rHrrrrs                                           z"DBusXMLParser.handle_start_elementcCs|j|_|j|_dSr8)rpoprrr)rr9rrrr"s z DBusXMLParser.handle_end_elementN)T)__name__ __module__ __qualname__rrCrDrIrKrLrMrFrBrr(r.r2r/rrrrrrrrrs& ? rcCst||}|jSr8)rr)rrparserrrrparse_dbus_xml&s rW) sysZxml.parsers.expatr r rZutilsrrrWrrrrs