§
    (¶Õiß  ã                   óš   — d Z ddlZddlZd„ ej        D ¦   «         Zg d¢ZdZdZd„ Zd„ Z	d	„ Z
dd„Z G d„ d¦  «        Z G d„ d¦  «        ZdS )aA  Utilities to compile possibly incomplete Python source code.

This module provides two interfaces, broadly similar to the builtin
function compile(), which take program text, a filename and a 'mode'
and:

- Return code object if the command is complete and valid
- Return None if the command is incomplete
- Raise SyntaxError, ValueError or OverflowError if the command is a
  syntax error (OverflowError and ValueError can be produced by
  malformed literals).

The two interfaces are:

compile_command(source, filename, symbol):

    Compiles a single command in the manner described above.

CommandCompiler():

    Instances of this class have __call__ methods identical in
    signature to compile_command; the difference is that if the
    instance compiles program text containing a __future__ statement,
    the instance 'remembers' and compiles all subsequent program texts
    with the statement in force.

The module also provides another class:

Compile():

    Instances of this class act like the built-in function compile,
    but with 'memory' in the sense described above.
é    Nc                 ó8   — g | ]}t          t          |¦  «        ‘ŒS © )ÚgetattrÚ
__future__)Ú.0Úfnames     ú/usr/lib/python3.11/codeop.pyú
<listcomp>r
   &   s2   € ð 8ð 8ð 8Øõ •Z Ñ'Ô'ð 8ð 8ð 8ó    )Úcompile_commandÚCompileÚCommandCompileri   i @  c                 ó,  — |                      d¦  «        D ]&}|                     ¦   «         }|r|d         dk    r n	Œ'|dk    rd}t          j        ¦   «         5  t          j        dt
          t          f¦  «         	  | |||¦  «         ni# t          $ r\ 	  | |dz   ||¦  «         Y d d d ¦  «         d S # t          $ r-}dt          |¦  «        v rY d }~Y d d d ¦  «         d S Y d }~nd }~ww xY wY nw xY wd d d ¦  «         n# 1 swxY w Y    | |||¦  «        S )Nú
r   ú#ÚevalÚpassÚignorezincomplete input)	ÚsplitÚstripÚwarningsÚcatch_warningsÚsimplefilterÚSyntaxWarningÚDeprecationWarningÚSyntaxErrorÚstr)ÚcompilerÚsourceÚfilenameÚsymbolÚlineÚes         r	   Ú_maybe_compiler$   1   sä  € à—’˜TÑ"Ô"ð ð ˆØ�zŠz‰|Œ|ˆØð 	�D˜”G˜s’N�NØˆEøà�VÒÐØˆFõ 
Ô	 Ñ	"Ô	"ð 
 ð 
 ÝÔ˜h­Õ8JÐ(KÑLÔLÐLð	 ØˆH�V˜X vÑ.Ô.Ð.Ð.øÝð 	 ð 	 ð 	 ð Ø�˜ $™¨°&Ñ9Ô9Ð9Øð
 ð 
 ð 
 ñ 
 ô 
 ð 
 ð 
 ð 
 øõ ð  ð  ð  Ø%­¨Q©¬Ð/Ð/Ø˜4˜4˜4˜4ð
 ð 
 ð 
 ñ 
 ô 
 ð 
 ð 
 ð 
 ð 0Ð/Ð/Ð/Ð/øøøøð øøøØ/Ð/ð	 øøøð	
 ð 
 ð 
 ñ 
 ô 
 ð 
 ð 
 ð 
 ð 
 ð 
 ð 
 øøøð 
 ð 
 ð 
 ð 
 ð ˆ8�F˜H fÑ-Ô-Ð-sl   Á"C>Á;B	ÂC>Â	
C/ÂB2Â$C>Â2
C)Â<C$ÃC/ÃC>ÃC/Ã$C)Ã)C/Ã,C>Ã.C/Ã/C>Ã>DÄDc                 óf   — t          | ¦  «        }t          |¦  «        }d|v rd|v rdS ||k    rdS dS )Nzwas never closedFT)Úrepr)Úerr1Úerr2Úrep1Úrep2s       r	   Ú_is_syntax_errorr+   L   sF   € Ý�‰:Œ:€DÝ�‰:Œ:€DØ˜TÐ!Ð!Ð&8¸DÐ&@Ð&@ØˆuØˆt‚|€|ØˆtØˆ5r   c                 ó@   — t          | ||t          t          z  ¦  «        S ©N)ÚcompileÚPyCF_DONT_IMPLY_DEDENTÚPyCF_ALLOW_INCOMPLETE_INPUT©r   r    r!   s      r	   Ú_compiler2   U   s   € Ý�6˜8 VÕ-CÕFaÑ-aÑbÔbÐbr   ú<input>Úsinglec                 ó0   — t          t          | ||¦  «        S )a‰  Compile a command and determine whether it is incomplete.

    Arguments:

    source -- the source string; may contain \n characters
    filename -- optional filename from which source was read; default
                "<input>"
    symbol -- optional grammar start symbol; "single" (default), "exec"
              or "eval"

    Return value / exceptions raised:

    - Return a code object if the command is complete and valid
    - Return None if the command is incomplete
    - Raise SyntaxError, ValueError or OverflowError if the command is a
      syntax error (OverflowError and ValueError can be produced by
      malformed literals).
    )r$   r2   r1   s      r	   r   r   X   s   € õ& �( F¨H°fÑ=Ô=Ð=r   c                   ó   — e Zd ZdZd„ Zd„ ZdS )r   zëInstances of this class behave much like the built-in compile
    function, but if one is used to compile text containing a future
    statement, it "remembers" and compiles all subsequent program texts
    with the statement in force.c                 ó.   — t           t          z  | _        d S r-   )r/   r0   Úflags©Úselfs    r	   Ú__init__zCompile.__init__r   s   € Ý+Õ.IÑIˆŒ
