�
��Qc�����������@���sJ���d��d�l��m�Z�d��d�l�m�Z�d�d�l�m�Z�d�e�f�d�������YZ�d�S(���i����(���t���with_statement(���t���contextmanageri���(���t���astt���CCodeGeneratorc�����������B���sz���e��Z�d�����Z�d����Z�d����Z�d����Z�d����Z�d����Z�d����Z�e	�d������Z
�d����Z�d	����Z�d
����Z
�d����Z�RS(���c���������C���s(���|�|��_��|�|��_�i��|��_�|�|��_�d��S(���N(���t���out_h_filenamet���out_c_filenamet���_function_bodiest	���namespace(���t���selfR���R���R���(����(����sw���/home/kou/work/ruby/ruby-gnome2.win32/gobject-introspection/vendor/local/lib/gobject-introspection/giscanner/codegen.pyt���__init__���s����			c���������C���s*���|�j��d�d���}�d�|��j�j�d�|�f�S(���Nt��� t���_s���%s_%si����(���t���replaceR���t���symbol_prefixes(���R���t���name(����(����sw���/home/kou/work/ruby/ruby-gnome2.win32/gobject-introspection/vendor/local/lib/gobject-introspection/giscanner/codegen.pyt
���gen_symbol"���s����c���������C���s����t��|�t�j���r6�|�j�t�j�t�j�f�k�r6�d�}�n�d�}�|�j�j�t�j�t�j	�f���rt�|�j
�t�j�k�rt�d�|�S|�j�j�|�S(���Nt���*t����s���const gchar*(
���t
���isinstanceR���t	���Parametert	���directiont���PARAM_DIRECTION_OUTt���PARAM_DIRECTION_INOUTt���typet���is_equivt���TYPE_STRINGt
���TYPE_FILENAMEt���transfert���PARAM_TRANSFER_NONEt���ctype(���R���t���paramt���suffix(����(����sw���/home/kou/work/ruby/ruby-gnome2.win32/gobject-introspection/vendor/local/lib/gobject-introspection/giscanner/codegen.pyt���_typecontainer_to_ctype&���s����	c���������C���s����|�j��d�|��j�|�j���|�j�f���t�|�j���}�|�j�r��xv�t�|�j���D]U�\�}�}�|��j�|���}�|�j��d�|�|�j�f���|�|�d�k��rN�|�j��d���qN�qN�Wn
�|�j��d���|�j��d���d��S(���Ns���
%s
%s (s���%s %si���s���, t���voidt���)(���t���writeR ���t���retvalt���symbolt���lent
���parameterst	���enumeratet���argname(���R���t���outt���funct���lt���iR���R���(����(����sw���/home/kou/work/ruby/ruby-gnome2.win32/gobject-introspection/vendor/local/lib/gobject-introspection/giscanner/codegen.pyt���_write_prelude2���s���� 	
c���������C���s'���|��j��|��j�|���|��j�j�d���d��S(���Ns���;

(���R.���t���out_hR#���(���R���R+���(����(����sw���/home/kou/work/ruby/ruby-gnome2.win32/gobject-introspection/vendor/local/lib/gobject-introspection/giscanner/codegen.pyt���_write_prototypeA���s����c���������C���s���|��j��j�d�|�f���d��S(���Ns
���(transfer %s)(���t���out_cR#���(���R���R���(����(����sw���/home/kou/work/ruby/ruby-gnome2.win32/gobject-introspection/vendor/local/lib/gobject-introspection/giscanner/codegen.pyt���_write_annotation_transferE���s����c���������C���s"��|��j��j�d�|�j�f���x��|�j�D]��}�|��j��j�d�|�j�f���|�j�t�j�t�j�f�k�r��|�j	�rq�d�}�n�d�}�|��j��j�d�|�j�|�f���|��j
�|�j���n��|��j��j�d���q$�W|��j��j�d���|��j��j�d���|��j��j�d���|��j��j�d	���|��j
�|�j�j���|��j��j�d
���d��S(���Ns���/**
 * %s:
s��� * @%s: s��� caller-allocatesR���s���(%s%s) s���:
s��� *
s��� * Undocumented.
s��� * Returns: s���
 */(
���R1���R#���R%���R'���R)���R���R���R���R���t���caller_allocatesR2���R���R$���(���R���R+���R���t���allocate_string(����(����sw���/home/kou/work/ruby/ruby-gnome2.win32/gobject-introspection/vendor/local/lib/gobject-introspection/giscanner/codegen.pyt���_write_docsH���s$����		c���������c���sV���|��j��|���|��j�|���|��j�|��j�|���|��j�j�d���d��V|��j�j�d���d��S(���Ns���
{
s���}

(���R0���R5���R.���R1���R#���(���R���R+���(����(����sw���/home/kou/work/ruby/ruby-gnome2.win32/gobject-introspection/vendor/local/lib/gobject-introspection/giscanner/codegen.pyt	���_function]���s����

c���������C���sp���d�}�|��j��j�|���|��j�j�j����}�|��j��j�d�|�|�f���|��j�j�|���|��j�j�d�|��j�f���d��S(���Ns0���/* GENERATED BY testcodegen.py; DO NOT EDIT */

s=���
#ifndef __%s_H__
#define __%s_H__

#include <glib-object.h>
s���#include "%s"

(���R/���R#���R���R���t���upperR1���R���(���R���t���warningt���nsupper(����(����sw���/home/kou/work/ruby/ruby-gnome2.win32/gobject-introspection/vendor/local/lib/gobject-introspection/giscanner/codegen.pyt���_codegen_startf���s����	c���������C���s.���|��j��j�d���|��j��j����|��j�j����d��S(���Ns���#endif
(���R/���R#���t���closeR1���(���R���(����(����sw���/home/kou/work/ruby/ruby-gnome2.win32/gobject-introspection/vendor/local/lib/gobject-introspection/giscanner/codegen.pyt���_codegen_endt���s����
c���������C���s)���t��|�t�j���s�t���|�|��j�|�<d��S(���N(���R���R���t���Functiont���AssertionErrorR���(���R���t���nodet���body(����(����sw���/home/kou/work/ruby/ruby-gnome2.win32/gobject-introspection/vendor/local/lib/gobject-introspection/giscanner/codegen.pyt���set_function_bodyz���s����c���������C���s����t��|��j�d���|��_�t��|��j�d���|��_�|��j����xs�|��j�j����D]b�}�t�|�t	�j
���rD�|��j�|����6�|��j�j
�|���}�|�s��d�}�n��|��j�j�|���Wd��QXqD�qD�W|��j����d��S(���Nt���wR���(���t���openR���R/���R���R1���R:���R���t
���itervaluesR���R���R=���R6���R���t���getR#���R<���(���R���R?���R@���(����(����sw���/home/kou/work/ruby/ruby-gnome2.win32/gobject-introspection/vendor/local/lib/gobject-introspection/giscanner/codegen.pyt���codegen~���s����
	(���t���__name__t
���__module__R	���R���R ���R.���R0���R2���R5���R���R6���R:���R<���RA���RF���(����(����(����sw���/home/kou/work/ruby/ruby-gnome2.win32/gobject-introspection/vendor/local/lib/gobject-introspection/giscanner/codegen.pyR������s���											N(���t
���__future__R����t
���contextlibR���R���R���t���objectR���(����(����(����sw���/home/kou/work/ruby/ruby-gnome2.win32/gobject-introspection/vendor/local/lib/gobject-introspection/giscanner/codegen.pyt���<module>���s���