관리-도구
편집 파일: lexer.cpython-39.pyc
a �`{v � @ s� d Z ddlZddlmZ ddlmZ ddlmZ ddlm Z ddlm Z dd lmZ dd lmZ ddl mZ ddlmZ ed �Ze�dej�Ze�d�Ze�dej�Ze�d�Ze�dejejB �Zzeddd� W n ey� e�d�ZdZY n0 ddlm Z dZe d�Z!e d�Z"e d�Z#e d�Z$e d�Z%e d�Z&e d �Z'e d!�Z(e d"�Z)e d#�Z*e d$�Z+e d%�Z,e d&�Z-e d'�Z.e d(�Z/e d)�Z0e d*�Z1e d+�Z2e d,�Z3e d-�Z4e d.�Z5e d/�Z6e d0�Z7e d1�Z8e d2�Z9e d3�Z:e d4�Z;e d5�Z<e d6�Z=e d7�Z>e d8�Z?e d9�Z@e d:�ZAe d;�ZBe d<�ZCe d=�ZDe d>�ZEe d?�ZFe d@�ZGe dA�ZHe dB�ZIe dC�ZJe dD�ZKe dE�ZLe dF�ZMe dG�ZNe dH�ZOe dI�ZPe dJ�ZQe!e9e%e(e1e0e4e:e,e6e-e7e+e5e'e2e)e*e.e/e"e&e#e3e$e8dK�ZReSdLdM� eeR�D ��ZTeUeR�eUeT�k�s�J dN��e�dOdP�VdQdR� eWeRdSdT� dU�D �� �ZXeYeGeIeHe;eLeMeNg�ZZeYe;eOeIeNg�Z[dVdW� Z\dXdY� Z]dZd[� Z^d\d]� Z_d^d_� Z`G d`da� daea�ZbG dbdc� dcec�Zde G ddde� deea��Zee G dfdg� dgea��Zfdhdi� ZgG djdk� dkec�ZhG dldm� dmea�ZidS )nz�Implements a Jinja / Python combination lexer. The ``Lexer`` class is used to do some preprocessing. It filters out invalid operators like the bitshift operators we don't allow in templates. It separates template code and python code in expressions. � N)�literal_eval)�deque)� itemgetter� )�implements_iterator)�intern)� iteritems)� text_type)�TemplateSyntaxError)�LRUCache�2 z\s+z(\r\n|\r|\n)z7('([^'\\]*(?:\\.[^'\\]*)*)'|"([^"\\]*(?:\\.[^"\\]*)*)")z (\d+_)*\d+z� (?<!\.) # doesn't start with a . (\d+_)*\d+ # digits, possibly _ separated ( (\.(\d+_)*\d+)? # optional fractional part e[+\-]?(\d+_)*\d+ # exponent part | \.(\d+_)*\d+ # required fractional part ) u fööz <unknown>�evalz[a-zA-Z_][a-zA-Z0-9_]*F)�patternT�addZassign�colonZcommaZdiv�dot�eq�floordiv�gtZgteqZlbraceZlbracketZlparen�ltZlteq�mod�mul�ne�pipe�pow�rbraceZrbracketZrparenZ semicolon�sub�tildeZ whitespace�floatZinteger�name�string�operatorZblock_beginZ block_endZvariable_beginZvariable_endZ raw_beginZraw_endZ comment_beginZcomment_end�commentZlinestatement_beginZlinestatement_endZlinecomment_beginZlinecomment_endZlinecomment�data�initial�eof)�+�-�/z//�*�%z**�~�[�]�(�)�{�}z==z!=�>z>=�<z<=�=�.�:�|�,�;c C s g | ]\}}||f�qS � r: )�.0�k�vr: r: �0/usr/lib/python3.9/site-packages/jinja2/lexer.py� <listcomp>� � r? zoperators droppedz(%s)r7 c c s | ]}t �|�V qd S �N)�re�escape�r; �xr: r: r>