403Webshell
Server IP : 192.158.238.246  /  Your IP : 3.139.237.30
Web Server : LiteSpeed
System : Linux uniform.iwebfusion.net 4.18.0-553.27.1.lve.1.el8.x86_64 #1 SMP Wed Nov 20 15:58:00 UTC 2024 x86_64
User : jenniferflocom ( 1321)
PHP Version : 8.1.32
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : ON  |  Sudo : OFF  |  Pkexec : OFF
Directory :  /opt/alt/python38/lib/python3.8/site-packages/pycparser/__pycache__/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /opt/alt/python38/lib/python3.8/site-packages/pycparser/__pycache__/c_generator.cpython-38.pyc
U

ӗ_5�@s ddlmZGdd�de�ZdS)�)�c_astc@s�eZdZdZdd�Zdd�Zdd�Zdd	�Zd
d�Zdd
�Z	dd�Z
dd�Zdd�Zdd�Z
dd�Zdd�Zdd�Zdd�Zdldd �Zd!d"�Zd#d$�Zd%d&�Zd'd(�Zd)d*�Zd+d,�Zd-d.�Zd/d0�Zd1d2�Zd3d4�Zd5d6�Zd7d8�Zd9d:�Zd;d<�Z d=d>�Z!d?d@�Z"dAdB�Z#dCdD�Z$dEdF�Z%dGdH�Z&dIdJ�Z'dKdL�Z(dMdN�Z)dOdP�Z*dQdR�Z+dSdT�Z,dUdV�Z-dWdX�Z.dYdZ�Z/d[d\�Z0d]d^�Z1dmd_d`�Z2dadb�Z3gfdcdd�Z4dedf�Z5dgdh�Z6didj�Z7dkS)n�
CGeneratorz� Uses the same visitor pattern as c_ast.NodeVisitor, but modified to
        return a value from each visit method, using string accumulation in
        generic_visit.
    cCs
d|_dS)N���indent_level��self�r	�F/opt/alt/python38/lib/python3.8/site-packages/pycparser/c_generator.py�__init__szCGenerator.__init__cCs
d|jS�N� rrr	r	r
�_make_indentszCGenerator._make_indentcCsd|jj}t|||j�|�S)NZvisit_)�	__class__�__name__�getattr�
generic_visit)r�node�methodr	r	r
�visitszCGenerator.visitcs,|dkrdSd��fdd�|��D��SdS)N�c3s|]\}}��|�VqdS�N�r)�.0Zc_name�crr	r
�	<genexpr>#sz+CGenerator.generic_visit.<locals>.<genexpr>)�join�children)rrr	rr
rszCGenerator.generic_visitcCs|jSr)�value�r�nr	r	r
�visit_Constant%szCGenerator.visit_ConstantcCs|jSr��namerr	r	r
�visit_ID(szCGenerator.visit_IDcCs$|�|j�}|d|�|j�dS)N�[�])�_parenthesize_unless_simpler#rZ	subscript)rr Zarrrefr	r	r
�visit_ArrayRef+szCGenerator.visit_ArrayRefcCs"|�|j�}||j|�|j�Sr)r'r#�typer�field)rr Zsrefr	r	r
�visit_StructRef/szCGenerator.visit_StructRefcCs$|�|j�}|d|�|j�dS)N�(�))r'r#r�args)rr Zfrefr	r	r
�visit_FuncCall3szCGenerator.visit_FuncCallcCs\|�|j�}|jdkrd|S|jdkr0d|S|jdkrJd|�|j�Sd|j|fSdS)Nzp++z%s++zp--z%s--�sizeofz
sizeof(%s)z%s%s)r'�expr�opr)rr Zoperandr	r	r
�
visit_UnaryOp7s