ˆ
ˆ
r   c                 ó’   — t          |||| j        d¦  «        }t          D ]&}|j        |j        z  r| xj        |j        z  c_        Œ'|S )NT)r.   r8   Ú	_featuresÚco_flagsÚcompiler_flag)r:   r   r    r!   ÚcodeobÚfeatures         r	   Ú__call__zCompile.__call__u   sS   € Ý˜ ¨6°4´:¸tÑDÔDˆÝ ð 	4ð 	4ˆGØŒ Ô!6Ñ6ð 4Ø�
”
˜gÔ3Ñ3�
”
øØˆr   N©Ú__name__Ú
__module__Ú__qualname__Ú__doc__r;   rB   r   r   r	   r   r   m   s?   € € € € € ð$ð $ðJð Jð Jðð ð ð ð r   r   c                   ó    — e Zd ZdZd„ Zdd„ZdS )r   a(  Instances of this class have __call__ methods identical in
    signature to compile_command; the difference is that if the
    instance compiles program text containing a __future__ statement,
    the instance 'remembers' and compiles all subsequent program texts
    with the statement in force.c                 ó,   — t          ¦   «         | _        d S r-   )r   r   r9   s    r	   r;   zCommandCompiler.__init__ƒ   s   € Ý™	œ	ˆŒˆˆr   r3   r4   c                 ó0   — t          | j        |||¦  «        S )aµ  Compile a command and determine whether it is incomplete.

        Arguments:

        source -- the source string; may contain \n characters
        filename -- optional filename from which source was read;
                    default "<input>"
        symbol -- optional grammar start symbol; "single" (default) or
                  "eval"

        Return value / exceptions raised:

        - Return a code object if the command is complete and valid
        - Return None if the command is incomplete
        - Raise SyntaxError, ValueError or OverflowError if the command is a
          syntax error (OverflowError and ValueError can be produced by
          malformed literals).
        )r$   r   )r:   r   r    r!   s       r	   rB   zCommandCompiler.__call__†   s   € õ& ˜dœm¨V°X¸vÑFÔFÐFr   N©r3   r4   rC   r   r   r	   r   r   |   sG   € € € € € ð$ð $ð"ð "ð "ðGð Gð Gð Gð Gð Gr   r   rK   )rG   r   r   Úall_feature_namesr=   Ú__all__r/   r0   r$   r+   r2   r   r   r   r   r   r	   ú<module>rN      s  ðð ð  ðD Ð Ð Ð Ø €€€ð8ð 8Ø$Ô6ð8ñ 8ô 8€	ð <Ð
;Ð
;€ð
 Ð Ø$Ð ð.ð .ð .ð6ð ð ðcð cð cð>ð >ð >ð >ð*ð ð ð ð ñ ô ð ðGð Gð Gð Gð Gñ Gô Gð Gð Gð Gr   