%PDF- %PDF-
| Direktori : /opt/alt/python37/lib/python3.7/site-packages/jinja2/__pycache__/ |
| Current File : //opt/alt/python37/lib/python3.7/site-packages/jinja2/__pycache__/lexer.cpython-37.pyc |
B
��R�n � @ s� d Z ddlZddlmZ ddlmZ ddlmZ ddlm Z ddl
mZmZm
Z
mZmZ e d�Ze�d ej�Ze�d
ej�Ze�d�Zyedd
d� W n ek
r� e�d�ZY n$X ddlmZ e�dejejf �Ze�d�Ze�d�Zed�Zed�Z ed�Z!ed�Z"ed�Z#ed�Z$ed�Z%ed�Z&ed�Z'ed�Z(ed�Z)ed�Z*ed �Z+ed!�Z,ed"�Z-ed#�Z.ed$�Z/ed%�Z0ed&�Z1ed'�Z2ed(�Z3ed)�Z4ed*�Z5ed+�Z6ed,�Z7ed-�Z8ed.�Z9ed/�Z:ed0�Z;ed1�Z<ed2�Z=ed3�Z>ed4�Z?ed5�Z@ed6�ZAed7�ZBed8�ZCed9�ZDed:�ZEed;�ZFed<�ZGed=�ZHed>�ZIed?�ZJed@�ZKedA�ZLedB�ZMedC�ZNedD�ZOee7e#e&e/e.e2e8e*e4e+e5e)e3e%e0e'e(e,e-e e$e!e1e"e6dE�ZPeQdFdG� eeP�D ��ZReSeP�eSeR�k�s�tTdH��e�dIdJ�UdKdL� eVePdMdN� dO�D �� �ZWeXeEeGeFe9e9eJeKeLg�ZYeXe9eMeGeLg�ZZdPdQ� Z[dRdS� Z\dTdU� Z]dVdW� Z^dXdY� Z_G dZd[� d[e`�ZaG d\d]� d]eb�Zce
G d^d_� d_e`��Zde
G d`da� dae`��Zedbdc� ZfG ddde� dee`�ZgdS )fa�
jinja2.lexer
~~~~~~~~~~~~
This module implements a Jinja / Python combination lexer. The
`Lexer` class provided by this module is used to do some preprocessing
for Jinja.
On the one hand it filters out invalid operators like the bitshift
operators we don't allow in templates. On the other hand it separates
template code and python code in expressions.
:copyright: (c) 2010 by the Jinja Team.
:license: BSD, see LICENSE for more details.
� N)�
itemgetter)�deque)�TemplateSyntaxError)�LRUCache)�next� iteritems�implements_iterator� text_type�intern�2 z\s+z7('([^'\\]*(?:\\.[^'\\]*)*)'|"([^"\\]*(?:\\.[^"\\]*)*)")z\d+u fööz <unknown>�evalz\b[a-zA-Z_][a-zA-Z0-9_]*\b)�_stringdefsz [%s][%s]*z(?<!\.)\d+\.\d+z(\r\n|\r|\n)�addZassignZcolonZcommaZdiv�dot�eq�floordiv�gtZgteqZlbraceZlbracketZlparen�ltZlteq�mod�mul�ne�pipe�powZrbraceZrbracketZrparenZ semicolon�sub�tildeZ
whitespace�float�integer�name�string�operator�block_begin� block_endZvariable_begin�variable_end� raw_begin�raw_endZ
comment_beginZcomment_end�comment�linestatement_begin�linestatement_endZlinecomment_beginZlinecomment_end�linecomment�data�initial�eof)�+�-�/z//�*�%z**�~�[�]�(�)�{�}z==z!=�>z>=�<z<=�=�.�:�|�,�;c C s g | ]\}}||f�qS � r@ )�.0�k�vr@ r@ �=/opt/alt/python37/lib/python3.7/site-packages/jinja2/lexer.py�
<listcomp>� s rE zoperators droppedz(%s)r= c c s | ]}t �|�V qd S )N)�re�escape)rA �xr@ r@ rD � <genexpr>� s rI c C s
t | � S )N)�len)rH r@ r@ rD �<lambda>� � rK )�keyc C sL | t krt | S tdtdtdtdtdtdtdtdt dt
d td
tdi�
| | �S )Nzbegin of commentzend of commentr% zbegin of statement blockzend of statement blockzbegin of print statementzend of print statementzbegin of line statementzend of line statementztemplate data / textzend of template)�reverse_operators�TOKEN_COMMENT_BEGIN�TOKEN_COMMENT_END�
TOKEN_COMMENT�TOKEN_LINECOMMENT�TOKEN_BLOCK_BEGIN�TOKEN_BLOCK_END�TOKEN_VARIABLE_BEGIN�TOKEN_VARIABLE_END�TOKEN_LINESTATEMENT_BEGIN�TOKEN_LINESTATEMENT_END�
TOKEN_DATA� TOKEN_EOF�get)�
token_typer@ r@ rD �_describe_token_type� s r] c C s | j dkr| jS t| j �S )z#Returns a description of the token.r )�type�valuer] )�tokenr@ r@ rD �describe_token� s
ra c C s2 d| kr&| � dd�\}}|dkr*|S n| }t|�S )z0Like `describe_token` but for token expressions.r<