OXIESEC PANEL
- Current Dir:
/
/
lib
/
python3.9
/
site-packages
/
pycparser
/
__pycache__
Server IP: 2a02:4780:11:1594:0:ef5:22d7:a
Upload:
Create Dir:
Name
Size
Modified
Perms
📁
..
-
05/14/2024 12:06:29 PM
rwxr-xr-x
📄
__init__.cpython-39.opt-1.pyc
2.43 KB
04/07/2022 12:13:57 AM
rw-r--r--
📄
__init__.cpython-39.pyc
2.43 KB
04/07/2022 12:13:57 AM
rw-r--r--
📄
_ast_gen.cpython-39.opt-1.pyc
9.95 KB
04/07/2022 12:13:57 AM
rw-r--r--
📄
_ast_gen.cpython-39.pyc
9.95 KB
04/07/2022 12:13:57 AM
rw-r--r--
📄
_build_tables.cpython-39.opt-1.pyc
501 bytes
04/07/2022 12:13:57 AM
rw-r--r--
📄
_build_tables.cpython-39.pyc
501 bytes
04/07/2022 12:13:57 AM
rw-r--r--
📄
ast_transforms.cpython-39.opt-1.pyc
2.42 KB
04/07/2022 12:13:57 AM
rw-r--r--
📄
ast_transforms.cpython-39.pyc
2.44 KB
04/07/2022 12:13:57 AM
rw-r--r--
📄
c_ast.cpython-39.opt-1.pyc
34.33 KB
04/07/2022 12:13:57 AM
rw-r--r--
📄
c_ast.cpython-39.pyc
34.33 KB
04/07/2022 12:13:57 AM
rw-r--r--
📄
c_generator.cpython-39.opt-1.pyc
16.28 KB
04/07/2022 12:13:57 AM
rw-r--r--
📄
c_generator.cpython-39.pyc
16.3 KB
04/07/2022 12:13:57 AM
rw-r--r--
📄
c_lexer.cpython-39.opt-1.pyc
11.58 KB
04/07/2022 12:13:57 AM
rw-r--r--
📄
c_lexer.cpython-39.pyc
11.58 KB
04/07/2022 12:13:57 AM
rw-r--r--
📄
c_parser.cpython-39.opt-1.pyc
58.95 KB
04/07/2022 12:13:57 AM
rw-r--r--
📄
c_parser.cpython-39.pyc
59.05 KB
04/07/2022 12:13:57 AM
rw-r--r--
📄
lextab.cpython-39.opt-1.pyc
5.46 KB
04/07/2022 12:13:57 AM
rw-r--r--
📄
lextab.cpython-39.pyc
5.46 KB
04/07/2022 12:13:57 AM
rw-r--r--
📄
plyparser.cpython-39.opt-1.pyc
4.54 KB
04/07/2022 12:13:57 AM
rw-r--r--
📄
plyparser.cpython-39.pyc
4.54 KB
04/07/2022 12:13:57 AM
rw-r--r--
📄
yacctab.cpython-39.opt-1.pyc
144.65 KB
04/07/2022 12:13:57 AM
rw-r--r--
📄
yacctab.cpython-39.pyc
144.65 KB
04/07/2022 12:13:57 AM
rw-r--r--
Editing: ast_transforms.cpython-39.pyc
Close
a ��_^@ � @ s d dl mZ dd� Zdd� ZdS )� )�c_astc C s� t | tj�sJ �t | jtj�s"| S t�g | jj�}d}| jjp@g D ]\}t |tjtjf�r||j� |� t ||j� |jd }qB|du r�|j� |� qB|j� |� qB|| _| 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 ZSwitchZstmtZCompoundZcoordZblock_items�Case�Default�append�_extract_nested_case�stmts)Zswitch_nodeZnew_compoundZ last_case�child� r �</usr/lib/python3.9/site-packages/pycparser/ast_transforms.py�fix_switch_cases s 3r c C s: t | jd tjtjf�r6|�| j�� � t|d |� dS )z� Recursively extract consecutive Case statements that are made nested by the parser and add them to the stmts_list. � r N)r r r r r r �popr )Z case_nodeZ stmts_listr r r r c s r N)� r r r r r r r �<module> s V