Your IP : 216.73.217.129
B
� f�# � @ s� d Z dZddlZddlZddlZddlZddlZddlZdd� Z dd� Z
dd � Zd
d� Zdd
d
dddddd�Z
e
fdd�ZdNdd�Zddddddddd �Zd!Zd"eefd#d$�Zd%d&d'd(d)d(d*d+d�Zd,Zd-d.� Zd"eefd/d0�Zed1k�r�ddlZddlZddlZddlZddlZejd eje� d2�d3�Z!e!j"d4d5d6d7� e!j"d8d9d:d;d<� e!j"d=d>d:d?d<� e!j"d@dAd:dBd<� e!j"dCdDd:dEd<� e!j"dFdGd:dHd<� e!�#� Z$e$j%�r�e$j&�s�e$j'�r�e!�(dI� e$j)Z)e*e)��Z+e+�,� Z-W dQ R X ee-�Z.e$j/�r�ee.�Z0nNe$j'�s
e$j&�ree.e)dJ�Z0n0e$j%�r*ee.�Z0ne$j1�r@ee.e)dJ�Z0nee.�Z0e$j&�r�ej2�3ej2�4e)��d dK Z5e*e5dL��Z+e+�6e0� W dQ R X e�*dMej2�7e5� � nej8�6e0� dS )Oz-Add syntax highlighting to Python source codezRaymond Hettinger� Nc C s
t t| �S )z)Return True if s is the name of a builtin)�hasattr�builtins)�s� r �</opt/alt/python37/lib64/python3.7/Tools/scripts/highlight.py�
is_builtin s r c C s| || \}}\}}||kr2| |d ||� |fS | |d |d� g| ||d � | |d d|� g }d� |�|fS )z8Join content from a range of lines between start and end� N� )�join)�lines�start�end�srow�scol�erow�ecolZrowsr r r �
combine_range s
<r c c sx | � d�}|�d� t�tt|�d�}d }}tj}d}�xt�|�D �]
}|| }} |\}}\}
}\}}
}d}|tjkr�d}n�|tj kr�|dd� dkr�d}nx|tj
kr�d }|tjks�|d
kr�d}nR|tjk�r|dkr�d
}n8| dkr�d}n*t
�|��r d}nt|��r| dk�rd}|rFt|||
|f�\}}d|fV |||
f }}||fV qFW t||||
f�\}}d|fV dS )z�Generate and classify chunks of Python for syntax highlighting.
Yields tuples in the form: (category, categorized_text).
Tr )r r �commentNr z{}[](),.:;@�operator�stringr � docstring)�def�class�import�from�
definition)r r �defname�keyword�.�builtin)�
splitlines�append� functools�partial�next�iter�tokenize�COMMENT�generate_tokens�OP�STRING�INDENT�NAMEr � iskeywordr r )�sourcer �readline�kindZtok_str�tok_typeZwritten�tokZ
prev_tok_typeZprev_tok_strr r r r Zlogical_lineno�textZline_upto_tokenr r r �analyze_python sD
r4 c C s6 g }x&| D ]\}}|� d|pd|f � q
W d�|�S )z-Straight text display of text classificationsz
%15s: %r
Zplainr )r! r
)�classified_text�resultr0 r3 r r r �
raw_highlightD s r7 )z[0;31mz[0m)z[0;32mz[0m)z[0;33mz[0m)z[0;35mz[0m)z[0;34mz[0m)r r r r r r r r c C s>