Ë
    òT•j  ã                   ó¸   — d Z ddlZddlZej                  D � cg c]  }  ee| «      ‘Œ c} Zg d¢ZdZdZd„ Z	d„ Z
dd„Zdd	„Z G d
„ d«      Z G d„ d«      Zyc c} w )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.
é    N)Úcompile_commandÚCompileÚCommandCompileri   i @  c                 óæ  — |j                  d«      D ]  }|j                  «       }|sŒ|d   dk7  sŒ n |dk7  rd}t        j                  «       5  t        j                  dt
        t        f«       	  | |||«       d d d «        | |||d¬	«      S # t        $ rL 	  | |dz   ||«       Y d d d «       y # t        $ r%}dt        |«      v rY d }~Y d d d «       y Y d }~nd }~ww xY wY Œhw xY w# 1 sw Y   ŒmxY w)
Nú
r   ú#ÚevalÚpassÚignorezincomplete inputF)Úincomplete_input)	ÚsplitÚstripÚwarningsÚcatch_warningsÚsimplefilterÚSyntaxWarningÚDeprecationWarningÚSyntaxErrorÚstr)ÚcompilerÚsourceÚfilenameÚsymbolÚlineÚes         ú/usr/lib/python3.12/codeop.pyÚ_maybe_compiler   1   s  € à—‘˜TÓ"ò ˆØ�z‰z‹|ˆÚ�D˜‘G˜s“NÙðð
 �VÒØˆFô 
×	 Ñ	 Ó	"ñ 
 Ü×Ñ˜h¬Ô8JÐ(KÔLð	 Ù�V˜X vÔ.÷
 ñ �F˜H f¸uÔEÐEøô ò 	 ð Ù˜ $™¨°&Ô9Ø÷
 ð 
 øô ò  Ø%¬¨Q«Ñ/Ü÷
 ð 
 ô 0ûð úÙ/ð	 ú÷	
 ð 
 ús`   Á!C'Á1
BÂ	C$ÂB0Â&C'Â0	CÂ9CÃC$Ã
C'ÃC$ÃCÃC$Ã!C'Ã#C$Ã$C'Ã'C0c                 óN   — t        | «      }t        |«      }d|v rd|v ry||k(  ryy)Nzwas never closedFT)Úrepr)Úerr1Úerr2Úrep1Úrep2s       r   Ú_is_syntax_errorr$   K   s4   € Ü�‹:€DÜ�‹:€DØ˜TÑ!Ð&8¸DÑ&@ØØˆt‚|ØØó    c                 óJ   — d}|r|t         z  }|t        z  }t        | |||«      S )Nr   )ÚPyCF_ALLOW_INCOMPLETE_INPUTÚPyCF_DONT_IMPLY_DEDENTÚcompile)r   r   r   r   Úflagss        r   Ú_compiler+   T   s1   € Ø€EÙØÔ,Ñ,ˆØÔ'Ñ'ˆÜ�6˜8 V¨UÓ3Ð3r%   c                 ó&   — 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   r+   )r   r   r   s      r   r   r   \   s   € ô& œ( F¨H°fÓ=Ð=r%   c                   ó   — e Zd ZdZd„ Zd„ Zy)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  | _        y ©N)r(   r'   r*   ©Úselfs    r   Ú__init__zCompile.__init__v   s   € Ü+Ô.IÑIˆ�
r%   c                 ó  — | j                   }|j                  dd«      du r|t         z  }|t         z  }t	        ||||d«      }t
        D ];  }|j                  |j                  z  sŒ| xj                   |j                  z  c_         Œ= |S )Nr   TF)r*   Úgetr(   r'   r)   Ú	_featuresÚco_flagsÚcompiler_flag)r1   r   r   r   Úkwargsr*   ÚcodeobÚfeatures           r   Ú__call__zCompile.__call__y   s‰   € Ø—
‘
ˆØ�:‰:Ð(¨$Ó/°5Ñ8ØÔ,Ð,Ñ,ˆEØÔ1Ð1Ñ1ˆEÜ˜ ¨6°5¸$Ó?ˆÜ ò 	4ˆGØ�‰ ×!6Ñ!6Ó6Ø—
’
˜g×3Ñ3Ñ3–
ð	4ð ˆr%   N©Ú__name__Ú
__module__Ú__qualname__Ú__doc__r2   r;   © r%   r   r   r   q   s   „ ñ$òJó	r%   r   c                   ó   — e Zd ZdZd„ Zdd„Zy)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        «       | _        y r/   )r   r   r0   s    r   r2   zCommandCompiler.__init__‹   s   € Ü›	ˆ�r%   c                 ó2   — 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   )r1   r   r   r   s       r   r;   zCommandCompiler.__call__Ž   s   € ô& ˜dŸm™m¨V°X¸vÓFÐFr%   N©z<input>Úsingler<   rA   r%   r   r   r   „   s   „ ñ$ò"ôGr%   r   )TrE   )r@   Ú
__future__r   Úall_feature_namesÚgetattrr5   Ú__all__r(   r'   r   r$   r+   r   r   r   )Úfnames   0r   ú<module>rL      s€   ðñ óD Û ð %×6Ñ6ö8Øñ �Z Õ'ò 8€	ò <€ð
 Ð Ø$Ð òFò4ó4ó>÷*ñ ÷&Gò Gùò}8s   ™A