� ��Qc�����������@���sq��d��d�l��Z��d�d�l�m�Z�d�d�l�m�Z�d�Z�d�Z�d�Z�d�Z�d �Z�d �Z �d�Z �d�Z�d �Z�d�Z �d�Z�d�Z�d�Z�d�Z�d�Z�d�Z�d�Z�d�Z�d�Z�d�Z�d�Z�d�Z�d�Z�d�Z�e�e �e�e�e�e�e�e�e�e�e�e�e�e�e�e�g�Z�d�Z�d�Z�d�Z�d�Z �d �Z!�d!�Z"�d"�Z#�d#�Z$�d$�Z%�d%�Z&�d&�Z'�d'�Z(�d�Z)�d�Z*�d(�Z+�d)�Z,�d*�Z-�e�e�e�e �e!�e"�e#�e$�e%�e&�e'�e(�e)�e*�e+�e,�e-�g�Z.�d+�Z/�d,�Z0�d-�Z1�d.�Z2�d/�Z3�d0�Z4�d1�Z5�d2�Z6�d3�Z7�d4�Z8�d5�Z9�d6�Z:�e��j;�d7�e��j<���Z=�e��j;�d8�e��j<���Z>�e��j;�d9�e��j<���Z?�e��j;�d:�e��j<���Z@�e��j;�d;�e��j<���ZA�e��j;�d<�e��j<���ZB�e��j;�d=�e��j<���ZC�e��j;�d>�e��j<���ZD�e��j;�d?�e��j<���ZE�e��j;�d@�e��j<���ZF�dA�jG�e���jH�dB�dC���ZI�e��j;�dD�eI�dE�e��j<�e��jJ�B��ZK�e��j;�dF�e��j<���ZL�dG�eM�f�dH�������YZN�dI�eM�f�dJ�������YZO�dK�eM�f�dL�������YZP�dM�eM�f�dN�������YZQ�dO�eM�f�dP�������YZR�d�S(Q���i����Ni���(���t���message(���t���odictt ���identifiert ���parameterst���descriptiont���tagst���sectiont���symbolt���propertyt���signalt���virtualt���sincet ���stabilityt ���deprecatedt���returnss���return valuet ���attributess ���rename tot���types ���unref funcs���ref funcs���set value funcs���get value funct���transfert���values ���allow-nonet���arrayt ���attributet���closuret���destroys���element-typet���foreignt���int���inouts���in-outt���outt���scopet���skipt���constructort���methods ���fixed-sizet���lengths���zero-terminateds���caller-allocatess���callee-allocatest���asynct���callt���notifiedt���nonet ���containert���fullt���floatings��� ^ # start [^\S\n\r]* # 0 or more whitespace characters / # 1 forward slash character \*{2} # exactly 2 asterisk characters [^\S\n\r]* # 0 or more whitespace characters $ # end s0�� ^ # start [^\S\n\r]* # 0 or more whitespace characters (?P<description>.*?) # description text [^\S\n\r]* # 0 or more whitespace characters \*+ # 1 or more asterisk characters / # 1 forward slash character [^\S\n\r]* # 0 or more whitespace characters $ # end s�� ^ # start [^\S\n\r]* # 0 or more whitespace characters \* # 1 asterisk character [^\S\n\r]? # 0 or 1 whitespace characters. Careful, # removing more than 1 whitespace # character would break embedded # example program indentation sg��� ^ (?P<indentation>[^\S\n\r]*) # 0 or more whitespace characters .* $ s���� ^ # start [^\S\n\r]* # 0 or more whitespace characters $ # end s$�� ^ # start [^\S\n\r]* # 0 or more whitespace characters SECTION # SECTION [^\S\n\r]* # 0 or more whitespace characters (?P<colon>:?) # colon [^\S\n\r]* # 0 or more whitespace characters (?P<section_name>\w\S+)? # section name [^\S\n\r]* # 0 or more whitespace characters $ sT�� ^ # start [^\S\n\r]* # 0 or more whitespace characters (?P<symbol_name>[\w-]*\w) # symbol name [^\S\n\r]* # 0 or more whitespace characters (?P<colon>:?) # colon [^\S\n\r]* # 0 or more whitespace characters (?P<annotations>(?:\(.*?\)[^\S\n\r]*)*) # annotations [^\S\n\r]* # 0 or more whitespace characters $ # end sl�� ^ # start [^\S\n\r]* # 0 or more whitespace characters (?P<class_name>[\w]+) # class name [^\S\n\r]* # 0 or more whitespace characters :{1} # required colon [^\S\n\r]* # 0 or more whitespace characters (?P<property_name>[\w-]*\w) # property name [^\S\n\r]* # 0 or more whitespace characters (?P<colon>:?) # colon [^\S\n\r]* # 0 or more whitespace characters (?P<annotations>(?:\(.*?\)[^\S\n\r]*)*) # annotations [^\S\n\r]* # 0 or more whitespace characters $ # end sm�� ^ # start [^\S\n\r]* # 0 or more whitespace characters (?P<class_name>[\w]+) # class name [^\S\n\r]* # 0 or more whitespace characters :{2} # 2 required colons [^\S\n\r]* # 0 or more whitespace characters (?P<signal_name>[\w-]*\w) # signal name [^\S\n\r]* # 0 or more whitespace characters (?P<colon>:?) # colon [^\S\n\r]* # 0 or more whitespace characters (?P<annotations>(?:\(.*?\)[^\S\n\r]*)*) # annotations [^\S\n\r]* # 0 or more whitespace characters $ # end sZ�� ^ # start [^\S\n\r]* # 0 or more whitespace characters @ # @ character (?P<parameter_name>[\w-]*\w|\.\.\.) # parameter name [^\S\n\r]* # 0 or more whitespace characters :{1} # required colon [^\S\n\r]* # 0 or more whitespace characters (?P<annotations>(?:\(.*?\)[^\S\n\r]*)*) # annotations (?P<colon>:?) # colon [^\S\n\r]* # 0 or more whitespace characters (?P<description>.*?) # description [^\S\n\r]* # 0 or more whitespace characters $ # end t���|t��� s���\ s���� ^ # start [^\S\n\r]* # 0 or more whitespace characters (?P<tag_name>sm��) # tag name [^\S\n\r]* # 0 or more whitespace characters :{1} # required colon [^\S\n\r]* # 0 or more whitespace characters (?P<annotations>(?:\(.*?\)[^\S\n\r]*)*) # annotations (?P<colon>:?) # colon [^\S\n\r]* # 0 or more whitespace characters (?P<description>.*?) # description [^\S\n\r]* # 0 or more whitespace characters $ # end s�� ^ # start [^\S\n\r]* # 0 or more whitespace characters (?P<annotations>(?:\(.*?\)[^\S\n\r]*)*) # annotations (?P<colon>:) # colon [^\S\n\r]* # 0 or more whitespace characters (?P<description>.*?) # description [^\S\n\r]* # 0 or more whitespace characters $ # end t���DocBlockc�����������B���sG���e��Z�d�����Z�d����Z�d����Z�d����Z�d����Z�d����Z�d����Z�RS(���c���������C���sL���|�|��_��t����|��_�d��|��_�t����|��_�d��|��_�t����|��_�d��|��_ �d��S(���N( ���t���namet ���DocOptionst���optionst���NoneR���R���R���t���commentt���paramst���position(���t���selfR*���(����(����s����/home/kou/work/ruby/ruby-gnome2.win32/gobject-introspection/vendor/local/lib/gobject-introspection/giscanner/annotationparser.pyt���__init__n��s���� c���������C���s���t��|��j�|�j���S(���N(���t���cmpR*���(���R1���t���other(����(����s����/home/kou/work/ruby/ruby-gnome2.win32/gobject-introspection/vendor/local/lib/gobject-introspection/giscanner/annotationparser.pyt���__cmp__w��s����c���������C���s���d�|��j��|��j�f�S(���Ns���<DocBlock %r %r>(���R*���R,���(���R1���(����(����s����/home/kou/work/ruby/ruby-gnome2.win32/gobject-introspection/vendor/local/lib/gobject-introspection/giscanner/annotationparser.pyt���__repr__z��s����c���������C���s���|��j��j�|���S(���N(���R���t���get(���R1���R*���(����(����s����/home/kou/work/ruby/ruby-gnome2.win32/gobject-introspection/vendor/local/lib/gobject-introspection/giscanner/annotationparser.pyt���get_tag}��s����c���������C���s���|��j��j�|���S(���N(���R/���R7���(���R1���R*���(����(����s����/home/kou/work/ruby/ruby-gnome2.win32/gobject-introspection/vendor/local/lib/gobject-introspection/giscanner/annotationparser.pyt ���get_param���s����c���������C���s���d�}�|��j��r<�|�d�7}�|�d�j�d����|��j��D����7}�n��|��j�g�}�d�|��j�k�rj�|�d�c�d�7<n��|�d�c�|�7<x*�|��j�j����D]�}�|�j�|�j������q��W|��j�r��|�j�d���x*�|��j�j�d���D]�}�|�j�|���q��Wn��|��j �r0|�j�d���x-�|��j �j����D]�}�|�j�|�j ������qWn��d�}�|�d�7}�x>�|�D]6�}�|�j����}�|�rs|�d �|�f�7}�qG|�d �7}�qGW|�d�7}�|�S(���Nt����R(���c���������s���s���|��]�}�d��|�Vq�d�S(���s���(%s)N(����(���t���.0t���o(����(����s����/home/kou/work/ruby/ruby-gnome2.win32/gobject-introspection/vendor/local/lib/gobject-introspection/giscanner/annotationparser.pys ���<genexpr>���s����t���SECTIONi����t���:s��� s���/** s��� * %s s��� * s��� */ (���R,���t���joinR*���R/���t���valuest���appendt���to_gtk_doc_paramR.���t���splitR���t���to_gtk_doc_tagt���rstrip(���R1���R,���t���linest���paramt���lt���tagR.���t���line(����(����s����/home/kou/work/ruby/ruby-gnome2.win32/gobject-introspection/vendor/local/lib/gobject-introspection/giscanner/annotationparser.pyt ���to_gtk_doc���s6���� # c���������C���sL���x!�|��j��j����D]�}�|�j����q�Wx!�|��j�j����D]�}�|�j����q4�Wd��S(���N(���R/���R@���t���validateR���(���R1���RG���RI���(����(����s����/home/kou/work/ruby/ruby-gnome2.win32/gobject-introspection/vendor/local/lib/gobject-introspection/giscanner/annotationparser.pyRL������s����( ���t���__name__t ���__module__R2���R5���R6���R8���R9���RK���RL���(����(����(����s����/home/kou/work/ruby/ruby-gnome2.win32/gobject-introspection/vendor/local/lib/gobject-introspection/giscanner/annotationparser.pyR)���l��s��� t���DocTagc�����������B���st���e��Z�d�����Z�d����Z�e�d�d�d���Z�d����Z�d����Z�d����Z �d����Z �d����Z�d����Z�d ����Z �d ����Z�RS(���c���������C���s=���|�|��_��|�|��_�t����|��_�d��|��_�d�|��_�d��|��_�d��S(���NR:���(���t���blockR*���R+���R,���R-���R.���R���R0���(���R1���RP���R*���(����(����s����/home/kou/work/ruby/ruby-gnome2.win32/gobject-introspection/vendor/local/lib/gobject-introspection/giscanner/annotationparser.pyR2������s���� c���������C���s���d�|��j��|��j�f�S(���Ns���<DocTag %r %r>(���R*���R,���(���R1���(����(����s����/home/kou/work/ruby/ruby-gnome2.win32/gobject-introspection/vendor/local/lib/gobject-introspection/giscanner/annotationparser.pyR6������s����c��� ��� ���C���sI��|�r0�|�d��k�r0�t�j�d�|�f�|��j���d��S|�d��k �r��|�d�k�rQ�d�}�n"�|�d�k�rf�d�}�n �d�|�f�}�|�d�k�r��|�d��k�s��|�j����|�k�s��|�d�k�r��|�d��k �r��|�d��k�r��d�}�n�|�j����}�t�j�d�|�|�|�f�|��j���d��Sn��|�d��k �rE|�j����}�|�|�k�rEt�j�d�|�|�f�|��j���d��Sn��d��S( ���Ns���%s annotation needs a valuei����s���no valuei���s ���one values ���%d valuess���%s annotation needs %s, not %ds���invalid %s annotation value: %r(���R-���R����t���warnR0���R���t���one( ���R1���R*���R���t���requiredt���n_paramst���choicest���sR���t���valuestr(����(����s����/home/kou/work/ruby/ruby-gnome2.win32/gobject-introspection/vendor/local/lib/gobject-introspection/giscanner/annotationparser.pyt���_validate_option���s0���� * c���������C���s��|�d��k�r�d��Sx��|�j����j����D]��\�}�}�|�t�t�g�k�r��y�t�|���Wqt�t�f�k �r��|�d��k�r��t�j �d�|�f�d�|��j ��q��t�j �d�|�|�f�d�|��j ��qXq#�|�t�k�r��|�d��k�rt�j �d�d�|��j ��qq#�t�j �d�|�f�|��j ���q#�Wd��S(���Ns���array option %s needs a valuet ���positionss4���invalid array %s option value %r, must be an integers!���array option length needs a values"���invalid array annotation value: %r(���R-���t���allt���itemst���OPT_ARRAY_ZERO_TERMINATEDt���OPT_ARRAY_FIXED_SIZEt���intt ���TypeErrort ���ValueErrorR����RQ���R0���t���OPT_ARRAY_LENGTH(���R1���t���optionR���R*���t���v(����(����s����/home/kou/work/ruby/ruby-gnome2.win32/gobject-introspection/vendor/local/lib/gobject-introspection/giscanner/annotationparser.pyt���_validate_array���s0���� c���������C���sB���|�d��k �r>�|�j����d�k�r>�t�j�d�|�j����|��j���n��d��S(���Ni���s'���closure takes at most 1 value, %d given(���R-���R���R����RQ���R0���(���R1���Rb���R���(����(����s����/home/kou/work/ruby/ruby-gnome2.win32/gobject-introspection/vendor/local/lib/gobject-introspection/giscanner/annotationparser.pyt���_validate_closure���s����c���������C���sp���|��j��|�|�d�t��|�d��k�r9�t�j�d�|��j���d��S|�j����d�k�rl�t�j�d�|�j����|��j���d��Sd��S(���NRS���s1���element-type takes at least one value, none giveni���s-���element-type takes at most 2 values, %d given(���RX���t���TrueR-���R����RQ���R0���R���(���R1���Rb���R���(����(����s����/home/kou/work/ruby/ruby-gnome2.win32/gobject-introspection/vendor/local/lib/gobject-introspection/giscanner/annotationparser.pyt���_validate_element_type���s���� c���������C���s����|�d��k�r�d��S|�j����d�k�rC�t�j�d�|�j����|��j���d��S|�j����}�|�t�t�g�k�r|�t�j�d�|�|��j���d��Sd��S(���Ni���s.���out annotation takes at most 1 value, %d givens#���out annotation value is invalid: %r(���R-���R���R����RQ���R0���RR���t���OPT_OUT_CALLEE_ALLOCATESt���OPT_OUT_CALLER_ALLOCATES(���R1���Rb���R���t ���value_str(����(����s����/home/kou/work/ruby/ruby-gnome2.win32/gobject-introspection/vendor/local/lib/gobject-introspection/giscanner/annotationparser.pyt ���_validate_out��s���� c������������ss������f�d�������g��}�x9�|��j��j����D](�\�}�}�|�j����|�|�d�d�����q%�W|�rh�d�j�|���d�S|��j�Sd��S(���Nc������������sc���|�rT�t��|���t�k�rF�d�j����f�d����|�j����j����D����}�n��|�|��|�f�S|�|��f�Sd��S(���NR(���c���������3���s*���|��] �\�}�}����|�|�d��d���Vq�d�S(���s���%s=%ss���%sN(����(���R;���t���kRc���(���t ���serialize_one(����s����/home/kou/work/ruby/ruby-gnome2.win32/gobject-introspection/vendor/local/lib/gobject-introspection/giscanner/annotationparser.pys ���<genexpr>��s���(���R���t���strR?���RZ���R[���(���Rb���R���t���fmtt���fmt2(���Rm���(����s����/home/kou/work/ruby/ruby-gnome2.win32/gobject-introspection/vendor/local/lib/gobject-introspection/giscanner/annotationparser.pyRm�����s����s���(%s %s)s���(%s)R(���s���: (���R,���R[���RA���R?���R���(���R1���t���annotationsRb���R���(����(���Rm���s����/home/kou/work/ruby/ruby-gnome2.win32/gobject-introspection/vendor/local/lib/gobject-introspection/giscanner/annotationparser.pyt���_get_gtk_doc_value��s����c���������C���s���d�|��j��|��j����|��j�f�S(���Ns ���@%s: %s%s(���R*���Rr���R.���(���R1���(����(����s����/home/kou/work/ruby/ruby-gnome2.win32/gobject-introspection/vendor/local/lib/gobject-introspection/giscanner/annotationparser.pyRB���'��s����c���������C���s)���d�|��j��j����|��j����|��j�p$�d�f�S(���Ns���%s: %s%sR:���(���R*���t ���capitalizeRr���R.���(���R1���(����(����s����/home/kou/work/ruby/ruby-gnome2.win32/gobject-introspection/vendor/local/lib/gobject-introspection/giscanner/annotationparser.pyRD���*��s���� c������ ���C���s���|��j��t�k�r�d��Sx�|��j�j����D]�\�}�}�|�t�k�rT�|��j�|�|�d�d��q#�|�t�k�rs�|��j�|�|���q#�|�t�k�r��|��j�|�|�d�d��q#�|�t �k�r��|��j �|�|���q#�|�t�k�r��|��j�|�|�d�d��q#�|�t�k�r��|��j �|�|���q#�|�t�k�r |��j�|�|�d�d��q#�|�t�k�rE|��j�|�|�d�d��q#�|�t�t�g�k�rp|��j�|�|�d�d��q#�|�t�k�r�|��j�|�|���q#�|�t�k�r�|��j�|�|�d�t�d�d�d�t�t�t�g��q#�|�t�k�r�|��j�|�|�d�d��q#�|�t�k�r+|��j�|�|�d�t�d�d�d�t�t�t�t�g��q#�|�t�k�rV|��j�|�|�d�t�d�d��q#�|�t �k�r{|��j�|�|�d�d��q#�|�t!�k�r�|��j�|�|�d�d��q#�t"�j#�d�|�f�|��j$���q#�Wd��S(���NRT���i����i���i���RS���RU���s���invalid annotation option: %s(%���R*���t���TAG_ATTRIBUTESR,���R[���t���OPT_ALLOW_NONERX���t ���OPT_ARRAYRd���t ���OPT_ATTRIBUTEt���OPT_CLOSURERe���t���OPT_DESTROYt���OPT_ELEMENT_TYPERg���t���OPT_FOREIGNt���OPT_INt ���OPT_INOUTt ���OPT_INOUT_ALTt���OPT_OUTRk���t ���OPT_SCOPERf���t���OPT_SCOPE_ASYNCt���OPT_SCOPE_CALLt���OPT_SCOPE_NOTIFIEDt���OPT_SKIPt���OPT_TRANSFERt���OPT_TRANSFER_FULLt���OPT_TRANSFER_CONTAINERt���OPT_TRANSFER_NONEt���OPT_TRANSFER_FLOATINGt���OPT_TYPEt���OPT_CONSTRUCTORt ���OPT_METHODR����RQ���R0���(���R1���Rb���R���(����(����s����/home/kou/work/ruby/ruby-gnome2.win32/gobject-introspection/vendor/local/lib/gobject-introspection/giscanner/annotationparser.pyRL���/��sb���� N(���RM���RN���R2���R6���t���FalseR-���RX���Rd���Re���Rg���Rk���Rr���RB���RD���RL���(����(����(����s����/home/kou/work/ruby/ruby-gnome2.win32/gobject-introspection/vendor/local/lib/gobject-introspection/giscanner/annotationparser.pyRO������s��� R+���c�����������B���s\���e��Z�d�����Z�d����Z�d����Z�d����Z�d����Z�d����Z�d �d���Z �d����Z �d����Z�RS( ���c���������C���s���g��|��_��d��|��_�d��S(���N(���R@���R-���R0���(���R1���(����(����s����/home/kou/work/ruby/ruby-gnome2.win32/gobject-introspection/vendor/local/lib/gobject-introspection/giscanner/annotationparser.pyR2���h��s���� c���������C���s���d�|��j��f�S(���Ns���<DocOptions %r>(���R@���(���R1���(����(����s����/home/kou/work/ruby/ruby-gnome2.win32/gobject-introspection/vendor/local/lib/gobject-introspection/giscanner/annotationparser.pyR6���l��s����c���������C���s4���x'�|��j��D]�\�}�}�|�|�k�r �|�Sq �Wt���d��S(���N(���R@���t���KeyError(���R1���t���itemt���keyR���(����(����s����/home/kou/work/ruby/ruby-gnome2.win32/gobject-introspection/vendor/local/lib/gobject-introspection/giscanner/annotationparser.pyt���__getitem__o��s����c���������C���s ���t��|��j���S(���N(���t���boolR@���(���R1���(����(����s����/home/kou/work/ruby/ruby-gnome2.win32/gobject-introspection/vendor/local/lib/gobject-introspection/giscanner/annotationparser.pyt���__nonzero__u��s����c���������C���s���d����|��j��D��S(���Nc���������s���s���|��]�\�}�}�|�Vq�d��S(���N(����(���R;���Rl���Rc���(����(����s����/home/kou/work/ruby/ruby-gnome2.win32/gobject-introspection/vendor/local/lib/gobject-introspection/giscanner/annotationparser.pys ���<genexpr>y��s����(���R@���(���R1���(����(����s����/home/kou/work/ruby/ruby-gnome2.win32/gobject-introspection/vendor/local/lib/gobject-introspection/giscanner/annotationparser.pyt���__iter__x��s����c���������C���s���|��j��j�|�|�f���d��S(���N(���R@���RA���(���R1���R*���R���(����(����s����/home/kou/work/ruby/ruby-gnome2.win32/gobject-introspection/vendor/local/lib/gobject-introspection/giscanner/annotationparser.pyt���add{��s����c���������C���s.���x'�|��j��D]�\�}�}�|�|�k�r �|�Sq �W|�S(���N(���R@���(���R1���R����t���defaultR����R���(����(����s����/home/kou/work/ruby/ruby-gnome2.win32/gobject-introspection/vendor/local/lib/gobject-introspection/giscanner/annotationparser.pyR7���~��s����c���������c���s2���x+�|��j��D] �\�}�}�|�|�k�r �|�Vq �q �Wd��S(���N(���R@���(���R1���R����R����R���(����(����s����/home/kou/work/ruby/ruby-gnome2.win32/gobject-introspection/vendor/local/lib/gobject-introspection/giscanner/annotationparser.pyt���getall���s����c���������C���s ���t��|��j���S(���N(���t���iterR@���(���R1���(����(����s����/home/kou/work/ruby/ruby-gnome2.win32/gobject-introspection/vendor/local/lib/gobject-introspection/giscanner/annotationparser.pyR[������s����N(���RM���RN���R2���R6���R����R����R����R����R-���R7���R����R[���(����(����(����s����/home/kou/work/ruby/ruby-gnome2.win32/gobject-introspection/vendor/local/lib/gobject-introspection/giscanner/annotationparser.pyR+���g��s��� t ���DocOptionc�����������B���s>���e��Z�d�����Z�d����Z�d����Z�d����Z�d����Z�d����Z�RS(���c���������C���s����|�|��_��g��|��_�t����|��_�x��|�j�d���D]{�}�d�|�k�r[�|�j�d�d���\�}�}�n�|�}�d��}�|�|��j�|�<|�d��k�r��|��j�j�|���q.�|��j�j�|�|�f���q.�Wd��S(���NR(���t���=i���(���RI���t���_arrayR���t���_dictRC���R-���RA���(���R1���RI���Rb���t���pR*���R���(����(����s����/home/kou/work/ruby/ruby-gnome2.win32/gobject-introspection/vendor/local/lib/gobject-introspection/giscanner/annotationparser.pyR2������s���� c���������C���s���d�|��j��f�S(���Ns���<DocOption %r>(���R����(���R1���(����(����s����/home/kou/work/ruby/ruby-gnome2.win32/gobject-introspection/vendor/local/lib/gobject-introspection/giscanner/annotationparser.pyR6������s����c���������C���s ���t��|��j���S(���N(���t���lenR����(���R1���(����(����s����/home/kou/work/ruby/ruby-gnome2.win32/gobject-introspection/vendor/local/lib/gobject-introspection/giscanner/annotationparser.pyR������s����c���������C���s&���t��|��j���d�k�s�t���|��j�d�S(���Ni���i����(���R����R����t���AssertionError(���R1���(����(����s����/home/kou/work/ruby/ruby-gnome2.win32/gobject-introspection/vendor/local/lib/gobject-introspection/giscanner/annotationparser.pyRR������s����c���������C���s���|��j��S(���N(���R����(���R1���(����(����s����/home/kou/work/ruby/ruby-gnome2.win32/gobject-introspection/vendor/local/lib/gobject-introspection/giscanner/annotationparser.pyt���flat���s����c���������C���s���|��j��S(���N(���R����(���R1���(����(����s����/home/kou/work/ruby/ruby-gnome2.win32/gobject-introspection/vendor/local/lib/gobject-introspection/giscanner/annotationparser.pyRZ������s����(���RM���RN���R2���R6���R���RR���R����RZ���(����(����(����s����/home/kou/work/ruby/ruby-gnome2.win32/gobject-introspection/vendor/local/lib/gobject-introspection/giscanner/annotationparser.pyR�������s��� t���AnnotationParserc�����������B���sJ���e��Z�d��Z�d����Z�d����Z�d����Z�d����Z�d����Z�e�d������Z �RS(���sp�� GTK-Doc comment block parser. Parses GTK-Doc comment blocks into a parse tree built out of :class:`DockBlock`, :class:`DocTag`, :class:`DocOptions` and :class:`DocOption` objects. This parser tries to accept malformed input whenever possible and does not emit syntax errors. However, it does emit warnings at the slightest indication of malformed input when possible. It is usually a good idea to heed these warnings as malformed input is known to result in invalid GTK-Doc output. A GTK-Doc comment block can be constructed out of multiple parts that can be combined to write different types of documentation. See `GTK-Doc's documentation`_ to learn more about possible valid combinations. Each part can be further divided into fields which are separated by `:` characters. Possible parts and the fields they are constructed from look like the following (optional fields are enclosed in square brackets): .. code-block:: c /** * identifier_name [:annotations] * @parameter_name [:annotations] [:description] * * comment_block_description * tag_name [:annotations] [:description] */ The order in which the different parts have to be specified is important:: - There has to be exactly 1 `identifier` part on the first line of the comment block which consists of: * an `identifier_name` field * an optional `annotations` field - Followed by 0 or more `parameters` parts, each consisting of: * a `parameter_name` field * an optional `annotations` field * an optional `description` field - Followed by at least 1 empty line signaling the beginning of the `comment_block_description` part - Followed by an optional `comment block description` part. - Followed by 0 or more `tag` parts, each consisting of: * a `tag_name` field * an optional `annotations` field * an optional `description` field Additionally, the following restrictions are in effect:: - Parts can optionally be separated by an empty line, except between the `parameter` parts and the `comment block description` part where an empty line is required (see above). - Parts and fields cannot span multiple lines, except for `parameter descriptions`, `tag descriptions` and the `comment_block_description` fields. - `parameter descriptions` fields can not span multiple paragraphs. - `tag descriptions` and `comment block description` fields can span multiple paragraphs. .. NOTE:: :class:`AnnotationParser` functionality is heavily based on gtkdoc-mkdb's `ScanSourceFile()`_ function and is currently in sync with GTK-Doc commit `47abcd5`_. .. _GTK-Doc's documentation: http://developer.gnome.org/gtk-doc-manual/1.18/documenting.html.en .. _ScanSourceFile(): http://git.gnome.org/browse/gtk-doc/tree/gtkdoc-mkdb.in#n3722 .. _47abcd5: 47abcd53b8489ebceec9e394676512a181c1f1f6 c���������C���s����i��}�x��|�D]��}�y�|��j��|���}�Wn8�t�k �r`�t�j�d�t�j�|�d�|�d�����q �n�X|�d�k �r �|�j�|�k�r��t�j�d�|�j�|�j���n��|�|�|�j�<q �q �W|�S(���s���� Parses multiple GTK-Doc comment blocks. :param comments: a list of (comment, filename, lineno) tuples :returns: a dictionary mapping identifier names to :class:`DocBlock` objects s����unrecoverable parse error, please file a GObject-Introspection bug report including the complete comment block at the indicated location.i���i���s5���multiple comment blocks documenting '%s:' identifier.N(���t���parse_comment_blockt ���ExceptionR����RQ���t���PositionR-���R*���R0���(���R1���t���commentst���comment_blocksR.���t ���comment_block(����(����s����/home/kou/work/ruby/ruby-gnome2.win32/gobject-introspection/vendor/local/lib/gobject-introspection/giscanner/annotationparser.pyt���parse���s���� c���������C���s��|�\�}�}�}�t��t�|�j�d�������}�t�j�|�d�d���rK�|�d�=n�d �S|�d�\�}�}�t�j�|���}�|�r��|�j�d���}�|�r��|�|�f�|�d�<t�j �|�|�|���} �d�|�j �d���d�} �t�j�d�|�| �f�| ���q��|�d�=n�d �S|��j�|�|�|���S( ���s���� Parses a single GTK-Doc comment block. :param comment: a (comment, filename, lineno) tuple :returns: a :class:`DocBlock` object or ``None`` s��� i����i���i����R���R(���t���^s0���Comments should end with */ on a new line: %s %sN( ���t���listt ���enumerateRC���t���COMMENT_START_REt���matchR-���t���COMMENT_END_REt���groupR����R����t���endRQ���t���_parse_comment_block(���R1���R.���t���filenamet���linenot ���comment_linest���line_offsetRJ���t���resultR���R0���t���marker(����(����s����/home/kou/work/ruby/ruby-gnome2.win32/gobject-introspection/vendor/local/lib/gobject-introspection/giscanner/annotationparser.pyR������s&���� c������ ���C���sW ��d!�}�d!�}�d!�}�d!�}�d!�}�d!�} �d!�} �t�}�x�|�D]�\�}�} �t�j�|�|�|���}�| �}�d�}�t�j�| ���}�|�r��|�j�d���}�| �|�j�d���} �n��t�j�| ���}�t�|�j �d���j �d�d�����}�|�s(|�s"t�j�| ���}�|�r"t�}�d�|�j �d���}�|�j �d���|�}�q"n��|�sot�j�| ���}�|�rot�}�d�|�j �d���}�|�j �d���|�}�qon��|�s�t�j�| ���}�|�r�t�}�d �|�j �d ���|�j �d���f�}�|�j �d���|�}�q�n��|�s't�j�| ���}�|�r't�}�d�|�j �d ���|�j �d ���f�}�|�j �d ���|�}�q'n��|�r�t�}�|�}�t�|���}�|�|�_�d�|�j����k�r�|�j �d���d�k�r�|�j �d���}�|�|�}�d�|�d�}�t�j�d�|�d�|�|�f�|���n��d�|�j����k�r7�|��j�|�|�j �d�����|�_�q7�q7�q(d�|�d�}�t�j�d�|�|�f�|���d!�Sn��t�j�| ���}�|�r�|�j �d���}�|�j �d���}�|�j �d���}�|�t�k�rt�}�n��|�}�|�t�k�r�|�j �d���|�}�d�|�d�}�t�j�d�|�|�|�f�|���n��|�j����t�k�rt�}�|�s�t�}�qot�j�d�|�j �|���n\�|�|�j!�j"����k�ro|�j �d���|�}�d�|�d�}�t�j�d�|�|�j �|�|�f�|���n��t#�|�|���}�|�|�_�|�|�_$�|�r�|��j�|�|���|�_�n��|�t�k�r�|�|�j%�|�<n �|�|�j!�|�<|�} �q7�n��t&�j�| ���r|�t�t�g�k�rt'�}�|�}�q7�n��t(�j�| ���}�|�r�|�|�k�r�|�j �d���}�|�j �d���}�|�j �d���}�d�|�j �d���|�d�}�|�j����t)�k�r�t�j�d�|�|�f�|���t'�}�|�}�|�j$�s�|�|�_$�q7�|�j$�d�|�7_$�q7�n��|�t'�k�r�t*�}�n��|�}�|�t*�k�rM|�j �d���|�}�d�|�d�}�t�j�d�|�|�|�f�|���n��|�j����t�t+�g�k�r�|�stt�}�n�t�j�d�|�j �|���t#�|�t���}�|�|�_�|�|�_$�|�r�|��j�|�|���|�_�n��|�|�j%�t�<|�} �q7�q�|�j����|�j%�j"����k�rE|�j �d���|�}�d�|�d�}�t�j�d�|�|�j �|�|�f�|���n��t#�|�|�j������}�|�|�_�|�|�_,�|�r�|�j����t-�k�r�|��j�|�|���|�_�q�t�j�d �|�|���n��|�|�j%�|�j����<|�} �q7�n��|�t�t'�g�k�r|�j$�s�| �|�_$�q7�|�j$�d�| �7_$�q7�q7�|�t�k�rS|��j.�| �|�|�|���| �j$�d�| �j/����7_$�q7�q7�|�t*�k�r7�|��j.�| �|�|�|���| �j �j����t�t+�g�k�r�| �j$�d�| �j/����7_$�q7�| �j,�d�| �j/����7_,�q7�q7�q7�W|�rO |�j$�r�|�j$�j/����|�_$�n��x$�|�j%�j0����D]�}�|��j1�|���q Wx$�|�j!�j0����D]�}�|��j1�|���q* W|�j2����|�Sd!�Sd!�S("���s��� Parses a single GTK-Doc comment block already stripped from its comment start (/**) and comment end (*/) marker lines. :param comment_lines: list of (line_offset, line) tuples representing a GTK-Doc comment block already stripped from it's start (/**) and end (*/) marker lines :param filename: source file name where the comment block originated from :param lineno: line in the source file where the comment block starts :returns: a :class:`DocBlock` object or ``None`` .. NOTE:: If you are tempted to refactor this method and split it further up (for example into _parse_identifier(), _parse_parameters(), _parse_description(), _parse_tags() methods) then please resist the urge. It is considered important that this method should be more or less easily comparable with gtkdoc-mkdb's `ScanSourceFile()`_ function. The different parsing steps are marked with a comment surrounded by `#` characters in an attempt to make it clear what is going on. .. _ScanSourceFile(): http://git.gnome.org/browse/gtk-doc/tree/gtkdoc-mkdb.in#n3722 i����t���indentations��� s��� s ���SECTION:%st���section_names���%st���symbol_names���%s:%st ���class_namet ���property_names���%s::%st���signal_namet���colonR>���R(���R����s���missing ':' at column %s: %s %si���Rq���sH���ignoring unrecognized GTK-Doc comment block, identifier not found: %s %st���parameter_nameR���s2���'@%s' parameter unexpected at this location: %s %ss;���encountered multiple 'Returns' parameters or tags for '%s'.s4���multiple '@%s' parameters for identifier '%s': %s %st���tag_names5���GTK-Doc tag "Description:" has been deprecated: %s %ss��� s,���'%s:' tag unexpected at this location: %s %ss.���multiple '%s:' tags for identifier '%s': %s %ss(���annotations not supported for tag '%s:'.N(3���R-���R����R����R����t���COMMENT_ASTERISK_RER����R����t���COMMENT_INDENTATION_RER����R����t���replacet ���SECTION_REt���IDENTIFIER_SECTIONt���startt ���SYMBOL_REt���IDENTIFIER_SYMBOLt���PROPERTY_REt���IDENTIFIER_PROPERTYt ���SIGNAL_REt���IDENTIFIER_SIGNALt���PART_IDENTIFIERR)���R0���t ���groupdictRQ���t ���parse_optionsR,���t���PARAMETER_REt���PART_PARAMETERSt���lowert���TAG_RETURNSRf���R*���R/���t���keysRO���R.���R���t ���EMPTY_LINE_REt���PART_DESCRIPTIONt���TAG_REt���TAG_DESCRIPTIONt ���PART_TAGSt���TAG_RETURNVALUER���Rt���t+���_validate_multiline_annotation_continuationt���stripR@���t���_clean_comment_block_partRL���(���R1���R����R����R����R����t���part_indentt���line_indentt���in_partR���t ���current_paramt���current_tagt���returns_seenR����RJ���R0���t ���original_linet ���column_offsetR����t���identifier_namet���columnt���colon_startt���colon_columnR����t ���param_namet���param_annotationst���param_descriptionRI���R����t���tag_annotationst���tag_descriptionRG���(����(����s����/home/kou/work/ruby/ruby-gnome2.win32/gobject-introspection/vendor/local/lib/gobject-introspection/giscanner/annotationparser.pyR����D��s����! ' c���������C���sR���|�j��r�|�j��j����|�_��n �d��|�_��|�j�rE�|�j�j����|�_�n �d�|�_�d��S(���NR:���(���R.���R����R-���R���(���R1���t���part(����(����s����/home/kou/work/ruby/ruby-gnome2.win32/gobject-introspection/vendor/local/lib/gobject-introspection/giscanner/annotationparser.pyR����z��s���� c���������C���sW���t��j�|���}�|�rS�|�j�d���|�}�d�|�d�}�t�j�d�|�|�f�|���n��d�S(���s��� Validate parameters and tags (except the first line) and generate warnings about invalid annotations spanning multiple lines. :param line: line to validate, stripped from ' * ' at start of the line. :param original_line: original line to validate (used in warning messages) :param column_offset: column width of ' * ' at the time it was stripped from `line` :param position: position of `line` in the source file Rq���R(���R����s9���ignoring invalid multiline annotation continuation: %s %sN(���t$���MULTILINE_ANNOTATION_CONTINUATION_RER����R����R����RQ���(���R1���RJ���R����R����R0���R����R����R����(����(����s����/home/kou/work/ruby/ruby-gnome2.win32/gobject-introspection/vendor/local/lib/gobject-introspection/giscanner/annotationparser.pyR�������s���� c���������C���s��d�}�t�����}�|�j�|�_�x��t�|���D]��\�}�}�|�d�k�rY�|�d�k�rY�|�d�}�n��|�d�k�r(�|�d�k�r(�|�|�|�!}�|�j�d�d���}�t�|���d�k�r��|�\�} �} �n+�t�|���d�k�r��|�d�} �d��} �n�t���| �d��k �r��t�|�| ���} �n��|�j�| �| ���d�}�q(�q(�W|�S(���Ni����t���(i���t���)R(���i���i����( ���R+���R0���R����RC���R����R-���R����R����R����(���t���clsRI���R���t���openedR,���t���it���ct���segmentt���partsR*���Rb���(����(����s����/home/kou/work/ruby/ruby-gnome2.win32/gobject-introspection/vendor/local/lib/gobject-introspection/giscanner/annotationparser.pyR�������s(���� ( ���RM���RN���t���__doc__R����R����R����R����R����t���classmethodR����(����(����(����s����/home/kou/work/ruby/ruby-gnome2.win32/gobject-introspection/vendor/local/lib/gobject-introspection/giscanner/annotationparser.pyR�������s���C # + ��7 (S���t���reR:���R����R���R����R����R����R����R����R����R����R����t ���TAG_VFUNCt ���TAG_SINCEt ���TAG_STABILITYt���TAG_DEPRECATEDR����R����R����Rt���t ���TAG_RENAME_TOt���TAG_TYPEt���TAG_UNREF_FUNCt���TAG_REF_FUNCt���TAG_SET_VALUE_FUNCt���TAG_GET_VALUE_FUNCt���TAG_TRANSFERt ���TAG_VALUEt ���_ALL_TAGSRu���Rv���Rw���Rx���Ry���Rz���R{���R|���R}���R~���R���R����R����R����R����R����R����t���ALL_OPTIONSR]���Ra���R\���Ri���Rh���R����R����R����R����R����R����R����t���compilet���VERBOSER����R����R����R����R����R����R����R����R����R����R?���R����t ���_all_tagst ���IGNORECASER����R����t���objectR)���RO���R+���R����R����(����(����(����s����/home/kou/work/ruby/ruby-gnome2.win32/gobject-introspection/vendor/local/lib/gobject-introspection/giscanner/annotationparser.pyt���<module>���s�� >�&$