Warning: session_start(): Session cannot be started after headers have already been sent in /home/tvrreohg/public_html/manga.php on line 13
3 Føªj;ã@s0ddlmZdd„Zdd„Zdd„Zdd „Zd S) é)Úc_astcCs®t|tjƒst‚t|jtjƒs"|Stjg|jjƒ}d}xl|jjpBgD]\}t|tjtj fƒr~|jj |ƒt ||jƒ|jd}qD|dkr”|jj |ƒqD|j j |ƒqDW||_|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. Nréÿÿÿÿ) Ú isinstancerZSwitchÚAssertionErrorÚstmtZCompoundZcoordZ block_itemsÚCaseÚDefaultÚappendÚ_extract_nested_caseÚstmts)Z switch_nodeZ new_compoundZ last_caseÚchild©r ú=/tmp/pip-build-_d5lkt3n/pycparser/pycparser/ast_transforms.pyÚfix_switch_cases s3   rcCs:t|jdtjtjfƒr6|j|jjƒƒt|d|ƒdS)z€ Recursively extract consecutive Case statements that are made nested by the parser and add them to the stmts_list. érNr)rr rrrr Úpopr )Z case_nodeZ stmts_listr r rr csr c Cs„xt|ƒ\}}|sPqW|}x0t|tjƒsLy |j}Wqtk rH|SXqWd|jkrnd|jkrn|jjdƒ|jdkr€|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. Ú_AtomicN) Ú_fix_atomic_specifiers_oncerrÚTypeDeclÚtypeÚAttributeErrorÚqualsr ZdeclnameÚname)ÚdeclÚfoundÚtypr r rÚfix_atomic_specifiersls      rc Csš|}d}|j}xP|dk r^t|tjƒr0d|jkr0Py|}|}|j}Wqtk rZ|dfSXqWt|tjƒspt‚|j|_d|jjkr’|jjjdƒ|dfS)zƒ Performs one 'fix' round of atomic specifiers. Returns (modified_decl, found) where found is True iff a fix was made. NrFT) rrrZTypenamerrrrr )rÚparentZ grandparentÚnoder r rrŒs"   rN)Úrrr rrr r r rÚ s V