§
    žCf³  ã                   óœ   — 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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     úDC:\Users\johnn\AppData\Local\Programs\Python\Python311\Lib\codeop.pyú
<listcomp>r
   &   s2   € ð 8ð 8ð 8Øõ •Z Ñ'Ô'ð 8ð 8ð 8ó    )Úcompile_commandÚCompileÚCommandCompileri   i @  c                 ó0  — |                      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    | |||d¬	¦  «        S )
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         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¸uÐEÑEÔEÐEsl   Á"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,   K   sF   € Ý�‰:Œ:€DÝ�‰:Œ:€DØ˜TÐ!Ð!Ð&8¸DÐ&@Ð&@ØˆuØˆt‚|€|ØˆtØˆ5r   Tc                 óV   — d}|r|t           z  }|t          z  }t          | |||¦  «        S )Nr   )ÚPyCF_ALLOW_INCOMPLETE_INPUTÚPyCF_DONT_IMPLY_DEDENTÚcompile)r    r!   r"   r   Úflagss        r	   Ú_compiler2   T   s9   € Ø€EØð (ØÕ,Ñ,ˆØÕ'Ñ'ˆÝ�6˜8 V¨UÑ3Ô3Ð3r   ú<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   )r    r!   r"   s      r	   r   r   [   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 ©N)r/   r.   r1   ©Úselfs    r	   Ú__init__zCompile.__init__u   s   € Ý+Õ.IÑIˆŒ
ˆ
ˆ
r   c                 óò   — | j         }|                     dd¦  «        du r|t           z  }|t           z  }t	          ||||d¦  «        }t
          D ]&}|j        |j        z  r| xj         |j        z  c_         Œ'|S )Nr   TF)r1   Úgetr/   r.   r0   Ú	_featuresÚco_flagsÚcompiler_flag)r:   r    r!   r"   Úkwargsr1   ÚcodeobÚfeatures           r	   Ú__call__zCompile.__call__x   sŽ   € Ø”
ˆØ�:Š:Ð(¨$Ñ/Ô/°5Ð8Ð8ØÕ,Ð,Ñ,ˆEØÕ1Ð1Ñ1ˆEÝ˜ ¨6°5¸$Ñ?Ô?ˆÝ ð 	4ð 	4ˆGØŒ Ô!6Ñ6ð 4Ø�
”
˜gÔ3Ñ3�
”
øØˆr   N©Ú__name__Ú
__module__Ú__qualname__Ú__doc__r;   rD   r   r   r	   r   r   p   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 r8   )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	   rD   zCommandCompiler.__call__�   s   € õ& ˜dœm¨V°X¸vÑFÔFÐFr   N©r3   r4   rE   r   r   r	   r   r   ƒ   sG   € € € € € ð$ð $ð"ð "ð "ðGð Gð Gð Gð Gð Gr   r   )TrM   )rI   r   r   Úall_feature_namesr>   Ú__all__r/   r.   r%   r,   r2   r   r   r   r   r   r	   ú<module>rP      s  ðð ð  ðD Ð Ð Ð Ø €€€ð8ð 8Ø$Ô6ð8ñ 8ô 8€	ð <Ð
;Ð
;€ð
 Ð Ø$Ð ðFð Fð Fð4ð ð ð4ð 4ð 4ð 4ð>ð >ð >ð >ð*ð ð ð ð ñ ô ð ð&Gð Gð Gð Gð Gñ Gô Gð Gð Gð Gr   