%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<