403Webshell
Server IP : 127.0.0.1  /  Your IP : 216.73.216.109
Web Server : Apache/2.4.54 (Win64) OpenSSL/1.1.1q PHP/8.1.10
System : Windows NT DESKTOP-E5T4RUN 10.0 build 19045 (Windows 10) AMD64
User : SERVERWEB ( 0)
PHP Version : 8.1.10
Disable Function : NONE
MySQL : OFF |  cURL : ON |  WGET : OFF |  Perl : OFF |  Python : OFF |  Sudo : OFF |  Pkexec : OFF
Directory :  C:/cygwin64/lib/python3.9/site-packages/jinja2/__pycache__/

Upload File :
current_dir [ Writeable] document_root [ Writeable]

 

Command :


[ Back ]     

Current File : C:/cygwin64/lib/python3.9/site-packages/jinja2/__pycache__/parser.cpython-39.opt-2.pyc
a

V�4d���@s�UddlZddlZddlmZddlmZddlmZddlmZddlm	Z	ej
rhddlZddl
mZe�d	ejej�Ze�d
ejej�Zegd��Zegd��Zejejejejejejd
�Zej e!ej"ej#fe$d<Gdd�d�Z%dS)�N�)�nodes)�TemplateAssertionError)�TemplateSyntaxError)�describe_token)�describe_token_expr)�Environment�_ImportInclude�
_MacroCall)�for�if�blockZextends�printZmacroZinclude�from�import�set�with�
autoescape)�eq�ne�ltZlteq�gtZgteq)�add�sub�mul�div�floordiv�mod�_math_nodesc
@seZdZd�deejeejeejedd�dd�Zdefeejeej	edd�dd	�Z
ejeejejed
fejedd�dd
�Z
d�eejedd�dd�Zd�ejejed
fejedd�dd�Zd�ejejed
fed�dd�Zd�ejeejd�dd�Zejejejejfd�dd�Zd�ejed
feejejd�dd �Zejejejfd�d!d"�Zejd�d#d$�Zejd�d%d&�Zej d�d'd(�Z!ej"d�d)d*�Z#ej$d�d+d,�Z%ej&d�d-d.�Z'e(ee(d/�d0d1�Z)ej*d�d2d3�Z+ej,d�d4d5�Z-ej.d�d6d7�Z/e0dd8�d9d:�Z1ej2d�d;d<�Z3ej4d�d=d>�Z5ej6d�d?d@�Z7ej8d�dAdB�Z9e:j;d�edCej<dD�dEdF��Z=e:j;d�eeejejed
feejej>ej<ejfdH�dIdF��Z=d�eeejejed
feejej>ej<ejfdH�dJdF�Z=d�eej?dK�dLdM�Z@ej?d�dNdO�ZAej?d�dPdQ�ZBej?d�dRdS�ZCej?d�dTdU�ZDej?d�dVdW�ZEej?d�dXdY�ZFej?d�dZd[�ZGej?d�d\d]�ZHej?d�d^d_�ZId�eej?d`�dadb�ZJej?d�dcdd�ZKd�eeejejed
feejejej?fde�dfdg�ZLejd�dhdi�ZMejNd�djdk�ZOej?ej?d8�dldm�ZPej?ej?d8�dndo�ZQej?ejejRejSfd8�dpdq�ZTej?d�drds�ZUejd�dtdu�ZVej?ejWd8�dvdw�ZXd�ejej?eejej?dx�dydz�ZYej?ej?d8�d{d|�ZZd�ejejed
fejejd}�d~d�Z[ej\d�d�d��Z]dS)��ParserNr)�environment�source�name�filename�state�returncCsl||_|�||||�|_||_||_d|_i|_|��D]}|jD]}|j	|j|<qBq8d|_
g|_g|_dS)NFr)
r �	_tokenize�streamr"r#�closed�
extensionsZiter_extensions�tags�parse�_last_identifier�
_tag_stack�_end_token_stack)�selfr r!r"r#r$�	extension�tag�r2�1/usr/lib/python3.9/site-packages/jinja2/parser.py�__init__3s�
zParser.__init__zte.NoReturn)�msg�lineno�excr%cCs(|dur|jjj}||||j|j��dS�N)r'�currentr6r"r#)r/r5r6r7r2r2r3�failJs

zParser.fail.)r"�end_token_stackr6r%cCs�t�}|D]}|�tt|��q
|r@d�tttt|d���}nd}|durTdg}nd|�d�g}|r�|dur�||vr�|�d|�d��n|�d|�d��|jr�|�d|jd�d��|�d	�|�|�dS)
Nz or ���zUnexpected end of template.zEncountered unknown tag �.z\You probably made a nesting mistake. Jinja is expecting this tag, but currently looking for z*Jinja was looking for the following tags: z/The innermost block that needs to be closed is � )	r�update�mapr�join�repr�appendr-r:)r/r"r;r6ZexpectedZexprsZcurrently_looking�messager2r2r3�_fail_ut_eofXs8���
���zParser._fail_ut_eof)r"r6r%cCs|�||j|�dSr8)rEr.)r/r"r6r2r2r3�fail_unknown_tag�szParser.fail_unknown_tag)�
end_tokensr6r%cCs.t|j�}|dur|�|�|�d||�dSr8)�listr.rCrE)r/rGr6�stackr2r2r3�fail_eof�s

zParser.fail_eof)�extra_end_rulesr%cCs,|jjjdvrdS|dur(|jj�|�SdS)N)�variable_end�	block_end�rparenTF)r'r9�type�test_any)r/rKr2r2r3�is_tuple_end�s
zParser.is_tuple_end)r6r%cCs8|jd7_t�tj�}tjj|d|j��|d�|S)Nr�fi�r6)r,�object�__new__r�InternalName�Noder4)r/r6�rvr2r2r3�free_identifier�szParser.free_identifier�r%cCs$|jj}|jdkr |�d|j�|j�|j�d}z�|jtvrjt	|d|jjj���}|�W|rh|j�
�S|jdkr�|��W|r�|j�
�S|jdkr�|��W|r�|j�
�S|j
�|j�}|dur�||�W|r�|j�
�S|j�
�d}|�|j|j�W|�r |j�
�n|�r|j�
�0dS)Nr"ztag name expectedTZparse_�call�filterF)r'r9rOr:r6r-rC�value�_statement_keywords�getattr�pop�parse_call_block�parse_filter_blockr)�getrF)r/�tokenZpop_tag�f�extr2r2r3�parse_statement�sF


�

�

�	
�
�zParser.parse_statementF)rG�drop_needler%cCsL|j�d�|j�d�|�|�}|jjjdkr:|�|�|rHt|j�|S)N�colonrM�eof)r'�skip_if�expect�subparser9rOrJ�next)r/rGrh�resultr2r2r3�parse_statements�s



zParser.parse_statementscCsft|j�j}|jdd�}|j�d�r<|��}tj|||d�S|�d�}|j	ddd�}tj
||||d�S)NT)�with_namespace�assignrS)zname:endset�rh)rnr'r6�parse_assign_targetrk�parse_tupler�Assign�parse_filterrp�AssignBlock)r/r6�target�exprZfilter_node�bodyr2r2r3�	parse_set�s
zParser.parse_setc	Cs�|j�d�j}|jdd�}|j�d�|jddd�}d}|j�d�rL|��}|j�d	�}|�d
�}t|j�j	dkrxg}n|jdd
d�}t
j|||||||d�S)Nzname:for)�name:in)rKr}F)�name:recursive)�
with_condexprrK�name:ifr~)�name:endfor�	name:elseZendfor)r�TrsrS)r'rlr6rtrurk�parse_expressionrprnr]r�For)r/r6ry�iter�test�	recursiver{�else_r2r2r3�	parse_for�s�
zParser.parse_forcCs�tj|j�d�jd�}}|jdd�|_|�d�|_g|_	g|_
t|j�}|�d�rvtj|jjjd�}|j	�
|�qq�|�d�r�|jdd	d
�|_
q�q|S)Nr�rSF�r)�	name:elifr��
name:endifr�r�)r�Trs)r�Ifr'rlr6rur�rpr{Zelif_r�rnr9rC)r/�noderordr2r2r3�parse_if�s


zParser.parse_ifcCs�tjt|j�jd�}g}g}|jjjdkrr|r:|j�d�|��}|�	d�|�
|�|j�d�|�
|���q||_||_
|jddd�|_|S)	NrSrM�comma�paramrr)zname:endwithTrs)r�Withrnr'r6r9rOrlrt�set_ctxrCr��targets�valuesrpr{)r/r�r�r�ryr2r2r3�
parse_withs

zParser.parse_withcCsDtjt|j�jd�}t�d|���g|_|jddd�|_	t�
|g�S)NrSr)zname:endautoescapeTrs)rZScopedEvalContextModifierrnr'r6�Keywordr��optionsrpr{�Scope�r/r�r2r2r3�parse_autoescape szParser.parse_autoescapecCs�tjt|j�jd�}|j�d�j|_|j�d�|_	|j�d�|_
|jjjdkrX|�
d�|jddd	�|_|j
r�td
d�|jD��s�|�
d�|j�d
|j�|S)NrSr"zname:scopedz
name:requiredrzpBlock names in Jinja have to be valid Python identifiers and may not contain hyphens, use an underscore instead.)z
name:endblockTrscss0|](}|jD]}t|tj�o$|j��VqqdSr8)r�
isinstance�TemplateData�data�isspace)�.0r{�childr2r2r3�	<genexpr>:s
�z%Parser.parse_block.<locals>.<genexpr>z7Required blocks can only contain comments or whitespacezname:)r�Blockrnr'r6rlr]r"rkZscoped�requiredr9rOr:rpr{�allr�r2r2r3�parse_block&s��
zParser.parse_blockcCs"tjt|j�jd�}|��|_|S�NrS)r�Extendsrnr'r6r��templater�r2r2r3�
parse_extendsDs
zParser.parse_extends)r��defaultr%cCsH|jj�dd�r>|j���d�r>t|j�jdk|_|j��n||_|S)Nz	name:withzname:without�name:contextr)	r'r9rP�lookr�rnr]�with_context�skip)r/r�r�r2r2r3�parse_import_contextIs��zParser.parse_import_contextcCsbtjt|j�jd�}|��|_|jj�d�rP|j�	��d�rPd|_
|j�d�nd|_
|�|d�S)NrSzname:ignorezname:missingT�F)
r�Includernr'r6r�r�r9r�r�Zignore_missingr�r�r�r2r2r3�
parse_includeUs
�zParser.parse_includecCsFtjt|j�jd�}|��|_|j�d�|jdd�j	|_
|�|d�S)NrS�name:asT��	name_onlyF)r�Importrnr'r6r�r�rlrtr"ryr�r�r2r2r3�parse_importas

zParser.parse_importcstjt�j�jd������_�j�d�g�_t	d���fdd�}�jrV�j�d��jj
jdkr�|�rlq��jdd	�}|j
�d
�r��jd|jtd��j�d
�rĈjdd	�}�j�|j
|j
f�n�j�|j
�|�s��jj
jdkr�q�qD�j�d�qDt�d��s
d�_�S)NrSzname:importrZcsB�jjjdvr>�j���d�r>t�j�jdk�_�j��dSdS)N>rZwithoutr�rTF)r'r9r]r�r�rnr�r�r2�r�r/r2r3�
parse_contextns�
z(Parser.parse_from.<locals>.parse_contextr�r"Tr��_z4names starting with an underline can not be imported)r7r�r�F)r�
FromImportrnr'r6r�r�rl�names�boolr9rOrtr"�
startswithr:rrkrC�hasattrr�)r/r�ry�aliasr2r�r3�
parse_fromhs6
�zParser.parse_from)r�r%cCs�g}|_g}|_|j�d�|jjjdkr�|r>|j�d�|jdd�}|�d�|j�d�rp|�	|�
��n|r~|�d�|�	|�q |j�d�dS)	N�lparenrNr�Tr�r�rrz-non-default argument follows default argument)�args�defaultsr'rlr9rOrtr�rkrCr�r:)r/r�r�r��argr2r2r3�parse_signature�s



zParser.parse_signaturecCsvtjt|j�jd�}|jjjdkr.|�|�ng|_g|_	|�
�}t|tj�s\|�
d|j�||_|jddd�|_|S)NrSr�z
expected call)zname:endcallTrs)r�	CallBlockrnr'r6r9rOr�r�r�r�r��Callr:r[rpr{)r/r�Z	call_noder2r2r3ra�szParser.parse_call_blockcCs8tjt|j�jd�}|jddd�|_|jddd�|_|S)NrST)�start_inline)zname:endfilterrs)	r�FilterBlockrnr'r6rwr\rpr{r�r2r2r3rb�szParser.parse_filter_blockcCsBtjt|j�jd�}|jdd�j|_|�|�|jddd�|_	|S)NrSTr�)z
name:endmacrors)
r�Macrornr'r6rtr"r�rpr{r�r2r2r3�parse_macro�s

zParser.parse_macrocCsPtjt|j�jd�}g|_|jjjdkrL|jr:|j�d�|j�|�	��q|S)NrSrMr�)
r�Outputrnr'r6r9rOrlrCr�r�r2r2r3�parse_print�szParser.parse_printzte.Literal[True])�
with_tupler�r%cCsdSr8r2)r/r�r�r2r2r3rt�szParser.parse_assign_targetT)r�r�rKrqr%cCsdSr8r2)r/r�r�rKrqr2r2r3rt�scCs�|rN|j��jdkrN|j�d�}t|j�|j�d�}tj|j|j|jd�}nL|rt|j�d�}tj	|jd|jd�}n&|r�|j
d|d�}n|��}|�d�|�
�s�|�dt|�j����|j�|S)N�dotr"rS�storeT)�
simplifiedrKzcan't assign to )r'r�rOrlrnr�NSRefr]r6�Nameru�
parse_primaryr�Z
can_assignr:�__name__�lower)r/r�r�rKrqrd�attrryr2r2r3rt�s&
�
�)rr%cCs|r|��S|��Sr8)�parse_condexpr�parse_or)r/rr2r2r3r�szParser.parse_expressioncCsb|jjj}|��}|j�d�r^|��}|j�d�r<|��}nd}tj||||d�}|jjj}q|S)Nr�r�rS)r'r9r6r�rkr�rZCondExpr)r/r6Zexpr1Zexpr2Zexpr3r2r2r3r�
s

zParser.parse_condexprcCsF|jjj}|��}|j�d�rB|��}tj|||d�}|jjj}q|S)N�name:orrS)r'r9r6�	parse_andrkrZOr�r/r6�left�rightr2r2r3r�s
zParser.parse_orcCsF|jjj}|��}|j�d�rB|��}tj|||d�}|jjj}q|S)N�name:andrS)r'r9r6�	parse_notrkrZAndr�r2r2r3r�"s
zParser.parse_andcCs4|jj�d�r,t|j�j}tj|��|d�S|��S)N�name:notrS)	r'r9r�rnr6r�Notr��
parse_compare)r/r6r2r2r3r�+szParser.parse_notcCs�|jjj}|��}g}|jjj}|tvrJt|j�|�t�	||����nh|j�
d�rn|�t�	d|����nD|jj�d�r�|j���d�r�|j�
d�|�t�	d|����nq�|jjj}q|s�|Stj|||d�S)Nr}�inr�r�ZnotinrS)r'r9r6�parse_math1rO�_compare_operatorsrnrCrZOperandrkr�r�r�ZCompare)r/r6rz�ops�
token_typer2r2r3r�1s&


�zParser.parse_comparecCs^|jjj}|��}|jjjdvrZt|jjj}t|j�|��}||||d�}|jjj}q|S)N)rrrS)r'r9r6�parse_concatrOrrn�r/r6r��clsr�r2r2r3r�Hs

zParser.parse_math1cCs^|jjj}|��g}|jjjdkr<t|j�|�|���qt|�dkrP|dStj	||d�S)N�tilderrrS)
r'r9r6�parse_math2rOrnrC�lenrZConcat)r/r6r�r2r2r3r�Ss


zParser.parse_concatcCs^|jjj}|��}|jjjdvrZt|jjj}t|j�|��}||||d�}|jjj}q|S)N)rrrrrS)r'r9r6�	parse_powrOrrnr�r2r2r3r�]s

zParser.parse_math2cCsR|jjj}|��}|jjjdkrNt|j�|��}tj|||d�}|jjj}q|S)N�powrS)r'r9r6�parse_unaryrOrnrZPowr�r2r2r3r�hs

zParser.parse_pow)�with_filterr%cCs�|jjj}|jjj}|dkr<t|j�tj|�d�|d�}n0|dkrdt|j�tj|�d�|d�}n|�	�}|�
|�}|r�|�|�}|S)NrFrSr)r'r9rOr6rnrZNegr�ZPosr��
parse_postfix�parse_filter_expr)r/r�r�r6r�r2r2r3r�rs





zParser.parse_unarycCsr|jj}|jdkrp|jdvr4tj|jdv|jd�}n0|jdvrPtjd|jd�}ntj|jd|jd�}t|j�n�|jdkr�t|j�|jg}|j}|jjjdkr�|�	|jjj�t|j�q�tjd�
|�|d�}n�|jd	vr�t|j�tj|j|jd�}nt|jd
k�r*t|j�|jdd�}|j�d
�nD|jdk�r@|�
�}n.|jdk�rV|��}n|�dt|���|j�|S)Nr")�trueZfalse�True�False)r�r�rS)Znone�None�load�string�)�integer�floatr�T)�explicit_parenthesesrN�lbracket�lbracezunexpected )r'r9rOr]r�Constr6r�rnrCrArurl�
parse_list�
parse_dictr:r)r/rdr��bufr6r2r2r3r��s:









zParser.parse_primary)r�rrKrr%c	s��jjj}|r�j}n |r"�j}ntjd��fdd�}g}d}|rN�j�d���|�rZq�|�	|���jjj
dkr�d}nq��jjj}q>|s�|r�|dS|s���dt�jj����tj
|d	|d
�S)NrZcs�jdd�S)NFr�)r�r2�r/r2r3r+�sz!Parser.parse_tuple.<locals>.parseFr�TrzExpected an expression, got r�rS)r'r9r6r�r�r�ExprrlrQrCrOr:r�Tuple)	r/r�rrKrr6r+r�Zis_tupler2rr3ru�s6


��zParser.parse_tuplecCsj|j�d�}g}|jjjdkrN|r.|j�d�|jjjdkr>qN|�|���q|j�d�tj||jd�S)Nr�rbracketr�rS)	r'rlr9rOrCr�r�Listr6)r/rd�itemsr2r2r3r�szParser.parse_listcCs�|j�d�}g}|jjjdkrt|r.|j�d�|jjjdkr>qt|��}|j�d�|��}|�tj|||jd��q|j�d�tj	||jd�S)Nr�rbracer�rirS)
r'rlr9rOr�rCrZPairr6�Dict)r/rdr�keyr]r2r2r3r�szParser.parse_dictcCsB|jjj}|dks|dkr&|�|�}q|dkr>|�|�}qq>q|S)Nr�rr�)r'r9rO�parse_subscript�
parse_call�r/r�r�r2r2r3r�s
zParser.parse_postfixcCs\|jjj}|dkr|�|�}q|dkr@|jjjdkr@|�|�}q|dkrX|�|�}qqXq|S)N�piper"�isr�)r'r9rOrwr]�
parse_testrrr2r2r3r�s
zParser.parse_filter_exprcCst|j�}|jdkr�|jj}t|j�|jdkrFtj||jd|jd�S|jdkr^|�d|j�tj	|j|jd�}tj
||d|jd�S|jdk�r
g}|jjjdkr�|r�|j�d	�|�|�
��q�|j�d�t|�d
kr�|d}ntj|d|jd�}tj
||d|jd�S|�d|j�dS)
Nr�r"r�rSr�zexpected name or numberrr
r�rrzexpected subscript expression)rnr'rOr9r�Getattrr]r6r:r�GetitemrlrC�parse_subscribedr�r	)r/r�rdZ
attr_tokenr�r�r2r2r3rs0



�

zParser.parse_subscriptcCs�|jjj}|jjjdkr*t|j�dg}n*|��}|jjjdkrD|St|j�|g}|jjjdkrn|�d�n(|jjjdvr�|�|���n
|�d�|jjjdkr�t|j�|jjjdvr�|�|���q�|�d�n
|�d�tj|d|i�S)Nri)r
r�r6)	r'r9r6rOrnr�rCrZSlice)r/r6r�r�r2r2r3r>s*





zParser.parse_subscribedc	s|�j�d��g}g}d}d}d}tdd���fdd�}�jjjdk�rd|rh�j�d��jjjdkrh�qd�jjjdkr�||duo�|du�t�j����}n��jjjd	kr�||du�t�j����}n��jjjd
k�r2�j��jdk�r2||du��jjj}�j�	d����}|�
tj|||j
d
��n,||du�oL|du�oL|�|�
����d}q6�j�d�||||fS)Nr�F)rzr%cs|s��d�j�dS)Nz+invalid syntax for function call expression)r:r6)rz�r/rdr2r3�ensurefsz&Parser.parse_call_args.<locals>.ensurerNr�rr�r"rrr�rST)r'rlr�r9rOrnr�r�r]r�rCrr�r6)	r/r��kwargs�dyn_args�
dyn_kwargsZ
require_commarrr]r2rr3�parse_call_args^sD



��
zParser.parse_call_argscCs0|jj}|��\}}}}tj||||||jd�Sr�)r'r9rrr�r6)r/r�rdr�rrrr2r2r3r�szParser.parse_call)r�r�r%c		Cs�|jjjdks|r�|s t|j�|j�d�}|j}|jjjdkrbt|j�|d|j�d�j7}q2|jjjdkr�|��\}}}}ng}g}d}}tj|||||||j	d�}d}q|S)Nrr"r�r=r�rSF)
r'r9rOrnrlr]rrZFilterr6)	r/r�r�rdr"r�rrrr2r2r3rw�s$

�zParser.parse_filterc
	Cs t|j�}|jj�d�r(t|j�d}nd}|j�d�j}|jjjdkrjt|j�|d|j�d�j7}q:d}}g}|jjjdkr�|��\}}}}nV|jjjdvr�|jj�d	d
d�s�|jj�d�r�|�	d
�|�
�}	|�|	�}	|	g}ng}tj
|||||||jd�}|�rtj||jd�}|S)Nr�TFr"r�r=r�>rr�r�r�r�rr"r�r�r�zname:isz'You cannot chain multiple tests with isrS)rnr'r9r�rlr]rOrrPr:r�r�rZTestr6r�)
r/r�rdZnegatedr"rrrr�Zarg_noder2r2r3r�s8


�	

�zParser.parse_test)rGr%csrg�g��j}|dur"|j�|�dd���fdd�}�z|j�r:|jj}|jdkr||jrp|tj|j|jd��t	|j�q:|jdkr�t	|j�||j
dd��|j�d	�q:|jd
k�r0|�t	|j�|dur�|jjj|�r��W|dur�|j�
�S|��}t|t��r��|�n
��|�|j�d�q:td��q:|�W|du�rn|j�
�n|du�rl|j�
�0�S)
NrZcs8�r4�dj}��tj�dd�|d���dd�=dS)NrrS)r6rCrr�rS�r{Zdata_bufferr2r3�
flush_data�s
z#Parser.subparse.<locals>.flush_datar�rSZvariable_beginTr�rLZblock_beginrMzinternal parsing error)rCr.r'r9rOr]rr�r6rnrurlrPr`rgr�rH�extend�AssertionError)r/rGZadd_datar rdrXr2rr3rm�sN



�
�


�
zParser.subparsecCs"tj|��dd�}|�|j�|S)NrrS)r�TemplatermZset_environmentr )r/ror2r2r3r+szParser.parse)NNN)N)NN)N)N)F)..)TFNF)TFNF)T)T)FTNF)F)N)^r��
__module__�__qualname__�str�t�Optionalr4r�int�Typer:rr	rErFrJr�rQrrVrY�UnionrWrgrprvrxr|r�r�r�r�r�r�r�r�r�r�r�r�r	r�r�r�r�r�r�r�r
r�r�rar�rbr�r�r�r��typing�overloadr�rtr�rr�r�r�r�r�r�r�r�r�r�r�r�rurrrr�r�rrrrrr�rrwrrmr#r+r2r2r2r3r.s	�����)�
�����
"�
��*	������*			

$��B
� 1�
�'�
�1r)&r,r'r�r�
exceptionsrrZlexerrr�
TYPE_CHECKINGZtyping_extensions�ter r�TypeVarr�r�r	r�r�r
�	frozensetr^r�ZAddZSubZMulZDivZFloorDivZModrrr&r*r�__annotations__rr2r2r2r3�<module>s0�� 

Youez - 2016 - github.com/yon3zu
LinuXploit