zCGenerator.visit_UnaryOpcs<��|j�fdd��}��|j�fdd��}d||j|fS)Ncs��|�Sr��_is_simple_node��drr	r
�<lambda>F�z+CGenerator.visit_BinaryOp.<locals>.<lambda>cs��|�Srr4r6rr	r
r8Hr9�%s %s %s)�_parenthesize_if�left�rightr2)rr Zlval_str�rval_strr	rr
�visit_BinaryOpDs
�
�zCGenerator.visit_BinaryOpcCs*|�|jdd��}d|�|j�|j|fS)NcSst|tj�Sr)�
isinstancer�
Assignment)r r	r	r
r8Nr9z-CGenerator.visit_Assignment.<locals>.<lambda>r:)r;ZrvaluerZlvaluer2)rr r>r	r	r
�visit_AssignmentKs
�zCGenerator.visit_AssignmentcCsd�|j�Sr)r�namesrr	r	r
�visit_IdentifierTypeQszCGenerator.visit_IdentifierTypecCsJt|tj�rd|�|�dSt|tj�r<d|�|�dS|�|�SdS)N�{�}r,r-)r@rZInitListr�ExprListrr	r	r
�_visit_exprTs
zCGenerator._visit_exprFcCsL|r
|jn|�|�}|jr.|d|�|j�7}|jrH|d|�|j�7}|S)N� : � = )r#�_generate_declZbitsizer�initrH)rr �no_type�sr	r	r
�
visit_Decl\szCGenerator.visit_DeclcsL��|jd�}t|j�dkrH|dd��fdd�|jdd�D��7}|S)Nrr�, c3s|]}�j|dd�VqdS)T)rMN)rO)r�declrr	r
ris�z,CGenerator.visit_DeclList.<locals>.<genexpr>)r�decls�lenr�rr rNr	rr
�visit_DeclListfs�zCGenerator.visit_DeclListcCs2d}|jr|d�|j�d7}||�|j�7}|S)Nrr
)�storager�_generate_typer)rTr	r	r
�
visit_Typedefms
zCGenerator.visit_TypedefcCs(d|�|j�d}|d|�|j�S)Nr,r-r
)rWZto_typer'r1rTr	r	r
�
visit_CastsszCGenerator.visit_CastcCs*g}|jD]}|�|�|��q
d�|�S�NrP��exprs�appendrHr�rr Zvisited_subexprsr1r	r	r
�visit_ExprListws
zCGenerator.visit_ExprListcCs*g}|jD]}|�|�|��q
d�|�SrZr[r^r	r	r
�visit_InitList}s
zCGenerator.visit_InitListcCs�d}|jr|d|j7}|jr�|d7}t|jj�D]H\}}||j7}|jr^|d|�|j�7}|t|jj�dkr2|d7}q2|d7}|S)N�enumr
z {rJrrPrF)r#�values�	enumerateZenumeratorsrrrS)rr rN�iZ
enumeratorr	r	r
�
visit_Enum�s

zCGenerator.visit_Enumcsj��|j�}d�_��|j�}|jrVd��fdd�|jD��}|d|d|dS|d|dSdS)Nr�;
c3s|]}��|�VqdSrr)r�prr	r
r�sz+CGenerator.visit_FuncDef.<locals>.<genexpr>�
)rrQr�bodyZparam_declsr)rr rQriZknrdeclsr	rr
�
visit_FuncDef�szCGenerator.visit_FuncDefcCsBd}|jD]2}t|tj�r*||�|�7}q
||�|�d7}q
|S)Nrrf)�extr@rZFuncDefr)rr rNrkr	r	r
�
visit_FileAST�s
zCGenerator.visit_FileASTcs`���d}�jd7_|jr>|d��fdd�|jD��7}�jd8_|���d7}|S)N�{
�rc3s|]}��|�VqdSr)�_generate_stmt)r�stmtrr	r
r�sz,CGenerator.visit_Compound.<locals>.<genexpr>z}
)rrZblock_itemsrrTr	rr
�visit_Compound�szCGenerator.visit_CompoundcCsdS)N�;r	rr	r	r
�visit_EmptyStatement�szCGenerator.visit_EmptyStatementcsd��fdd�|jD��S)NrPc3s|]}��|�VqdSrr)r�paramrr	r
r�sz-CGenerator.visit_ParamList.<locals>.<genexpr>)r�paramsrr	rr
�visit_ParamList�szCGenerator.visit_ParamListcCs&d}|jr|d|�|j�7}|dS)N�returnr
rr)r1rrTr	r	r
�visit_Return�szCGenerator.visit_ReturncCsdS)Nzbreak;r	rr	r	r
�visit_Break�szCGenerator.visit_BreakcCsdS)Nz	continue;r	rr	r	r
�visit_Continue�szCGenerator.visit_ContinuecCs8|�|j�d}||�|j�d7}||�|j�7}|S)Nz ? rI)rH�cond�iftrue�iffalserTr	r	r
�visit_TernaryOp�szCGenerator.visit_TernaryOpcCsdd}|jr||�|j�7}|d7}||j|jdd�7}|jr`||��d7}||j|jdd�7}|S)Nzif (�)
T��
add_indentzelse
)r{rror|r}rrTr	r	r
�visit_If�szCGenerator.visit_IfcCs~d}|jr||�|j�7}|d7}|jr<|d|�|j�7}|d7}|jr^|d|�|j�7}|d7}||j|jdd�7}|S)Nzfor (rrr
rTr�)rLrr{�nextrorprTr	r	r
�	visit_For�szCGenerator.visit_ForcCs:d}|jr||�|j�7}|d7}||j|jdd�7}|S)N�while (rTr�)r{rrorprTr	r	r
�visit_While�szCGenerator.visit_WhilecCsJd}||j|jdd�7}||��d7}|jr>||�|j�7}|d7}|S)Nzdo
Tr�r�z);)rorprr{rrTr	r	r
�
visit_DoWhile�szCGenerator.visit_DoWhilecCs,d|�|j�d}||j|jdd�7}|S)Nzswitch (rTr�)rr{rorprTr	r	r
�visit_Switch�szCGenerator.visit_SwitchcCs6d|�|j�d}|jD]}||j|dd�7}q|S)Nzcase �:
Tr�)rr1�stmtsro�rr rNrpr	r	r
�
visit_Case�s
zCGenerator.visit_CasecCs&d}|jD]}||j|dd�7}q
|S)Nz	default:
Tr�)r�ror�r	r	r
�
visit_Default�s
zCGenerator.visit_DefaultcCs|jd|�|j�S)Nr�)r#rorprr	r	r
�visit_Label�szCGenerator.visit_LabelcCsd|jdS)Nzgoto rrr"rr	r	r
�
visit_Goto�szCGenerator.visit_GotocCsdS)Nz...r	rr	r	r
�visit_EllipsisParam�szCGenerator.visit_EllipsisParamcCs|�|d�S)N�struct��_generate_struct_unionrr	r	r
�visit_StructszCGenerator.visit_StructcCs|�|j�Sr)rWr)rr	r	r
�visit_TypenameszCGenerator.visit_TypenamecCs|�|d�S)N�unionr�rr	r	r
�visit_UnionszCGenerator.visit_UnioncCsbd}|jD]>}t|tj�r*|d|j7}q
t|tj�r
|d|jd7}q
|d|�|j�7}|S)Nr�.r%r&rJ)r#r@r�ID�Constantrrr1)rr rNr#r	r	r
�visit_NamedInitializers
z!CGenerator.visit_NamedInitializercCs
|�|�Sr)rWrr	r	r
�visit_FuncDeclszCGenerator.visit_FuncDeclcCs~|d|jpd}|jrz|d7}||��7}|jd7_|d7}|jD]}||�|�7}qH|jd8_||��d7}|S)ze Generates code for structs and unions. name should be either
            'struct' or union.
        r
