+
    ‹°³jQ  ã                   ól  € R t ^ RIHtHtHtHtHtHtHtH	t	H
t
 ^ RIHt ^ RIHt ^ RIHt ]! R4      t]! R4      t]! R4      t]! R4      tR	 tR
 t ! R R]4      t ! R R]4      t ! R R]4      t ! R R]4      t ! R R]4      t ! R R]4      t ! R R]4      t ! R R]4      t ! R R]4      tR# )z1
AST nodes specific to the C family of languages
)	Ú	AttributeÚDeclarationÚNodeÚStringÚTokenÚTypeÚnoneÚFunctionCallÚ	CodeBlock)ÚBasic)ÚTuple)ÚsympifyÚvoidÚrestrictÚvolatileÚstaticc                óh   € \        R\        V \        4      '       d   \        V 4      .4      # T .4      # )z8Generate of FunctionCall instance for calling 'alignof' Úalignof©r	   Ú
isinstanceÚstrr   ©Úargs   &ÚU/home/luca/screen-checking/.venv/lib/python3.14/site-packages/sympy/codegen/cnodes.pyr   r      s-   € ä˜	´:¸cÄ3×3GÒ3G¤F¨3£KÐ#QÓRÐRÈSÐ#QÓRÐRó    c                óh   € \        R\        V \        4      '       d   \        V 4      .4      # T .4      # )zãGenerate of FunctionCall instance for calling 'sizeof'

Examples
========

>>> from sympy.codegen.ast import real
>>> from sympy.codegen.cnodes import sizeof
>>> from sympy import ccode
>>> ccode(sizeof(real))
'sizeof(double)'
Úsizeofr   r   s   &r   r   r      s/   € ô ˜´*¸SÄ#×2FÒ2F¤6¨#£;Ð"PÓQÐQÈCÐ"PÓQÐQr   c                   ó*   a € ] tR t^(t o RtR tRtV tR# )ÚCommaOperatorz#Represents the comma operator in C c           	     ón   € \         P                  ! V .V Uu. uF  p\        V4      NK  	  upO5!  # u upi ©N)r   Ú__new__r   ©ÚclsÚargsr   s   &* r   r!   ÚCommaOperator.__new__*   s,   € Ü�}Š}˜SÐB¹DÓ#A¹D°S¤G¨C¦L¹DÑ#AÓBÐBùÒ#As   —2
© N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__r!   Ú__static_attributes__Ú__classdictcell__©Ú__classdict__s   @r   r   r   (   s   ø‡ € Ù.÷Cð Cr   r   c                   óH   a € ] tR t^.t o RtR;ttR]/t]	t
]R 4       tRtV tR# )ÚLabela  Label for use with e.g. goto statement.

Examples
========

>>> from sympy import ccode, Symbol
>>> from sympy.codegen.cnodes import Label, PreIncrement
>>> print(ccode(Label('foo')))
foo:
>>> print(ccode(Label('bar', [PreIncrement(Symbol('a'))])))
bar:
++(a);

Úbodyc                óD   € \        V\        4      '       d   V# \        V!  # r    )r   r
   )r#   Úitrs   &&r   Ú_construct_bodyÚLabel._construct_bodyA   s   € ä�cœ9×%Ò%ØˆJä˜c‘?Ð"r   r&   N)Únamer2   )r'   r(   r)   r*   r+   Ú	__slots__Ú_fieldsr   Údefaultsr   Ú_construct_nameÚclassmethodr5   r,   r-   r.   s   @r   r1   r1   .   s6   ø‡ € ñð +Ð*€I�Ø˜ˆ~€HØ€Oàñ#ó ö#r   r1   c                   ó&   € ] tR t^ItRtR;tt]tRt	R# )ÚgotozRepresents goto in C r&   N)Úlabel)
r'   r(   r)   r*   r+   r8   r9   r1   Ú_construct_labelr,   r&   r   r   r>   r>   I   s   † Ù Ø$Ð$€I�ØÔr   r>   c                   ó   € ] tR t^OtRt^tRtR# )ÚPreDecrementzÈRepresents the pre-decrement operator

Examples
========

>>> from sympy.abc import x
>>> from sympy.codegen.cnodes import PreDecrement
>>> from sympy import ccode
>>> ccode(PreDecrement(x))
'--(x)'

r&   N©r'   r(   r)   r*   r+   Únargsr,   r&   r   r   rB   rB   O   ó   † ñð „Er   rB   c                   ó   € ] tR t^_tRt^tRtR# )ÚPostDecrementzËRepresents the post-decrement operator

Examples
========

>>> from sympy.abc import x
>>> from sympy.codegen.cnodes import PostDecrement
>>> from sympy import ccode
>>> ccode(PostDecrement(x))
'(x)--'

r&   NrC   r&   r   r   rG   rG   _   rE   r   rG   c                   ó   € ] tR t^otRt^tRtR# )ÚPreIncrementzÈRepresents the pre-increment operator

Examples
========

>>> from sympy.abc import x
>>> from sympy.codegen.cnodes import PreIncrement
>>> from sympy import ccode
>>> ccode(PreIncrement(x))
'++(x)'

r&   NrC   r&   r   r   rI   rI   o   rE   r   rI   c                   ó   € ] tR t^tRt^tRtR# )ÚPostIncrementzËRepresents the post-increment operator

Examples
========

>>> from sympy.abc import x
>>> from sympy.codegen.cnodes import PostIncrement
>>> from sympy import ccode
>>> ccode(PostIncrement(x))
'(x)++'

r&   NrC   r&   r   r   rK   rK      rE   r   rK   c                   óH   a € ] tR t^�t o RtR;ttR]/t]	t
]R 4       tRtV tR# )ÚstructzRepresents a struct in C r7   c                óP   € \        V Uu. uF  p\        V4      NK  	  up!  # u upi r    )r   r   r"   s   && r   Ú_construct_declarationsÚstruct._construct_declarations•   s$   € ä±4Ó8±4¨C”{ 3Ö'±4Ñ8Ñ9Ð9ùÒ8s   Š#r&   N)r7   Údeclarations)r'   r(   r)   r*   r+   r8   r9   r   r:   r   r;   r<   rO   r,   r-   r.   s   @r   rM   rM   �   s2   ø‡ € Ù$Ø2Ð2€I�Ø˜ˆ~€HØ€Oàñ:ó ö:r   rM   c                   ó   € ] tR t^štRtRtRtR# )ÚunionzRepresents a union in C r&   N)r'   r(   r)   r*   r+   r8   r,   r&   r   r   rS   rS   š   s
   † Ù#Ø„Ir   rS   N) r+   Úsympy.codegen.astr   r   r   r   r   r   r   r	   r
   Úsympy.core.basicr   Úsympy.core.containersr   Úsympy.core.sympifyr   r   r   r   r   r   r   r   r1   r>   rB   rG   rI   rK   rM   rS   r&   r   r   Ú<module>rX      sÅ   ðñ÷÷ õ õ #Ý 'Ý &áˆFƒ|€á�ZÓ €Ù�ZÓ €Ù	�8Ó	€òSò
RôC�Eô Cô#ˆDô #ô6ˆ5ô ô�5ô ô �Eô ô �5ô ô �Eô ô :ˆTô :ôˆFö r   