a ]xaĄHć@s2ddlZddlmZddlmZGdd„dƒZdS)éN)Śpathé)Śutilsc@s|eZdZdd„Zdd„Zdd„Zdd„Zd d „Zd d „Zd d„Z dd„Z dd„Z dd„Z dd„Z dd„Zdd„Zdd„ZdS)ŚDocbookCodeGeneratorcCs||_| ”dS)N)ŚifacesŚgenerate_expand_dicts)Śselfr©r ś./usr/share/glib-2.0/codegen/codegen_docbook.pyŚ__init__$szDocbookCodeGenerator.__init__c Csäd}|r&|jD]}tt|jƒ|ƒ}qntt|jƒ|ƒ}d}|r„|jD]<}|jD]}tt|jƒ|ƒ}qN|jD]}tt|jƒ|ƒ}qjqDn8|jD]}tt|jƒ|ƒ}qŠ|jD]}tt|jƒ|ƒ}q¦|rņ|j dt   |j”|j|j|t|jƒdf”n"|j d|j|t|jƒdf”d}|jD]V}|dkrD|j d|ddf”|j d|j|t|jƒd|jf”|d}q|jD]V}|dkr¢|j d|ddf”|j d |j|t|jƒd|jf”|d}q||j d ”dS) Nrz1%s%*s (Śś%s%*s (ś, %*séz IN %s%*s %srz OUT %s%*s %sś); ) ŚmethodsŚmaxŚlenŚnameŚin_argsŚ signatureŚout_argsŚoutŚwriterŚdots_to_hyphens) rŚiŚmŚ in_synopsisZmax_method_lenZ_mŚmax_signature_lenŚaŚcountr r r Śprint_method_prototype(s`        ū’’ "  ’’   ’’ z+DocbookCodeGenerator.print_method_prototypec CsLd}|r&|jD]}tt|jƒ|ƒ}qntt|jƒ|ƒ}d}|rh|jD] }|jD]}tt|jƒ|ƒ}qNqDn|jD]}tt|jƒ|ƒ}qn|rŗ|j dt  |j”|j|j|t|jƒdf”n"|j d|j|t|jƒdf”d}|jD]T}|dkr |j d|ddf”|j d|j|t|jƒd|jf”|d}qę|j d ”dS) Nrz1%s%*s (r r rrz%s%*s %srr) ŚsignalsrrrŚargsrrrrr) rrŚsrZmax_signal_lenZ_srrr r r r Śprint_signal_prototype]sF      ū’’ "  ’’ z+DocbookCodeGenerator.print_signal_prototypec Csd}|r&|jD]}tt|jƒ|ƒ}qntt|jƒ|ƒ}d}|r\|jD]}tt|jƒ|ƒ}qDntt|jƒ|ƒ}|r¢|j dt |j”|j|j|t|jƒdf”n"|j d|j|t|jƒdf”|j rÖ|j rÖd}n|j rād}nd}|j d||jf”dS) Nrz1%s%*sr z%s%*sZ readwritez readable z writable z %s %s ) Ś propertiesrrrrrrrrŚreadableŚwritable)rrŚprZmax_property_lenZ_prŚaccessr r r Śprint_property_prototype†s8    ū’’ " z-DocbookCodeGenerator.print_property_prototypecCs\|j d”|j d”|j d”|jD]}|j||ddq*|j d”|j d”dS)Nz# z1 Methods ś T©rś z )rrrr!)rrrr r r Śprint_synopsis_methodsŖs     z+DocbookCodeGenerator.print_synopsis_methodscCs\|j d”|j d”|j d”|jD]}|j||ddq*|j d”|j d”dS)Nz! z5 Signals r,Tr-r.ś )rrr"r%)rrr$r r r Śprint_synopsis_signals³s     z+DocbookCodeGenerator.print_synopsis_signalscCs\|j d”|j d”|j d”|jD]}|j||ddq*|j d”|j d”dS)Nz z6 Properties r,Tr-r.r0)rrr&r+©rrr)r r r Śprint_synopsis_properties¼s     z.DocbookCodeGenerator.print_synopsis_propertiesc CsĄ|j dt |j”|jf”|j d|j”|j dt |j”|j|j|j|j|jf”|j d”|j||dd|j d”|j d| |jd ””|j s®|j rt|j d ”|j D]N}|j d ”|j d |j |jf”|j d | |jd ””|j d”qĄ|j D]P}|j d ”|j d|j |jf”|j d | |jd ””|j d”q|j d”t |j ƒdkr–|j d|j ”|jr°|j d|j”|j d”dS)Nz1 z! The %s() method z] %s.%s() ś Fr-ś ś%s Tś ś zC IN %s %s: ś %s ś zD OUT %s %s: ś rś#Since %s z>The %s() method is deprecated.ś )rrrrrŚname_without_prefixr!Ś expand_parasŚ doc_stringrrrrŚsinceŚ deprecated)rrrrr r r Ś print_methodÅsv’’ ś’’      ’’ ’’   ’’ ’’ ’’z!DocbookCodeGenerator.print_methodc Csb|j dt |j”|jf”|j d|j”|j dt |j”|j|j|j|j|jf”|j d”|j||dd|j d”|j d| |jd ””|j r|j d ”|j D]N}|j d ”|j d |j |jf”|j d | |jd ””|j d”qŗ|j d”t |j ƒdkr8|j d|j ”|j rR|j d|j”|j d”dS)Nz1 z! The "%s" signal z] %s::%s r4Fr-r5r6Tr7r8z@ %s %s: r9r:r;rr<z>The "%s" signal is deprecated.r=)rrrrrr>r%r?r@r#rrrArB)rrr$rr r r Ś print_signalüs\’’ ś’’      ’’ ’’ ’’z!DocbookCodeGenerator.print_signalc Csč|j dt |j”|jf”|j d|j”|j dt |j”|j|j|j|j|jf”|j d”|j||dd|j d”|j d| |jd ””t |j ƒd krĄ|j d |j ”|j rŲ|j d |j”|j d ”dS)Nz5 z# The "%s" property z] %s:%s r4Fr-r5r6Trr<z@The "%s" property is deprecated.r=) rrrrrr>r+r?r@rrArBr2r r r Śprint_property(s<’’ ś’’  ’’z#DocbookCodeGenerator.print_propertycCsh|jD]}| ||j|”}q|jD]}| ||j|”}q$|rdt ddd„|”}t ddd„|”}|S)Nz@[a-zA-Z0-9_]*cSsd| d”dd…dS)Nz rrz ©Śgroup©rr r r ŚOóz-DocbookCodeGenerator.expand..z%[a-zA-Z0-9_]*cSsd| d”dd…dS)Nz rrz rFrHr r r rIUrJ)Śexpand_member_dict_keysŚreplaceŚexpand_member_dictŚexpand_iface_dict_keysŚexpand_iface_dictŚreŚsub)rr$ŚexpandParamsAndConstantsŚkeyr r r ŚexpandFs   żżzDocbookCodeGenerator.expandcCs&| ||” ”}| d”s"d|}|S)Nz%s)rTŚstripŚ startswith)rr$rRr r r r?Zs z!DocbookCodeGenerator.expand_parascCs.i|_i|_|jD]ī}d|j}dt |j”|jf}||j|<|jD]8}d|j|jf}dt |j”|j|jf}||j|<qF|jD]8}d|j|jf}dt |j”|j|jf}||j|<q†|jD]8}d|j|jf}dt |j”|j|jf}||j|<qĘqt |j  ”d d |_ t |j  ”d d |_ dS) Nz#%sz8%sz%s.%s()z.%s()z#%s::%sz."%s"z#%s:%sz0"%s"T)Śreverse) rMrOrrrrrr"r&ŚsortedŚkeysrKrN)rrrSŚvaluerr$r)r r r r`sN   ž   ż   ż   ż ’ ’z*DocbookCodeGenerator.generate_expand_dictscCsś|jD]ģ}tt |d||jf”dƒ|_|j d”|j d”|j d”|j d”|j d”|j d|j”|j d ”|j d t |j”|jf”|j d t |j”|j |jf”|j d ”|j d ”|j d|j”|j d|j ”|j d”t |j ƒdkr&|  |”t |jƒdkr@| |”t |jƒdkrZ| |”|j dt |j””|j d”|j d| |jd””t |jƒdkrŗ|j d|j”|jrŌ|j d|j”|j d”t |j ƒdkr4|j d|j”|j d”|j D]}| ||”q|j d”t |jƒdkrˆ|j d|j”|j d”|jD]}| ||”qh|j d”t |jƒdkrÜ|j d|j”|j d”|jD]}| ||”q¼|j d”|j d”|j d ”qdS)!Nz %s-%s.xmlŚwr z' zA z z z] %s za %s z z z %sz %sz rz/ z/ Description z %s Tz% Since %s z?The %s interface is deprecated.z z0 z5 Method Details z0 z5 Signal Details z3 z7 Property Details z Ś )rŚopenrŚjoinrrrrrr>Zdoc_string_briefrrr/r"r1r&r3r?r@rArBrCrDrE)rZdocbookZoutdirrrr$r r r Śgenerate‹sœ   ’’  ’’’’       ’’ ’’ ’   ’   ’’   zDocbookCodeGenerator.generateN)Ś__name__Ś __module__Ś __qualname__r r!r%r+r/r1r3rCrDrErTr?rr_r r r r r#s5)$   7,+r)rPŚosrr rrr r r r Śs