�
~��Xc�����������@��s����d��d�l��m�Z�d��d�l��m�Z�d��d�l��m�Z�d��d�l��m�Z�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���absolute_import(���t���division(���t���print_function(���t���unicode_literals(���t���contextmanageri���(���t���astt���CCodeGeneratorc�����������B��s����e��Z�g��g��g��g��g��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��sU���|�|��_��|�|��_�|�|��_�|�|��_�|�|��_�|�|��_�|�|��_�i��|��_�|�|��_�d��S(���N(	���t���out_h_filenamet���out_c_filenamet���function_decorationt���include_first_headert���include_last_headert���include_first_srct���include_last_srct���_function_bodiest	���namespace(	���t���selfR���R���R	���R
���R���R���R
���R���(����(����sq���/home/vagrant/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(���Nu��� u���_u���%s_%si����(���t���replaceR���t���symbol_prefixes(���R���t���name(����(����sq���/home/vagrant/ruby-gnome2.win32/gobject-introspection/vendor/local/lib/gobject-introspection/giscanner/codegen.pyt
���gen_symbol3���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(���Nu���*u����u���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(����(����sq���/home/vagrant/ruby-gnome2.win32/gobject-introspection/vendor/local/lib/gobject-introspection/giscanner/codegen.pyt���_typecontainer_to_ctype7���s����	c���������C��s����|��j��r)�|�j�d�d�j�|��j������n��|�j�d�|��j�|�j���|�j�f���t�|�j���}�|�j�r��xv�t�|�j���D]U�\�}�}�|��j�|���}�|�j�d�|�|�j	�f���|�|�d�k��rw�|�j�d���qw�qw�Wn
�|�j�d���|�j�d���d��S(	���Nu���
%su��� u���
%s
%s (u���%s %si���u���, u���voidu���)(
���R
���t���writet���joinR%���t���retvalt���symbolt���lent
���parameterst	���enumeratet���argname(���R���t���outt���funct���lt���iR#���R"���(����(����sq���/home/vagrant/ruby-gnome2.win32/gobject-introspection/vendor/local/lib/gobject-introspection/giscanner/codegen.pyt���_write_preludeD���s����	 	
c���������C��s'���|��j��|��j�|���|��j�j�d���d��S(���Nu���;

(���R2���t���out_hR&���(���R���R/���(����(����sq���/home/vagrant/ruby-gnome2.win32/gobject-introspection/vendor/local/lib/gobject-introspection/giscanner/codegen.pyt���_write_prototypeW���s����c���������C��sH���|�j��t�j�k�s'�|�j��j�j�d���rD�|��j�j�d�|�j�f���n��d��S(���Nu���*u��� (transfer %s)(���R���R���t���BASIC_TYPESR"���t���endswitht���out_cR&���R ���(���R���t���node(����(����sq���/home/vagrant/ruby-gnome2.win32/gobject-introspection/vendor/local/lib/gobject-introspection/giscanner/codegen.pyt���_write_annotation_transfer[���s����c���������C��s4��|��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
�|���n��|��j��j�d���q$�W|��j��j�d���|��j��j�d���|�j�j�t�j
�k�r |��j��j�d	���|��j��j�d
���|��j
�|�j���n��|��j��j�d���d��S(���Nu���/**
 * %s:
u��� * @%su��� caller-allocatesu����u	���: (%s%s) u���:
u��� *
u��� * Undocumented.u���
 *
u��� * Returns: u���
 */(���R7���R&���R)���R+���R-���R���R���R���R���t���caller_allocatesR9���R(���R���t	���TYPE_NONE(���R���R/���R#���t���allocate_string(����(����sq���/home/vagrant/ruby-gnome2.win32/gobject-introspection/vendor/local/lib/gobject-introspection/giscanner/codegen.pyt���_write_docs`���s&����		c���������c��sV���|��j��|���|��j�|���|��j�|��j�|���|��j�j�d���d��V|��j�j�d���d��S(���Nu���
{
u���}

(���R4���R=���R2���R7���R&���(���R���R/���(����(����sq���/home/vagrant/ruby-gnome2.win32/gobject-introspection/vendor/local/lib/gobject-introspection/giscanner/codegen.pyt	���_functionv���s����

c���������C��s��d�}�|��j��j�|���|��j�j�j����}�x%�|��j�D]�}�|��j��j�d�|���q2�W|��j��j�d�|�|�f���x%�|��j�D]�}�|��j��j�d�|���qt�W|��j�j�|���x%�|��j�D]�}�|��j�j�d�|���q��W|��j�j�d�|��j	�f���x%�|��j
�D]�}�|��j�j�d�|���q��Wd��S(���Nu0���/* GENERATED BY testcodegen.py; DO NOT EDIT */

u���#include "%s"
u>���
#ifndef __%s_H__
#define __%s_H__

#include <glib-object.h>

u���#include "%s"

(���R3���R&���R���R���t���upperR���R���R7���R
���R���R���(���R���t���warningt���nsuppert���header(����(����sq���/home/vagrant/ruby-gnome2.win32/gobject-introspection/vendor/local/lib/gobject-introspection/giscanner/codegen.pyt���_codegen_start���s����	c���������C��s.���|��j��j�d���|��j��j����|��j�j����d��S(���Nu���#endif
(���R3���R&���t���closeR7���(���R���(����(����sq���/home/vagrant/ruby-gnome2.win32/gobject-introspection/vendor/local/lib/gobject-introspection/giscanner/codegen.pyt���_codegen_end����s����
c���������C��s���|�|��j��|�<d��S(���N(���R���(���R���R8���t���body(����(����sq���/home/vagrant/ruby-gnome2.win32/gobject-introspection/vendor/local/lib/gobject-introspection/giscanner/codegen.pyt���set_function_body����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(���Nu���wu����(���t���openR���R3���R	���R7���RC���R���t���valuesR���R���t���FunctionR>���R���t���getR&���RE���(���R���R8���RF���(����(����sq���/home/vagrant/ruby-gnome2.win32/gobject-introspection/vendor/local/lib/gobject-introspection/giscanner/codegen.pyt���codegen����s����
	(���t���__name__t
���__module__R���R���R%���R2���R4���R9���R=���R���R>���RC���RE���RG���RL���(����(����(����sq���/home/vagrant/ruby-gnome2.win32/gobject-introspection/vendor/local/lib/gobject-introspection/giscanner/codegen.pyR��� ���s ���		
								N(���t
���__future__R����R���R���R���R���t
���contextlibR���t����R���t���objectR���(����(����(����sq���/home/vagrant/ruby-gnome2.win32/gobject-introspection/vendor/local/lib/gobject-introspection/giscanner/codegen.pyt���<module>���s���