a ]xa2@s:ddlZddlmZddlmZGdddZddZdS) 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)xmlparsersZexpatZ 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_statelinessymbolr"Zin_parar!lineZ orig_lineZ colon_indexZ rest_of_lineZparamZdocsrrrrAsn                zDBusXMLParser.handle_commentcCsdSNr)rr6rrrrszDBusXMLParser.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}|dur||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}|dur||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 annotationsrr5 doc_stringr4Zdoc_string_briefr1r> STATE_METHODZMethodrmethods STATE_SIGNALZSignalZsignalsSTATE_PROPERTYZPropertyZ properties STATE_ARGZArggetZin_argsZout_argsrformatr;argsrr)rr;attrsZ old_stateZold_cur_objectZifaceZannor=rrZpropZarg_namer rArJrrrrs                                       z"DBusXMLParser.handle_start_elementcCs|j|_|j|_dSr:)rpoprrr)rr;rrrr(s z DBusXMLParser.handle_end_elementN)T)__name__ __module__ __qualname__rrErFrKrMrNrOrHrDr r)r/r3r0rrrrrrrrrs& ?%rcCst||}|jSr:)rr)rrparserrrrparse_dbus_xml-s rY)Zxml.parsers.expatr r rZutilsrrrYrrrrs