OwlCyberSecurity - MANAGER
Edit File: cpp.cpython-36.pyc
3 r��W����������������� ���@���sl��d�dl�mZ�d�dlZejjdk�r*eefZneZeZ d3Z dZdd��ZdZ dZdZdd��ZeZdZdd��Zdd��Zdd��Zdd��Zdd��Zd�dlZd�dlZd�dlZd�dlZejd �Zd!d"d#d$d%d&d'd(d)d*� Zd+d,��Z G�d-d.��d.e!�Z"G�d/d0��d0e!�Z#e$d1k�rhd�dl%j&Z&e&j&��Z'd�dlZe(ej)d2��Z*e*j+��Z,e#e'�Z-e-j.e,ej)d2���x"e-j/��Z0e0�sVP�e1e-j2e0���qFW�dS�)4�����)� generatorsN�����CPP_ID�CPP_INTEGER� CPP_FLOAT� CPP_STRING�CPP_CHAR�CPP_WS�CPP_COMMENT1�CPP_COMMENT2� CPP_POUND� CPP_DPOUNDz+-*/%|&~^<>=!?()[]{}.,;:\'"c�������������C���s���|�j��j|�jjd�7��_|�S�)z\s+� )�lexer�lineno�value�count)�t��r����/usr/lib/python3.6/cpp.py�t_CPP_WS!���s����r���z\#z\#\#z[A-Za-z_][\w_]*c�������������C���s���|�S�)zA(((((0x)|(0X))[0-9a-fA-F]+)|(\d+))([uU][lL]|[lL][uU]|[uU]|[lL])?)r���)r���r���r���r���r���-���s����z?((\d+)(\.\d+)(e(\+|-)?(\d+))? | (\d+)e(\+|-)?(\d+))([lL]|[fF])?c�������������C���s���|�j��j|�jjd�7��_|�S�)z\"([^\\\n]|(\\(.|\n)))*?\"r���)r���r���r���r���)r���r���r���r����t_CPP_STRING7���s����r���c�������������C���s���|�j��j|�jjd�7��_|�S�)z(L)?\'([^\\\n]|(\\(.|\n)))*?\'r���)r���r���r���r���)r���r���r���r���� t_CPP_CHAR=���s����r���c�������������C���s8���|�j�jd�}|�j�j|7��_d|�_|r.d|�nd|�_�|�S�)z(/\*(.|\n)*?\*/)r���r ���� )r���r���r���r����type)r���Zncrr���r���r����t_CPP_COMMENT1C���s �����r���c�������������C���s���d|�_�d|�_dS�)z (//.*?(\n|$))r ���r���N)r���r���)r���r���r���r����t_CPP_COMMENT2L���s�����r���c�������������C���s(���|�j�d�|�_|�j�d�|�_�|�jjd��|�S�)Nr�������)r���r���r����skip)r���r���r���r����t_errorQ���s����r���z\?\?[=/\'\(\)\!<>\-]�#�\�^�[�]�|�{�}�~) �=�/�'�(�)�!�<�>�-c�������������C���s���t�jdd��|��S�)Nc�������������S���s���t�|�j��d��S�)Nr������)� _trigraph_rep�group)�gr���r���r����<lambda>{���s����ztrigraph.<locals>.<lambda>)� _trigraph_pat�sub)�inputr���r���r����trigraphz���s����r:���c���������������@���s���e�Zd�Zddd�ZdS�)�MacroNFc�������������C���s0���||�_�||�_||�_||�_|r&|d�|�_d�|�_d�S�)Nr���r2���)�namer����arglist�variadic�vararg�source)�selfr<���r���r=���r>���r���r���r����__init__����s���� zMacro.__init__)NF)�__name__� __module__�__qualname__rB���r���r���r���r���r;�������s���r;���c���������������@���s����e�Zd�Zd&dd�Zdd��Zdd��Zdd ��Zd d��Zdd ��Zdd��Z dd��Z dd��Zdd��Zd'dd�Z dd��Zd(dd�Zdd��Zdd��Zd d!��Zdi�fd"d#�Zd$d%��ZdS�))�PreprocessorNc�������������C���sl���|d�krt�j}||�_i�|�_g�|�_g�|�_|�j���tj��}|�jdtj d|����|�jdtj d|����d�|�_ d�S�)Nz __DATE__ "%s"z%b %d %Yz __TIME__ "%s"z%H:%M:%S)�lexr����macros�path� temp_path�lexprobe�timeZ localtime�defineZstrftime�parser)rA���r���Ztmr���r���r���rB�������s����zPreprocessor.__init__c�������������C���s4���g�}|�j�j|��x|�j�j��}|s"P�|j|��qW�|S�)N)r���r9����token�append)rA����text�tokens�tokr���r���r����tokenize����s���� �zPreprocessor.tokenizec�������������C���s���t�d|||f���d�S�)Nz%s:%d %s)�print)rA����file�line�msgr���r���r����error����s����zPreprocessor.errorc���������� ���C���s���|�j�jd��|�j�j��}|�s&|jdkr0td��n|j|�_|�j�jd��|�j�j��}|�sbt|j�dkrltd��n|j|�_t|j�|�_ |�j�jd��|�j�j��}|�s�|jdkr�td��n|j|�_ |�j�jd��|�j�j��}|�s�|jdkr�d�|�_n|j|�_|�j�jd ��|�j�j��}|��s|jd k�r(d�|�_td ��n|j|�_|�j|�jf|�_ ddd ddddddg }xD|D�]<}|�j�j|��|�j�j��}|��s�|j|k�rZtd|����qZW�d�S�)NZ identifierz"Couldn't determine identifier typeZ12345i90��zCouldn't determine integer typez "filename"zCouldn't determine string typez r���z%Couldn't determine token for newlinesr/���r0���r ���z##r!���r,���r-����,�.z,Unable to lex '%s' required for preprocessor)r���r9���rO���r���rU���r����t_ID�int� t_INTEGER�t_INTEGER_TYPE�t_STRINGZt_SPACEZ t_NEWLINE�t_WS)rA���rS����chars�cr���r���r���rK�������sD���� zPreprocessor.lexprobec�������������C���s���|�j�j|��d�S�)N)rI���rP���)rA���rI���r���r���r����add_path��s����zPreprocessor.add_pathc�������������c���s����|�j�j��}dd��|j��D��}xhtt|��D�]X}|d�}xJ||�jd�r�|t|�k�r�||�d�d��||��||<�d||<�|d7�}q8W�q*W�dj|�}|j|��d|_g�}x<|j ��}|s�P�|j |��|j|�jkr�d|j kr�|V��g�}q�W�|r�|V��d�S�)Nc�������������S���s���g�|�]}|j����qS�r���)�rstrip)�.0�xr���r���r���� <listcomp>��s����z,Preprocessor.group_lines.<locals>.<listcomp>r���r!�����r���r2���)r���Zclone� splitlines�xrange�len�endswith�joinr9���r���rO���rP���r���ra���r���)rA���r9���rG����lines�i�jZcurrent_linerS���r���r���r����group_lines��s,���� zPreprocessor.group_linesc�������������C���s|���d}x(|t�|�k�r,||�j|�jkr,|d7�}qW�|d�|�=�t�|�d�}x$|dkrh||�j|�jkrh|d8�}qFW�||d�d��=�|S�)Nr���r���)rl���r���ra���)rA���rR���rp���r���r���r���� tokenstrip9��s���� zPreprocessor.tokenstripc������� ������C���s���g�}g�}g�}d}t�|�}d}x$||k�r@||�j|�jkr@|d7�}qW�||k�rh||�jdkrh|j|d���n |�j|�j|d�jd��dg�g�fS�|d7�}x�||k��rf||�}|jdkr�|j|��|d7�}n�|jdk�r|d8�}|dk�r|r�|j|�j|���|j|��|d�||fS�|j|��nD|jdk�rR|dk�rR|j|�j|���|j|d���g�}n |j|��|d7�}q�W�|�j|�j|d�jd��dg�g�fS�) Nr���r���r,���zMissing '(' in macro argumentsr-���rZ���zMissing ')' in macro argumentsr2���) rl���r���ra���r���rP���rY���r@���r���rs���) rA���Z tokenlist�args� positionsZcurrent_argZnestingZtokenlenrp���r���r���r���r����collect_argsU��sD���� zPreprocessor.collect_argsc�������������C���s��g�|_�g�|_g�|_d}�x�|t|j�k��r�|j|�j|�jkoL|j|�j|jk�rh|jj|j|�j�}|dkr�|j|d��jdkr�t j |j|��|j|<�|�j |j|�_|j|d�=�|jj||d�f��qn�|dko�|j|d��jdk�r|j�jd||d�f��|j|d�=�qnZ|d�t|j�k��rT|j|d��jdk�rT|j�jd||f��|d7�}qn|j�jd||f��n�|j|�jdk�r�|j�r�|dk�r�|j|d��jdk�r�|d�t|j�k��r�|j|d��j|�jk�r�|j|d��j|j k�r�|jj|d���|d7�}qW�|j�jdd ��d d��d�S�)Nr���r���r ���z##rc����erZ���c�������������S���s���|�d�S�)N����r���)rg���r���r���r���r6������s����z,Preprocessor.macro_prescan.<locals>.<lambda>T)�key�reverse)�patch� str_patch�var_comma_patchrl���r���r���r\���r=����index�copyr`���rP���r>���r?����sort)rA����macrorp����argnumr���r���r���� macro_prescan���s:����&*(,zPreprocessor.macro_prescanc������� ������C���s0��dd��|j�D��}i�}xb|jD�]X\}}||krTddjdd��||�D����jdd�||<�tj||��||<�||�||�_�qW�d}|jr�|d��r�x|jD�]}d�||<�d }q�W�i�}xj|jD�]`\} }}| dkr�||�|||d ��<�q�| dkr�||k�r�|�j||��||<�||�|||d ��<�q�W�|�r,d d��|D��}|S�)Nc�������������S���s���g�|�]}t�j�|��qS�r���)r���)rf����_xr���r���r���rh������s����z2Preprocessor.macro_expand_args.<locals>.<listcomp>z"%s"ri���c�������������S���s���g�|�] }|j��qS�r���)r���)rf���rg���r���r���r���rh������s����r!���z\\Fr���Trc���rw���c�������������S���s���g�|�]}|r|�qS�r���r���)rf����_ir���r���r���rh������s����r2���) r���r|���rn����replacer���r>���r}���r{���� expand_macros) rA���r����rt����repZ str_expansionr����rp���Zcomma_patch�expandedZptyper���r���r����macro_expand_args���s.����( zPreprocessor.macro_expand_argsc�������������C���s���|d�kri�}d}�x�|t�|�k��r�||�}|j|�jk�r�|j|�jkoL|j|k�r�d||j<�|�j|j�}|js�|�jdd��|jD��|�}x|D�]}|j|_q�W�||||d��<�|t�|�7�}�n�|d�}x(|t�|�k�r�||�j|�jkr�|d7�}q�W�||�jdk�r�|�j ||d����\} } }|j ��r`t�| �t�|j�k�r`|�j|�j|jd|jt�|j�f���|| �}�nD|j �r�t�| �t�|j�d�k��r�t�|j�dk�r�|�j|�j|jd |jt�|j�d�f���n&|�j|�j|jd |jt�|j�d�f���|| �}n�|j �rXt�| �t�|j�d�k�r| j g���nD|||t�|j�d���|| �d���| t�|j�d�<�| t�|j�d��=�|�j|| �}|�j||�}x|D�]} |j| _�qvW�||||| ��<�|t�|�7�}||j=�qn"|jdk�r�|�j|_|�j|j�|_|d7�}qW�|S�)Nr���Tc�������������S���s���g�|�]}t�j�|��qS�r���)r���)rf���r����r���r���r���rh������s����z.Preprocessor.expand_macros.<locals>.<listcomp>r���r,���zMacro %s requires %d argumentsrx���z(Macro %s must have at least %d argumentsz'Macro %s must have at least %d argumentZ__LINE__)rl���r���r\���r���rH���r=���r����r���ra���rv���r>���rY���r@���rP���r����r^���r_���)rA���rR���r����rp���r����mZexrw���rq����tokcountrt���ru���r�����rr���r���r���r�������s\���� " (& 4 zPreprocessor.expand_macrosc�������������C���s^��d}�x|t�|�k��r"||�j|�jko2||�jdk�r|d�}d}d}x�|t�|�k�r�||�j|�jkrp|d7�}qHnn||�j|�jkr�||�j|�jkr�d}nd}|s�P�n<||�jdkr�d}n(||�jd kr�P�n|�j|�j||�jd ��|d7�}qHW�|�j ||�_|�j |�||�_||d�|d��=�|d7�}qW�|�j|�}x�t|�D�]�\}}|j|�jk�rzt j |�||<�|�j ||�_|�j d�||�_nd|j|�j k�r8t j |�||<�t||�j�||�_x2||�jd�dk�r�||�jd�d��||�_�q�W��q8W�djd d��|D���}|jdd�}|jdd�}|jdd�}yt|�}W�n0�tk �rX���|�j|�j|d�jd��d}Y�nX�|S�)Nr���Zdefinedr���FZ0LZ1Lr,���Tr-���zMalformed defined()Z0123456789abcdefABCDEFri���c�������������S���s���g�|�]}t�|j��qS�r���)�strr���)rf���rg���r���r���r���rh���T��s����z)Preprocessor.evalexpr.<locals>.<listcomp>z&&z and z||z or r.���z not zCouldn't evaluate expressionr2���r2���)rl���r���r\���r���ra���rH���rY���r@���r���r^���r_���r����� enumerater���r����rn���r�����eval� Exception)rA���rR���rp���rq���Z needparen�resultr����exprr���r���r����evalexpr)��s^���� � $ zPreprocessor.evalexprc�������������c���s���t�|�}|�j|�}|sd}|�jd|���||�_g�}d}d}g�}�xN|D��]D} x"t| �D�]\} }|j|�jkrVP�qVW�|jdk�r~x,| D�]$}|j|�jkr�d|jkr�|j|��q�W�|�j | | d�d����}|r�|d�j} |�j |dd����}nd} g�}| d k�r(|�r|x|�j |�D�]}|V���qW�g�}|�j|���q�| d k�r�|�r|x|�j |�D�]}|V���qDW�g�}|�jd�}x|�j|�D�]}|V���qnW�||�jd<�||�_�q�| dk�r�|�r|x|�j |�D�]}|V���q�W�g�}|�j |���q�| d k�r|j||f��|�r||d�j|�jk�r d}d}nd}�q�| dk�rT|j||f��|�r||d�j|�jk�rLd}d}nd}�q�| dk�r�|j||f��|�r||�j|�}|�s�d}d}nd}n�| dk�r�|�r�|d�d��r�|�r�d}n|�s�|�j|�}|�r�d}d}n|�j|�j|d�jd��n�| dk�rF|�r.|d�d��rD|�rd}n|�sDd}d}n|�j|�j|d�jd��n6| dk�r�|�rd|j��\}}n|�j|�j|d�jd��n�qF|rF|j| ��qFW�x|�j |�D�]}|V���q�W�g�}d�S�)Nri���z __FILE__ "%s"TFr ���r���r���r���rM����includeZ__FILE__�undefZifdefZifndef�if�elifzMisplaced #elif�elsezMisplaced #elseZendifzMisplaced #endifr2���r2���)r:���rr���rM���r@���r����r���ra���r���rP���rs���r����rH���r����r����r����rY���r����pop�extend)rA���r9���r@���r���ro����chunk�enableZ iftriggerZifstackrg���rp���rS���Z dirtokensr<���rt���Zoldfiler����r���r���r����parsegend��s����� � zPreprocessor.parsegenc������� ������c���s���|sd�S�|r�|d�j�dkr4|d�j|�jkr4|�j|�}|d�j�dkr�d}x4|t|�k�rn||�j�dkrdP�|d7�}qHW�td��d�S�djdd��|d|��D���}|�jdg�|�j�}nB|d�j|�jkr�|d�j�dd��}|�jdg�|�j�}ntd ��d�S�x�|D�]�}t jj||�}y`t |d �j��}t jj|�}|�r6|�jj d|��x|�j||�D�]} | V���qDW�|�rb|�jd=�P�W�q��tk �r|���Y�q�X�q�W�td|���d�S�) Nr���r/���r���r0���zMalformed #include <...>ri���c�������������S���s���g�|�] }|j��qS�r���)r���)rf���rg���r���r���r���rh������s����z(Preprocessor.include.<locals>.<listcomp>zMalformed #include statementr����zCouldn't find '%s'r2���)r���r���r`���r����rl���rU���rn���rI���rJ����os�open�read�dirname�insertr�����IOError) rA���rR���rp����filenamerI����pZiname�dataZdnamerS���r���r���r���r�������sF���� zPreprocessor.includec�������������C���s���t�|t�r|�j|�}|}�y||d�}t|�dkr:|d�}nd�}|s^t|jg��}||�j|j<��n6|j|�jkr�t|j|�j |dd�����}||�j|j<��n�|jdk�r�|�j |dd����\}}}d} �x�|D�]�} | r�td��P�djdd ��| D���}|d k�r d} |�j | d�_d| d�_d} | dd��=�q�nb|dd���d k�r�| d�j|�j k�r�d} | dd��=�| d�jdd���d kr�| d�jd�d��| d�_q�t| �dk�s�| d�j|�j kr�td��P�q�W�|�j |d|�d����}d} x�| t|�k��rX| d�t|�k��rL|| �j|�jk�r|| d��jdk�r|| =��q�n0|| �jdk�rL|| d��j|�jk�rL|| d�=�| d7�} �q�W�t|j|dd ��|D��| �}|�j|��||�j|j<�ntd��W�n�tk �r����td��Y�nX�d�S�)Nr���r���rx���r,���Fz0No more arguments may follow a variadic argumentri���c�������������S���s���g�|�]}t�|j��qS�r���)r����r���)rf���r����r���r���r���rh���2��s����z'Preprocessor.define.<locals>.<listcomp>z...TZ__VA_ARGS__r���zInvalid macro argumentz##c�������������S���s���g�|�]}|d��j��qS�)r���)r���)rf���rg���r���r���r���rh���P��s����zBad macro definition���r����r����)� isinstance�STRING_TYPESrT���rl���r;���r���rH���r���ra���rs���rv���rU���rn���r\���r�����LookupError)rA���rR���Zlinetokr<���Zmtyper����r����rt���ru���r>����aZastrZmvaluerp���r���r���r���rM�����sl���� $ && zPreprocessor.definec�������������C���s0���|d�j�}y|�j|=�W�n�tk r*���Y�nX�d�S�)Nr���)r���rH���r����)rA���rR����idr���r���r���r����^��s ���� zPreprocessor.undefc�������������C���s���||�_�|�j||�|�_d�S�)N)�ignorer����rN���)rA���r9���r@���r����r���r���r����parsej��s����zPreprocessor.parsec�������������C���sD���y$xt�|�j�}|j|�jkr|S�qW�W�n�tk r>���d�|�_d�S�X�d�S�)N)�nextrN���r���r����� StopIteration)rA���rS���r���r���r���rO���s��s���� �zPreprocessor.token)N)N)N)rC���rD���rE���rB���rT���rY���rK���rd���rr���rs���rv���r����r����r����r����r����r����rM���r����r����rO���r���r���r���r���rF�������s&��� <!5+2 B; �1F rF����__main__r���) r���r���r���r���r���r ���r ���r���r���r ���)3Z __future__r����sys�version_info�majorr����Zunicoder�����rangerk���rR����literalsr���Zt_CPP_POUNDZt_CPP_DPOUNDZt_CPP_IDr���Z t_CPP_INTEGERZt_CPP_FLOATr���r���r���r���r����rer���rL���Zos.pathr�����compiler7���r3���r:����objectr;���rF���rC���Zply.lexrG���r���r�����argv�fr����r9���r����r����rO���rS���rU���r@���r���r���r���r����<module> ���sl��� �����c �