HEX
Server: LiteSpeed
System: Linux standart9.isimtescil.net 3.10.0-962.3.2.lve1.5.26.7.el7.x86_64 #1 SMP Wed Oct 2 07:53:12 EDT 2019 x86_64
User: karalev (5310)
PHP: 8.2.29
Disabled: NONE
Upload Files
File: //opt/alt/python37/lib/python3.7/site-packages/mako/__pycache__/pyparser.cpython-37.pyc
B

�C]m�@s�dZddlZddlZddlmZddlmZddlmZddlmZddlm	Z	ej
rredd	d
dg�Ze�
d�Znedd	d
g�Ze�
d
�Ze�e�ddd�ZGdd�dej�ZGdd�dej�ZGdd�dej�ZGdd�de�ZdS)zyHandles parsing of Python code.

Parsing to AST is done via _ast on Python > 2.5, otherwise the compiler
module is used.
�N)�	_ast_util)�compat)�
exceptions)�util)�arg_stringname�True�False�None�print�arg�id�execc
KsTyt�|d|�Stk
rNtjdt��jjt��|dd�ff|��YnXdS)zParse an expression into ASTz	<unknown>z(%s) %s (%r)r�2N)	r�parse�	ExceptionrZSyntaxExceptionrZexception_as�	__class__�__name__)�code�mode�exception_kwargs�r�>/opt/alt/python37/lib/python3.7/site-packages/mako/pyparser.pyr)s
rc@szeZdZdd�Zdd�Zdd�Zdd�Zejr6d	d
�Z	dd�Z
d
d�Zdd�Zdd�Z
dd�Zdd�Zdd�Zdd�ZdS)�FindIdentifierscKs$d|_d|_t�|_||_||_dS)NF)�in_function�in_assign_targets�set�local_ident_stack�listenerr)�selfrrrrr�__init__;s
zFindIdentifiers.__init__cCs&|js|jj�|�n|j�|�dS)N)rr�declared_identifiers�addr)r�namerrr�
_add_declaredBszFindIdentifiers._add_declaredcCs|�|j�dS)N)r#r")r�noderrr�visit_ClassDefHszFindIdentifiers.visit_ClassDefcCs<|�|j�|j}d|_x|jD]}|�|�q W||_dS)NT)�visit�valuerZtargets)rr$Zin_a�nrrr�visit_AssignKszFindIdentifiers.visit_AssigncCsJ|jdk	r|�|j�|jdk	r,|�|j�x|jD]}|�|�q4WdS)N)r"r#�typer&�body)rr$�	statementrrr�visit_ExceptHandler]s

z#FindIdentifiers.visit_ExceptHandlercGs|�|d�dS)NT)�_visit_function)rr$�argsrrr�visit_LambdaeszFindIdentifiers.visit_LambdacCs|�|j�|�|d�dS)NF)r#r"r.)rr$rrr�visit_FunctionDefhsz!FindIdentifiers.visit_FunctionDefccs<x6|D].}t|tj�r.x|jD]
}|VqWq|VqWdS)N)�
isinstance�_astZTuple�elts)rr/rr(rrr�_expand_tuplesls

zFindIdentifiers._expand_tuplescCsn|j}d|_|j}|�dd�|�|jj�D��|_|rD|�|j�nx|jD]}|�|�qLW||_||_dS)NTcSsg|]}t|��qSr)�arg_id)�.0rrrr�
<listcomp>�sz3FindIdentifiers._visit_function.<locals>.<listcomp>)rr�unionr5r/r&r+)rr$Zislambda�infrr(rrrr.tszFindIdentifiers._visit_functioncCsP|�|j�|�|j�x|jD]}|�|�q Wx|jD]}|�|�q:WdS)N)r&�iter�targetr+Zorelse)rr$r,rrr�	visit_For�szFindIdentifiers.visit_ForcCsTt|jtj�r|�|j�n4|jtkrP|j|jjkrP|j|j	krP|jj
�|j�dS)N)r2Zctxr3ZStorer#r�reservedrr r�undeclared_identifiersr!)rr$rrr�
visit_Name�s
zFindIdentifiers.visit_NamecCsBx<|jD]2}|jdk	r$|�|j�q|�|j�d�d�qWdS)N�.r)�names�asnamer#r"�split)rr$r"rrr�visit_Import�s
zFindIdentifiers.visit_ImportcCsPxJ|jD]@}|jdk	r$|�|j�q|jdkr<tjd|j��|�|j�qWdS)N�*��'import *' is not supported, since all identifier names must be explicitly declared.  Please use the form 'from <modulename> import <name1>, <name2>, ...' instead.)rG)rBrCr#r"rZCompileExceptionr)rr$r"rrr�visit_ImportFrom�s

z FindIdentifiers.visit_ImportFromN)r�
__module__�__qualname__rr#r%r)r�py3kr-r0r1r5r.r=r@rErHrrrrr:s
rc@seZdZdd�Zdd�ZdS)�	FindTuplecKs||_||_||_dS)N)rr�code_factory)rrrMrrrrr�szFindTuple.__init__cCsxxr|jD]h}|j|f|j�}|jj�|�|jj�t|����|jj	}|�
|j	�|j_	|jj}|�
|j�|j_qWdS)N)r4rMrrZcodeargs�appendr/�ExpressionGeneratorr'r r9r?)rr$r(�pZldiZluirrr�visit_Tuple�szFindTuple.visit_TupleN)rrIrJrrQrrrrrL�srLc@seZdZdd�Zdd�ZdS)�	ParseFunccKs||_||_dS)N)rr)rrrrrrr�szParseFunc.__init__cCs�|j|j_dd�|jjD�}|jjr6|�t|jj��tjrBg}ndd�|jj	D�}|jj
rn|�t|jj
��||j_|jj|j_||j_
tjr�g|j_n|jj|j_|jj|j_|jj
|j_dS)NcSsg|]}t|��qSr)r6)r7rrrrr8�sz/ParseFunc.visit_FunctionDef.<locals>.<listcomp>cSsg|]}t|��qSr)r6)r7rrrrr8�s)r"r�funcnamer/ZvarargrNrrZpy2kZ
kwonlyargsZkwarg�argnames�defaults�
kwargnamesZ
kwdefaultsZkw_defaultsZvarargs�kwargs)rr$rTrVrrrr1�s"

zParseFunc.visit_FunctionDefN)rrIrJrr1rrrrrR�srRc@seZdZdd�Zdd�ZdS)rOcCst�d�|_|j�|�dS)Nz    )rZSourceGenerator�	generatorr&)rZastnoderrrr�szExpressionGenerator.__init__cCsd�|jj�S)N�)�joinrX�result)rrrrr'�szExpressionGenerator.valueN)rrIrJrr'rrrrrO�srO)r
)�__doc__�operatorr3ZmakorrrrZmako.compatrrKrr>�
attrgetterr6Zrestore__astrZNodeVisitorrrLrR�objectrOrrrr�<module>s$