Your IP : 18.117.101.250


Current Path : /opt/imunify360/venv/lib64/python3.11/site-packages/pycparser/ply/__pycache__/
Upload File :
Current File : //opt/imunify360/venv/lib64/python3.11/site-packages/pycparser/ply/__pycache__/cpp.cpython-311.pyc

�

P�Dg��
�\�ddlZejjdkreefZneZeZdZdZ	d�Z
dZdZdZ
d	�ZeZd
Zd�Zd�Zd
�Zd�Zd�ZddlZddlZddlZddlZejd��Zdddddddddd�	Zd�ZGd�de��Z Gd�de��Z!e"d kr�ddl#m$Z$e$j$��Z%ddlZe&ej'd!��Z(e(�)��Z*e!e%��Z+e+�,e*ej'd!��	e+�-��Z.e.sdSe/e+j0e.���*dS)"�N�)
�CPP_ID�CPP_INTEGER�	CPP_FLOAT�
CPP_STRING�CPP_CHAR�CPP_WS�CPP_COMMENT1�CPP_COMMENT2�	CPP_POUND�
CPP_DPOUNDz+-*/%|&~^<>=!?()[]{}.,;:\'"c�`�|jxj|j�d��z
c_|S)z\s+�
��lexer�lineno�value�count��ts �q/builddir/build/BUILD/imunify360-venv-2.4.0/opt/imunify360/venv/lib/python3.11/site-packages/pycparser/ply/cpp.py�t_CPP_WSr�'���G�N�N�a�g�m�m�D�)�)�)�N�N��H�z\#z\#\#z[A-Za-z_][\w_]*c��|S)zA(((((0x)|(0X))[0-9a-fA-F]+)|(\d+))([uU][lL]|[lL][uU]|[uU]|[lL])?)�rs rrr+s���Hrz?((\d+)(\.\d+)(e(\+|-)?(\d+))? | (\d+)e(\+|-)?(\d+))([lL]|[fF])?c�`�|jxj|j�d��z
c_|S)z\"([^\\\n]|(\\(.|\n)))*?\"rrrs r�t_CPP_STRINGr5rrc�`�|jxj|j�d��z
c_|S)z(L)?\'([^\\\n]|(\\(.|\n)))*?\'rrrs r�
t_CPP_CHARr ;rrc��|j�d��}|jxj|z
c_d|_|rd|znd|_|S)z(/\*(.|\n)*?\*/)rr	� )rrrr�type)r�ncrs  r�t_CPP_COMMENT1r%AsF��
�'�-�-��
�
�C��G�N�N�c��N�N�
�A�F�s�!;������q�w��Hrc�"�d|_d|_|S)z
(//.*?(\n|$))r	r)r#rrs r�t_CPP_COMMENT2r'Js���A�F��q�w��Hrc��|jd|_|jd|_|j�d��|S�Nr�)rr#r�skiprs r�t_errorr,Ps2��
�W�Q�Z�A�F��g�a�j�A�G��G�L�L��O�O�O��Hrz\?\?[=/\'\(\)\!<>\-]�#�\�^�[�]�|�{�}�~)	�=�/�'�(�)�!�<�>�-c�:�t�d�|��S)Nc�L�t|���dS�N���)�
_trigraph_rep�group)�gs r�<lambda>ztrigraph.<locals>.<lambda>zs��}�Q�W�W�Y�Y�r�]�'C�r)�
_trigraph_pat�sub)�inputs r�trigraphrJys�����C�C�E�J�J�Jrc��eZdZdd�ZdS)�MacroNFc�j�||_||_||_||_|r
|d|_d|_dSrA)�namer�arglist�variadic�vararg�source)�selfrNrrOrPs     r�__init__zMacro.__init__�s<����	���
���� ��
��	&�!�"�+�D�K�����r)NF)�__name__�
__module__�__qualname__rTrrrrLrL�s(�����������rrLc��eZdZdd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d	�Z
d
�Zd�Zdd�Z
d
�Zdd�Zd�Zd�Zd�Zdifd�Zd�ZdS)�PreprocessorNc�b�|�tj}||_i|_g|_g|_|���t
j��}|�dt
j	d|��z��|�dt
j	d|��z��d|_
dS)Nz
__DATE__ "%s"z%b %d %Yz
__TIME__ "%s"z%H:%M:%S)�lexr�macros�path�	temp_path�lexprobe�time�	localtime�define�strftime�parser)rSr�tms   rrTzPreprocessor.__init__�s����=��I�E���
������	����	
�
�
����
�^�
�
�����%��
�j��(D�(D�D�E�E�E����%��
�j��(D�(D�D�E�E�E�����rc��g}|j�|��	|j���}|sn|�|���2|S�N)rrI�token�append)rS�text�tokens�toks    r�tokenizezPreprocessor.tokenize�s[�����
�������	��*�"�"�$�$�C�����M�M�#����	��
rc�0�td|||fz��dS)Nz%s:%d %s)�print)rS�file�line�msgs    r�errorzPreprocessor.error�s!��
�j�D��c�?�*�+�+�+�+�+rc���|j�d��|j���}|r|jdkrt	d��n|j|_|j�d��|j���}|rt|j��dkrt	d��n%|j|_t|j��|_	|j�d��|j���}|r|jdkrt	d��n|j|_
|j�d��|j���}|r|jdkrd|_n|j|_|j�d	��|j���}|r|jd	krd|_t	d
��n|j|_|j|jf|_
gd�}|D]T}|j�|��|j���}|r|j|krt	d|z���UdS)
N�
identifierz"Couldn't determine identifier type�12345i90zCouldn't determine integer typez
"filename"zCouldn't determine string typez  rz%Couldn't determine token for newlines)	r<r=r-�##r.r9r:�,�.z,Unable to lex '%s' required for preprocessor)rrIrhrror#�t_ID�int�	t_INTEGER�t_INTEGER_TYPE�t_STRING�t_SPACE�	t_NEWLINE�t_WS)rSrl�chars�cs    rr_zPreprocessor.lexprobe�sc��	
�
����&�&�&��j��� � ���	!�c�i�<�/�/��6�7�7�7�7���D�I�	
�
����!�!�!��j��� � ���	2�c�#�)�n�n��-�-��3�4�4�4�4� �X�D�N�"&�s�y�/�/�D��	
�
����(�(�(��j��� � ���	%�c�i�>�1�1��2�3�3�3�3��H�D�M�	
�
��������j��� � ���	$�c�i�4�'�'��D�L�L��8�D�L�	
�
��������j��� � ���	&�c�i�4�'�'�!�D�N��9�:�:�:�:� �X�D�N��\�4�>�2��	�9�8�8���	J�	J�A��J���Q�����*�"�"�$�$�C��
J�#�)�q�.�.��D�q�H�I�I�I��		J�	Jrc�:�|j�|��dSrg)r]ri)rSr]s  r�add_pathzPreprocessor.add_paths���	��������rc#�K�|j���}d�|���D��}tt	|����D]�}|dz}||�d��rg|t	|��krT||dd�||z||<d||<|dz
}||�d��r|t	|��k�T��d�|��}|j|��d|_g}	|j	��}|sn3|�
|��|j|jvrd|j
vr|V�g}�E|r|V�dSdS)Nc�6�g|]}|�����Sr)�rstrip��.0�xs  r�
<listcomp>z,Preprocessor.group_lines.<locals>.<listcomp>s ��8�8�8�������8�8�8rr*r.rB�r)r�clone�
splitlines�xrange�len�endswith�joinrIrrhrir#r�r)rSrIr[�lines�i�j�current_linerls        r�group_lineszPreprocessor.group_liness������j��� � ��8�8�U�%5�%5�%7�%7�8�8�8����E�
�
�#�#�	�	�A��!��A���(�#�#�D�)�)�
�q�3�u�:�:�~�~� ��8�C�R�C�=��q��1��a����a���Q�����(�#�#�D�)�)�
�q�3�u�:�:�~�~��
�	�	�%� � ����	�%������
���	"��#�)�+�+�C��
������$�$�$��x�4�9�$�$����):�):�"�"�"�"�!��	"��	�������	�	rc�`�d}|t|��kr@||j|jvr,|dz
}|t|��kr||j|jv�,|d|�=t|��dz
}|dkr3||j|jvr|dz}|dkr||j|jv�||dzd�=|Sr))r�r#r�)rSrkr�s   r�
tokenstripzPreprocessor.tokenstrip8s���
���#�f�+�+�o�o�&��)�.�D�I�"=�"=�
��F�A��#�f�+�+�o�o�&��)�.�D�I�"=�"=��2�A�2�J���K�K��M���1�f�f�����4�9�4�4�
��F�A��1�f�f�����4�9�4�4��1�Q�3�4�4�L��
rc��g}g}g}d}t|��}d}||kr3||j|jvr|dz
}||kr||j|jv�||kr*||jdkr|�|dz��n,|�|j|djd��dggfS|dz
}||k�r||}|jdkr|�|��|dz
}n�|jdkrh|dz}|dkrG|r=|�|�|����|�|��|dz||fS|�|��ni|jdkrI|dkrC|�|�|����|�|dz��g}n|�|��|dz
}||k��|�|j|djd��dggfS)	Nr*rr9zMissing '(' in macro argumentsr:rxrBzMissing ')' in macro arguments)	r�r#r�rrirsrRrr�)	rS�	tokenlist�args�	positions�current_arg�nesting�tokenlenr�rs	         r�collect_argszPreprocessor.collect_argsTs7�����	������y�>�>��
���8�|�|�)�A�,�"3�t�y�"@�"@�
��F�A��8�|�|�)�A�,�"3�t�y�"@�"@�
��L�L�y��|�1�S�8�8����Q�q�S�!�!�!�!��J�J�t�{�9�Q�<�#6�7W�X�X�X��b�"�9��	�Q����(�l�l��!��A��w�#�~�~��"�"�1�%�%�%��1������C����1����a�<�<�"�,����D�O�O�K�$@�$@�A�A�A�!�(�(��+�+�+��Q�3�t�I�-�-��"�"�1�%�%�%�%���C���G�q�L�L����D�O�O�K�8�8�9�9�9�� � ��1��%�%�%� ����"�"�1�%�%�%�
��F�A�'�(�l�l�,	
�
�
�4�;�y��}�3�4T�U�U�U��"�R�x�rc��g|_g|_g|_d}|t|j��k�ry|j|j|jk�r�|j|j|jv�ru|j�|j|j��}|dkr�|j|dz
jdkrjtj	|j|��|j|<|j
|j|_|j|dz
=|j�||dz
f����|dkrF|j|dz
jdkr-|j�d||dz
f��|j|dz
=��N|dzt|j��kr=|j|dzjdkr$|j�d||f��|dz
}���|j�d||f��n�|j|jdkr�|jr�|dkr�|j|dz
jdkrt|dzt|j��krY|j|dzj|jkr;|j|dzj|j
kr|j�|dz
��|dz
}|t|j��k��y|j�d�d	�
��dS)Nrr*r-rwr��erxc��|dS)N�r)r�s rrFz,Preprocessor.macro_prescan.<locals>.<lambda>�s
��q��t�rT)�key�reverse)�patch�	str_patch�var_comma_patchr�rr#rzrO�index�copyr~rirPrQ�sort)rS�macror��argnums    r�
macro_prescanzPreprocessor.macro_prescan�s��������� "���
���#�e�k�"�"�"�"��{�1�~�"�d�i�/�/�E�K��N�4H�E�M�4Y�4Y���,�,�U�[��^�-A�B�B���q�5�5�U�[��1��-�3�s�:�:�%)�Y�u�{�1�~�%>�%>�E�K��N�*.�-�E�K��N�'���A�a�C�(��O�*�*�F�1�Q�3�<�8�8�8���!�e�e���A�a�C� 0� 6�$� >� >��K�&�&��F�1�Q�3�'7�8�8�8���A�a�C�(����s�c�%�+�.�.�.�.�5�;�q��s�3C�3I�T�3Q�3Q��K�&�&��F�1�~�6�6�6���F�A���K�&�&��F�1�~�6�6�6�6���Q��%��-�-��>�6�q�1�u�u�5�;�q��s�3C�3I�S�3P�3P��A�#��U�[�!1�!1�1�1���A�a�C�8H�8M�QU�QZ�8Z�8Z���Q�q�S�)�/�5�<�?�?��)�0�0��1��5�5�5�
��F�A�7�#�e�k�"�"�"�"�8	����^�^�D��9�9�9�9�9rc�J�d�|jD��}i}|jD]x\}}||vr?dd�d�||D����z�dd��||<t	j||��||<||||_�yd}|jr|ds|jD]	}d||<d	}�
i}|jD]U\}	}}|	d
kr|||||dz�<�|	dkr2||vr|�||��||<|||||dz�<�V|rd
�|D��}|S)Nc�6�g|]}tj|����Sr�r��r��_xs  rr�z2Preprocessor.macro_expand_args.<locals>.<listcomp>�s ��3�3�3��t�y��}�}�3�3�3rz"%s"r�c��g|]	}|j��
Sr�rr�s  rr�z2Preprocessor.macro_expand_args.<locals>.<listcomp>�s��:Y�:Y�:Y�q�1�7�:Y�:Y�:Yrr.z\\FrBTr�r*r�c��g|]}|�|��Srr�r��_is  rr�z2Preprocessor.macro_expand_args.<locals>.<listcomp>�s��*�*�*�"�r�*�2�*�*�*r)	rr�r��replacer�rPr�r��
expand_macros)
rSr�r��rep�
str_expansionr�r��comma_patch�expanded�ptypes
          r�macro_expand_argszPreprocessor.macro_expand_args�s���3�3�u�{�3�3�3���
���	1�	1�I�F�A��]�*�*�)/�"�'�'�:Y�:Y�D�QW�L�:Y�:Y�:Y�2Z�2Z�)Z�(c�(c�dh�io�(p�(p�
�f�%��Y�s�1�v�&�&�C��F�(��0�C��F�L�L����>�	#�$�r�(�	#��*�
#�
#����A��"����� %��	.�	.��E�6�1���|�|�!�&�\��A�a��c�E�
�
��#�����)�)�'+�'9�'9�$�v�,�'G�'G�H�V�$�%�f�-��A�a��c�E�
���	+�*�*��*�*�*�C��
rc	���|�i}d}|t|��k�r�||}|j|jk�r�|j|jv�rO|j|v�rEd||j<|j|j}|jsT|�d�|jD��|��}|D]}|j|_�||||dz�<|t|��z
}�n�|dz}|t|��kr@||j|jvr,|dz
}|t|��kr||j|jv�,||jdk�rZ|�	||d���\}	}
}|j
sit|
��t|j��krD|�|j|jd|jt|j��fz��||	z}�n�|j
r�t|
��t|j��dz
kr�t|j��dkrA|�|j|jd|jt|j��dz
fz��n@|�|j|jd	|jt|j��dz
fz��||	z}n�|j
r�t|
��t|j��dz
kr|
�
g��n]|||t|j��dz
z||	zdz
�|
t|j��dz
<|
t|j��d�=|�||
��}|�||��}|D]}
|j|
_�|||||	z�<|t|��z
}||j=���|jd
kr+|j|_|�|j��|_|dz
}|t|��k���|S)NrTc�6�g|]}tj|����Srr�r�s  rr�z.Preprocessor.expand_macros.<locals>.<listcomp>�s ��0Q�0Q�0Q�2���2���0Q�0Q�0Qrr*r9zMacro %s requires %d argumentsr�z(Macro %s must have at least %d argumentsz'Macro %s must have at least %d argument�__LINE__)r�r#rzrr\rOr�rr�r�rPrsrRrir�r|r})rSrkr�r�r�m�exr�r��tokcountr�r�r��rs              rr�zPreprocessor.expand_macros�s7�����H�
���#�f�+�+�o�o��q�	�A��v���"�"��7�d�k�)�)�a�g�X�.E�.E�(,�H�Q�W�%���A�G�,�A��9�%.�!�/�/�0Q�0Q���0Q�0Q�0Q�RZ�[�[��!#�0�0�A�'(�x�A�H�H�(*��q��1��u�
��S��W�W������E���#�f�+�+�o�o�&��)�.�D�I�2M�2M���F�A� �#�f�+�+�o�o�&��)�.�D�I�2M�2M�!�!�9�?�c�1�1�6:�6G�6G��q�r�r�
�6S�6S�3�H�T�)�#$�:�.�#�d�)�)��A�I���2N�2N� $�
�
�4�;�q�x�@`�de�dk�lo�pq�py�lz�lz�c{�@{� |� |� |�$%��L���!"��.��D�	�	�C��	�N�N�1�<L�0L�0L�#&�q�y�>�>�A�#5�#5�$(�J�J�t�{�1�8�Dn�rs�ry�{~�@A�@I�|J�|J�KL�|L�rM�EM�%N�%N�%N�%N�$(�J�J�t�{�1�8�Dm�qr�qx�z}�~�H�{I�{I�JK�{K�qL�EL�%M�%M�%M�$%��L���#$�:�!B�'*�4�y�y�C��	�N�N�1�4D�'D�'D�(,���B�����AG��)�TW�XY�Xa�Tb�Tb�cd�Td�Je�He�fg�hp�fp�qr�fr�Hr�As��S���^�^�A�-=�(>�,0��Q�Y�����,A�'+�&<�&<�Q�t�&D�&D��&*�&8�&8��X�&F�&F��),�!8�!8�A�/0�x�A�H�H�7:��q��8��|� 4� !�S��X�X�
�� ���)���W�
�*�*�!�^�A�F�"�1�1�!�(�;�;�A�G�
��F�A�i�#�f�+�+�o�o�j�
rc�V�d}|t|��k�rM||j|jk�r||jdk�r|dz}d}d}|t|��kr�||j|jvr|dz
}�-||j|jkr||j|jvrd}nd}|snfnM||jdkrd}n9||jd	krn?|�|j||jd
��|dz
}|t|��k��|j	||_|�
|��||_||dz|dz�=|dz
}|t|��k��M|�|��}t|��D]�\}}|j|jkrJtj
|��||<|j	||_|�
d��||_�_|j|j	kr�tj
|��||<t||j��||_||jddvr5||jdd�||_||jddv�5��d
�d�|D����}|�dd��}|�dd��}|�dd��}	t#|��}n9#t$$r,|�|j|djd��d}YnwxYw|S)Nr�definedr*F�0L�1Lr9Tr:zMalformed defined()rB�0123456789abcdefABCDEFr�c�6�g|]}t|j����Sr��strrr�s  rr�z)Preprocessor.evalexpr.<locals>.<listcomp>Ss ��5�5�5���A�G���5�5�5rz&&z and z||z or r;z not zCouldn't evaluate expression)r�r#rzrr�r\rsrRrr|r}r��	enumerater�r�r�r��eval�	Exception)rSrkr�r��	needparen�resultr�exprs        r�evalexprzPreprocessor.evalexpr(s(��
���#�f�+�+�o�o��a�y�~���*�*�v�a�y��)�/K�/K���E��!�	����#�f�+�+�o�o��a�y�~���2�2��Q��� �����4�9�4�4�!�!�9�?�d�k�9�9�%)�F�F�%)�F�(�/�%�/�����C�/�/�$(�	�	�����C�/�/���
�
�4�;�v�a�y�/?�@U�V�V�V���F�A�!�#�f�+�+�o�o�""&���q�	��"&�"5�"5�f�"=�"=��q�	���1�Q�3�q��s�7�O�
��F�A�3�#�f�+�+�o�o�4�#�#�F�+�+���V�$�$�
	;�
	;�C�A�a��v���"�"� �I�a�L�L��q�	�!%���q�	��"&�"5�"5�d�";�";��q�	�����4�>�)�)� �I�a�L�L��q�	�"%�f�Q�i�o�"6�"6��q�	���Q�i�o�b�)�1I�I�I�&,�Q�i�o�c�r�c�&:�F�1�I�O��Q�i�o�b�)�1I�I�I���w�w�5�5�f�5�5�5�6�6���|�|�D��)�)���|�|�D��(�(���|�|�C��(�(��	��$�Z�Z�F�F���	�	�	��J�J�t�{�6�!�9�#3�4R�S�S�S��F�F�F�	�����
s� K0�03L&�%L&c#�K�t|��}|�|��}|sd}|�d|z��||_g}d}d}g}|D�]_}	t	|	��D]\}
}|j|jvrn�|jdk�r|	D].}|j|jvrd|jvr|�|���/|�	|	|
dzd���}|r+|dj}
|�	|dd���}nd}
g}|
d	kr6|r3|�
|��D]}|V��g}|�|����|
d
kr\|rX|�
|��D]}|V��g}|jd}|�|��D]}|V��||jd<||_��T|
dkr7|r3|�
|��D]}|V��g}|�
|�����|
d
kr7|�||f��|r|dj|jvrd}d}���d}���|
dkr7|�||f��|r|dj|jvrd}d}��d}��|
dkr:|�||f��|r|�|��}|sd}d}��Gd}��K|
dkr^|r3|ddr#|rd}��g|s|�|��}|rd}d}���|�|j|djd�����|
dkrG|r|ddr|rd}���|sd}d}���|�|j|djd�����|
dkrD|r|���\}}��|�|j|djd����F��H|r|�|	����a|�
|��D]}|V��g}dS)Nr�z
__FILE__ "%s"TFr-rr*rrb�include�__FILE__�undef�ifdef�ifndef�if�elifrBzMisplaced #elif�elsezMisplaced #else�endifzMisplaced #endif)rJr�rbrRr�r#r�rrir�r�r\r�r�r�rsr�pop�extend)rSrIrRrr��chunk�enable�	iftrigger�ifstackr�r�rl�	dirtokensrNr��oldfiler�s                 r�parsegenzPreprocessor.parsegencs�����
�U�O�O��� � ��#�#���	��F����%��.�/�/�/���������	����f	$�f	$�A�"�1���
4�
4���#��8�4�9�,�,�e�e�,��y�C����*�*�C��x�4�9�,�,����1B�1B����S�)�)�)�� �O�O�A�a��c�d�d�G�4�4�	���$�Q�<�-�D��?�?�9�Q�R�R�=�9�9�D�D��D��D��8�#�#��*�#'�#5�#5�e�#<�#<�&�&�C�"%�I�I�I�I� "�����D�)�)�)���Y�&�&��-�#'�#5�#5�e�#<�#<�&�&�C�"%�I�I�I�I� "��"&�+�j�"9��#'�<�<��#5�#5�&�&�C�"%�I�I�I�I�29���J�/�&,�����W�_�_��)�#'�#5�#5�e�#<�#<�&�&�C�"%�I�I�I�I� "���
�
�4�(�(�(���W�_�_��N�N�F�9�#5�6�6�6��-�#�A�w�}���;�;�%*�F�(-�I�I�(,�I���X�%�%��N�N�F�9�#5�6�6�6��-���7�=�D�K�7�7�%*�F�(-�I�I�(,�I���T�\�\��N�N�F�9�#5�6�6�6��-�!%���t�!4�!4��%�-�%*�F�(-�I�I�(,�I���V�^�^��
V�"�2�;�q�>�5�%�5�).���%.�5�)-���t�)<�)<��#)�!5�.2�F�04�I���
�
�4�;�y��|�/B�CT�U�U�U�U��V�^�^��V�"�2�;�q�>�1�%�1�).���%.�1�)-��,0�	���
�
�4�;�y��|�/B�CT�U�U�U�U��W�_�_��W�+2�;�;�=�=�(��y�y��
�
�4�;�y��|�/B�CU�V�V�V�V���$��L�L��O�O�O���%�%�e�,�,�	�	�C��I�I�I�I����rc#�K�|sdS|�r(|djdkr+|dj|jkr|�|��}|djdkr�d}|t	|��kr*||jdkrn)|dz
}|t	|��k�*td��dSd�d�|d|�D����}|jdgz|jz}nP|dj|jkr)|djdd�}|jdgz|jz}ntd	��dS|D]�}tj�||��}	t|d
�����}tj�|��}|r|j�
d|��|�||��D]}	|	V��|r|jd=dS#t$rY��wxYwtd|z��dS)Nrr<r*r=zMalformed #include <...>r�c��g|]	}|j��
Srr�r�s  rr�z(Preprocessor.include.<locals>.<listcomp>�s��#A�#A�#A��A�G�#A�#A�#ArrBzMalformed #include statementr�zCouldn't find '%s')rr#r~r�r�ror�r]r^�os�open�read�dirname�insertr��IOError)
rSrkr��filenamer]�p�iname�data�dnamerls
          rr�zPreprocessor.include�s=�����	��F��	��a�y��#�%�%�&��)�.�D�M�*I�*I��+�+�F�3�3���a�y��#�%�%����#�f�+�+�o�o��a�y��#�-�-����F�A��#�f�+�+�o�o�
�4�5�5�5��F��7�7�#A�#A�V�A�a�C�[�#A�#A�#A�B�B���y�B�4�'�$�.�8�������4�=�0�0�!�!�9�?�1�R�4�0���~���,�t�y�8����4�5�5�5����	3�	3�A��G�L�L��8�,�,�E�
��E�#���+�+�-�-�������.�.���3��N�)�)�!�E�2�2�2��=�=��h�7�7���C��I�I�I�I��*���q�)������
�
�
���
����
�&��1�2�2�2�2�2s�BG�
G,�+G,c�x�t|t��r|�|��}|}	|d}t|��dkr	|d}nd}|s&t	|jg��}||j|j<dS|j|jvrAt	|j|�	|dd�����}||j|j<dS|jdk�r4|�
|dd���\}}}d}	|D�]}
|	rtd���n�d�d�|
D����}|d	kr)d
}	|j
|
d_d|
d_d
}	|
dd�=�e|dd�d	krW|
dj|j
krAd
}	|
dd�=|
djdd�d	kr |
djdd�|
d_��t|
��dks|
dj|j
krtd
���n��|�	|d|zd���}d}
|
t|��kr�|
dzt|��krZ||
j|jvr||
dzjdkr||
=�U||
jdkr||
dzj|jvr||
dz=|
dz
}
|
t|��k��t	|j|d�|D��|	��}|�|��||j|j<dSdSdStd��dS#t$rtd��YdSwxYw)Nrr*r�r9Fz0No more arguments may follow a variadic argumentr�c�6�g|]}t|j����Srr�r�s  rr�z'Preprocessor.define.<locals>.<listcomp>1s ��#>�#>�#>�b�C���M�M�#>�#>�#>rz...T�__VA_ARGS__���zInvalid macro argumentrwc�(�g|]}|dj��S)rr�r�s  rr�z'Preprocessor.define.<locals>.<listcomp>Os��0J�0J�0J���1���0J�0J�0JrzBad macro definition)�
isinstance�STRING_TYPESrmr�rLrr\r#r�r�r�ror�rzr��LookupError)rSrk�linetokrN�mtyper�r�r�r�rP�a�astr�mvaluer�s              rrbzPreprocessor.defines����f�\�*�*�	+��]�]�6�*�*�F���9	*��1�:�D��7�|�|�a�����
������1
.��$�*�R�(�(��*+���D�J�'�'�'���t�y�(�(��$�*�T�_�_�W�Q�R�R�[�%A�%A�B�B��*+���D�J�'�'�'����#�#�,0�,=�,=�g�a�b�b�k�,J�,J�)��$�	� ���$0�$0�A����P�Q�Q�Q����7�7�#>�#>�A�#>�#>�#>�?�?�D��u�}�}�#'��$(�I��!��	�%2��!��
�#'���a�b�b�E� ��b�c�c��e�+�+��!��	�T�Y�0F�0F�#'���a�b�b�E��Q�4�:�b�c�c�?�e�3�3�)*�1���C�R�C��A�a�D�J� ��1�v�v��z�z�Q�q�T�Y�$�)�%;�%;��6�7�7�7���&<�"�_�_�W�Q�x�Z�[�[�-A�B�B�F��A��c�&�k�k�/�/��Q�3��V���,�,�%�a�y�~���:�:�v�a��c�{�?P�TX�?X�?X�$*�1�I� (�!'����D�!8�!8�V�A�a�C�[�=M�QU�QZ�=Z�=Z�$*�1�Q�3�K��Q����c�&�k�k�/�/��d�j��0J�0J�T�0J�0J�0J�8�T�T�A��&�&�q�)�)�)�./�D�K��
�+�+�+�C��&�� �,�-�-�-�-�-���	*�	*�	*��(�)�)�)�)�)�)�	*���s&�AL�<A
L�H:L�L�L9�8L9c�T�|dj}	|j|=dS#t$rYdSwxYw)Nr)rr\r)rSrk�ids   rr�zPreprocessor.undef]sA��
�A�Y�_��	���B������	�	�	��D�D�	���s��
'�'c�J�||_|�||��|_dSrg)�ignorer�rd)rSrIrRr
s    r�parsezPreprocessor.parseis"������m�m�E�&�1�1����rc��		t|j��}|j|jvr|S�%#t$rd|_YdSwxYwrg)�nextrdr#r
�
StopIteration)rSrls  rrhzPreprocessor.tokenrs^��	�
;��4�;�'�'���8�4�;�.�.�s�
�
;���	�	�	��D�K��4�4�	���s�$(�(�=�=rg)rUrVrWrTrmrsr_r�r�r�r�r�r�r�r�r�r�rbr�rrhrrrrYrY�sN����������,���,�,�,�4J�4J�4J�x������B	�	�	�8+�+�+�j!:�!:�!:�V'�'�'�d9�9�9�9�D4�4�4�v{�{�{�{�F)3�)3�)3�b>*�>*�>*�L���!%�B�2�2�2�2�����rrY�__main__r*)1�sys�version_info�majorr��unicoder�ranger�rk�literalsr�t_CPP_POUND�t_CPP_DPOUND�t_CPP_IDr�
t_CPP_INTEGER�t_CPP_FLOATrr r%r'r,�rer�r`�os.pathr��compilerGrCrJ�objectrLrYrU�ply.lexr[rr��argv�fr�rIr�rrhrlrorRrrr�<module>r"s`���
�
�
����A�����>�L�L��L�
�F�
��,��
�
�
�
������
�
�
��
�Q��
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�	�	�	�������������&��
�6�7�7�
����������
�
�
�K�K�K�&�����F����"\�\�\�\�\�6�\�\�\�|�z����������C�G�I�I�E��J�J�J���S�X�a�[���A�
�F�F�H�H�E���U���A��G�G�E�#�(�1�+������g�g�i�i����E�E�
��a�h�������r

?>