File: //usr/lib/python3.9/site-packages/jinja2/__pycache__/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>