rrhrnrmrF)r#rRrrro)rr r#rNrQr	r	r
r�s
z!CGenerator._generate_struct_unioncCs�t|�}|r|jd7_|��}|r4|jd8_|tjtjtjtjtjtj	tj
tjtjtj
tjtjtjf
kr�||�|�dS|tjfkr�|�|�S||�|�dSdS)z� Generation from a statement node. This method exists as a wrapper
            for individual visit_* methods to handle different treatment of
            some statements in this context.
        rnrfrhN)r)rrr�DeclrAZCastZUnaryOpZBinaryOpZ	TernaryOp�FuncCall�ArrayRef�	StructRefr�r�ZTypedefrGrZCompound)rr r��typ�indentr	r	r
ro(s2�
zCGenerator._generate_stmtcCsHd}|jrd�|j�d}|jr4|d�|j�d7}||�|j�7}|S)z& Generation from a Decl node.
        rr
)ZfuncspecrrVrWr)rTr	r	r
rKDszCGenerator._generate_declcCs�t|�}|tjk�rHd}|jr2|d�|j�d7}||�|j�7}|jrN|jnd}t|�D]�\}}t|tj	�r�|dkr�t||dtj
�r�d|d}|d|�|j�d7}qZt|tj�r�|dkr�t||dtj
�r�d|d}|d|�|j
�d7}qZt|tj
�rZ|j�r(d	d�|j�|f}qZd
|}qZ|�rD|d|7}|S|tjk�r`|�|j�S|tjk�rx|�|j�S|tjk�r�d�|j�dS|tj	tj
tjfk�r�|�|j||g�S|�|�SdS)z� Recursive generation from a type node. n is the type node.
            modifiers collects the PtrDecl, ArrayDecl and FuncDecl modifiers
            encountered on the way down to a TypeDecl, to allow proper
            generation from it.
        rr
rrr,r-r%r&z* %s %s�*N)r)rZTypeDeclZqualsrrZdeclnamercr@Z	ArrayDeclZPtrDeclZdimZFuncDeclr.r�rKZTypenamerWZIdentifierTyperC)rr �	modifiersr�rNZnstrrd�modifierr	r	r
rWMs@
zCGenerator._generate_typecCs&|�|�}||�rd|dS|SdS)z� Visits 'n' and returns its string representation, parenthesized
            if the condition function applied to the node returns True.
        r,r-N)rH)rr Z	conditionrNr	r	r
r;{s
zCGenerator._parenthesize_ifcs��|�fdd��S)z. Common use case for _parenthesize_if
        cs��|�Srr4r6rr	r
r8�r9z8CGenerator._parenthesize_unless_simple.<locals>.<lambda>)r;rr	rr
r'�sz&CGenerator._parenthesize_unless_simplecCst|tjtjtjtjtjf�S)z~ Returns True for nodes that are "simple" - i.e. nodes that always
            have higher precedence than operators.
        )r@rr�r�r�r�r�rr	r	r
r5�s�zCGenerator._is_simple_nodeN)F)F)8r�
__module__�__qualname__�__doc__rrrrr!r$r(r+r/r3r?rBrDrHrOrUrXrYr_r`rerjrlrqrsrvrxryrzr~r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�rorKrWr;r'r5r	r	r	r
rsj



		


	.
rN)rr�objectrr	r	r	r
�<module>	s

Youez - 2016 - github.com/yon3zu
LinuXploit