OwlCyberSecurity - MANAGER
Edit File: patcomp.cpython-35.pyc
��Yf�������������������@���s��d��Z��d�Z�d�d�l�Z�d�d�l�Z�d�d�l�m�Z�m�Z�m�Z�m�Z�m �Z �m �Z �d�d�l�m�Z�d�d�l�m �Z �e�j�j�e�j�j�e���d���Z�Gd �d ����d �e���Z�d�d����Z�Gd �d����d�e���Z�d�e�j�d�e�j�d�e�j�d�d�i�Z�d�d����Z�d�d����Z�d�d����Z�d�S)z�Pattern compiler. The grammar is taken from PatternGrammar.txt. The compiler compiles a pattern to a pytree.*Pattern instance. z#Guido van Rossum <guido@python.org>�����N����)�driver�literals�token�tokenize�parse�grammar)�pytree)�pygramzPatternGrammar.txtc���������������@���s���e��Z�d��Z�d�S)�PatternSyntaxErrorN)�__name__� __module__�__qualname__��r���r����4/opt/alt/python35/lib64/python3.5/lib2to3/patcomp.pyr������s���r���c������� ������c���sn���t��j�t��j�t��j�h�}�t�j�t�j�|����j���}�x4�|�D],�}�|�\�}�}�}�}�}�|�|�k�r:�|�Vq:�Wd�S)z6Tokenizes a string suppressing significant whitespace.N) r����NEWLINE�INDENT�DEDENTr����generate_tokens�io�StringIO�readline) �input�skip�tokensZ quintuple�type�value�start�endZ line_textr���r���r����tokenize_wrapper!���s���� r���c���������������@���sX���e��Z�d��Z�e�d�d���Z�d�d�d�d���Z�d�d����Z�d�d �d ���Z�d�d����Z�d�S) �PatternCompilerc�������������C���s^���t��j�|���|��_�t�j�|��j���|��_�t�j�|��_�t�j�|��_ �t��j �|��j�d�t��|��_��d�S)z^Initializer. Takes an optional alternative filename for the pattern grammar. ZconvertN)r���Zload_grammarr���r ���ZSymbols�symsZpython_grammarZ pygrammarZpython_symbols�pysymsZDriver�pattern_convert)�selfZgrammar_filer���r���r����__init__-���s ����zPatternCompiler.__init__Fc�������������C���s����t��|���}�y�|��j�j�|�d�|��}�Wn:�t�j�k �rd�}�z�t�t�|�������WYd�d�}�~�Xn�X|�r~�|��j�|���|�f�S|��j�|���Sd�S)z=Compiles a pattern string to a nested pytree.*Pattern object.�debugN)r���r���Zparse_tokensr���Z ParseErrorr����str�compile_node)r$���r���r&���Z with_treer����root�er���r���r����compile_pattern8���s����%zPatternCompiler.compile_patternc������� ���������s���|�j�����j�j�k�r"�|�j�d�}�|�j�����j�j�k�r�����f�d�d����|�j�d�d�d���D��}�t�|���d�k�rz�|�d�St�j�d�d����|�D��d�d�d �d��}�|�j����S|�j�����j�j �k�r���f�d �d����|�j�D��}�t�|���d�k�r��|�d�St�j�|�g�d�d�d �d��}�|�j����S|�j�����j�j �k�ri���j�|�j�d�d�����}�t�j�|���}�|�j����S|�j�����j�j �k�s�t���d�}�|�j�}�t�|���d�k�r�|�d�j��t�j�k�r�|�d�j�}�|�d�d���}�d�}�t�|���d�k�r#|�d�j�����j�j�k�r#|�d�}�|�d�d���}����j�|�|���}�|�d�k �r�|�j�����j�j�k�s\t���|�j�} �| �d�} �| �j��t�j�k�r�d�}�t�j�}�n��| �j��t�j�k�r�d�}�t�j�}�n��| �j��t�j�k�r<| �d�j��t�j�k�s�t���t�| ���d�k�s�t������j�| �d���}�}�t�| ���d�k�rH���j�| �d���}�n�d �sHt���|�d�k�s`|�d�k�r�|�j����}�t�j�|�g�g�d�|�d �|��}�|�d�k �r�|�|�_�|�j����S)zXCompiles a node, recursively. This is one big switch on the node type. r���c����������������s���g��|��]�}����j��|�����q�Sr���)r(���)�.0�ch)r$���r���r���� <listcomp>P���s��� �z0PatternCompiler.compile_node.<locals>.<listcomp>N����r���c�������������S���s���g��|��]�}�|�g���q�Sr���r���)r,����ar���r���r���r.���S���s��� ��min�maxc����������������s���g��|��]�}����j��|�����q�Sr���)r(���)r,���r-���)r$���r���r���r.���W���s��� ���������F���r5���r5���r5���)r3���r4���)r���r!���ZMatcher�childrenZAlternatives�lenr ����WildcardPattern�optimizeZAlternativeZNegatedUnit� compile_basicZNegatedPatternZUnit�AssertionErrorr����EQUALr���ZRepeater�STARZHUGE�PLUS�LBRACE�RBRACE�get_int�name) r$����nodeZalts�pZunits�patternrB����nodes�repeatr6���Zchildr1���r2���r���)r$���r���r(���D���sh���� )( ( + ! zPatternCompiler.compile_nodeNc�������������C���s���t��|���d�k�s�t���|�d�}�|�j�t�j�k�rb�t�t�j�|�j�����}�t �j �t�|���|���S|�j�t�j�k�rp|�j�}�|�j ����r��|�t�k�r��t�d�|�����|�d�d����r��t�d�����t �j �t�|���S|�d�k�r��d��}�n@�|�j�d���s't�|��j�|�d����}�|�d��k�r't�d�|�����|�d�d����rW|��j�|�d�j�d���g�}�n�d��}�t �j�|�|���Sns�|�j�d�k�r�|��j�|�d���S|�j�d �k�r�|�d��k�s�t���|��j�|�d���}�t �j�|�g�g�d �d�d�d��Sd�s�t�|�����d��S) Nr���r���zInvalid token: %rzCan't have details for token�any�_zInvalid symbol: %r�(�[r1���r2���F)r7���r;���r���r����STRINGr'���r���Z evalStringr���r ���ZLeafPattern�_type_of_literal�NAME�isupper� TOKEN_MAPr���� startswith�getattrr"���r(���r6���ZNodePatternr8���)r$���rF���rG���rC���r���r���Zcontent� subpatternr���r���r���r:�������s<���� zPatternCompiler.compile_basicc�������������C���s%���|�j��t�j�k�s�t���t�|�j���S)N)r���r����NUMBERr;����intr���)r$���rC���r���r���r���rA�������s����zPatternCompiler.get_int) r���r ���r����_PATTERN_GRAMMAR_FILEr%���r+���r(���r:���rA���r���r���r���r���r ���+���s ���G#r ���rN���rL���rT���ZTOKENc�������������C���s9���|��d�j�����r�t�j�S|��t�j�k�r1�t�j�|��Sd��Sd��S)Nr���)�isalphar���rN���r���Zopmap)r���r���r���r���rM�������s ����rM���c�������������C���sW���|�\�}�}�}�}�|�s'�|�|��j��k�r=�t�j�|�|�d�|��St�j�|�|�d�|��Sd�S)z9Converts raw node information to a Node or Leaf instance.�contextN)Z number2symbolr ���ZNodeZLeaf)r���Z raw_node_infor���r���rX���r6���r���r���r���r#�������s����r#���c�������������C���s���t�����j�|����S)N)r ���r+���)rE���r���r���r���r+�������s����r+���)�__doc__� __author__r����osZpgen2r���r���r���r���r���r�����r ���r ����path�join�dirname�__file__rV���� Exceptionr���r����objectr ���rN���rL���rT���rP���rM���r#���r+���r���r���r���r����<module> ���s$���. �