Ë
    pPêj   ã                  óÔ   — d dl mZ d dlZd dlmZ d dlmZ d dlm	Z	 d dl
mZ d dlmZmZmZmZ d dlmZ d d	lmZ 	 d	 	 	 	 	 	 	 	 	 	 	 	 	 dd
„Z	 d	 	 	 	 	 	 	 	 	 	 	 	 	 dd„Zdd„Zdd„Zy)é    )ÚannotationsN)Ú
ReadBuffer)Ú
errorcodes)Úread_int)ÚErrors)ÚFileRawDataÚMypyFileÚ
ParseErrorÚStrExpr)ÚOptions)Ú
ProperTypec                óÜ  — |j                   r“ddl}|j                  xs ||j                  v }|xr |j                   }|j
                  j                  ||| |¬«      \  }	}
}
|j                  d«      |	_        |r%|	j                  �t        |||	j                  ||«      }	|	S | €t        d«      ‚|j                  �|j                  | «      } ddl}|j                  j                  | ||||¬«      S )aç  Parse a source file, without doing any semantic analysis.

    Return the parse tree, use the errors object to report parse errors.
    The python_version (major, minor) option determines the Python syntax variant.

    New parser returns empty tree with serialized data. To get the full tree and
    the parse errors, use eager=True.

    `source` must not be `None` if the old parser is used. The new parser will read and
    parse contents from path `fnam` if `source` is `None`.
    r   N)Úskip_function_bodiesú.pyiz1Source cannot be `None` when using the old parser)ÚfnamÚmoduleÚerrorsÚoptions)Únative_parserÚmypy.nativeparseÚignore_errorsÚignored_filesÚpreserve_astsÚnativeparseÚnative_parseÚendswithÚis_stubÚraw_dataÚload_from_rawÚ
ValueErrorÚtransform_sourceÚmypy.fastparseÚ	fastparseÚparse)Úsourcer   r   r   r   ÚeagerÚmypyr   Ústrip_function_bodiesÚtreeÚ_s              úO/home/oem/CyberBrain26-unified/.venv/lib/python3.12/site-packages/mypy/parse.pyr$   r$      sö   € ð& ×ÒÛà×-Ñ-ÒM°¸×9MÑ9MÐ1Mˆà -Ò K°g×6KÑ6KÐ2KÐØ×%Ñ%×2Ñ2Ø�'˜6Ð8Mð 3ó 
‰
ˆˆa�ð —}‘} VÓ,ˆŒñ �T—]‘]Ð.Ü   v¨t¯}©}¸fÀgÓNˆDØˆà€~ÜÐLÓMÐMØ×ÑÐ+Ø×)Ñ)¨&Ó1ˆÛà�>‰>×Ñ ¨T¸&ÈÐY`ÐÓaÐaó    c                ó*  — ddl m}m}m}  ||| j	                  d«      ¬«      }	|rg }
n*t        |j                  «      }t        |«      } ||	||«      }
 ||j                  «      }t        |
|«      }| |_
        |j                  |_        |j                  |_        |j                  |_        | j	                  d«      |_        |�||_        |j                   |	j"                  z   }|j%                  | ||¬«       |D ]  }t'        ||«       Œ |r||_        |S )z™Load AST from parsed binary data and report stored errors.

    If imports_only is true, only deserialize imports and return a mostly
    empty AST.
    r   )ÚStateÚdeserialize_importsÚread_statementsr   )r   )r   )r   r.   r/   r0   r   r   Údefsr   Úimportsr	   ÚpathÚignored_linesÚis_partial_stub_packageÚuses_template_stringsr   Ú	_fullnameÚ
raw_errorsr   Úset_fileÚreport_parse_errorr   )r   r   r   r   r   Úimports_onlyr.   r/   r0   Ústater1   ÚdataÚnr2   r)   Ú
all_errorsÚerrors                    r+   r   r   <   s  € ÷ MÑLá�' 4§=¡=°Ó#8Ô9€EÙØ‰ä˜(Ÿ-™-Ó(ˆÜ�T‹NˆÙ˜u d¨AÓ.ˆÙ! (×"2Ñ"2Ó3€Gä�D˜'Ó"€DØ€D„IØ!×/Ñ/€DÔØ#+×#CÑ#C€DÔ Ø!)×!?Ñ!?€DÔØ—=‘= Ó(€D„LØÐØˆŒð ×$Ñ$ u§|¡|Ñ3€JØ
‡O�O�D˜&¨'€OÔ2Øò *ˆä˜5 &Õ)ð*ñ ð !ˆŒØ€Kr,   c                óD  — | d   }t        j                  dd„ |«      }| j                  dd«      }| j                  d«      }|€t        j                  }n1t        j
                  j                  |«      xs t        j                  }|j                  | d   | d   |||¬	«       y )
NÚmessagez^(\s*\w)c                ó@   — | j                  d«      j                  «       S )Né   )ÚgroupÚupper)Úms    r+   ú<lambda>z$report_parse_error.<locals>.<lambda>m   s   € ¨A¯G©G°A«J×,<Ñ,<Ó,>€ r,   ÚblockerTÚcodeÚlineÚcolumn)rI   rJ   )ÚreÚsubÚgetÚcodesÚSYNTAXÚerror_codesÚreport)r@   r   rB   Ú
is_blockerÚ
error_codes        r+   r:   r:   j   sŒ   € Ø�IÑ€Gä�f‰f�[Ñ">ÀÓH€Gà—‘˜9 dÓ+€JØ—‘˜6Ó"€JØÐÜ—\‘\‰
ô ×&Ñ&×*Ñ*¨:Ó6ÒF¼%¿,¹,ˆ
Ø
‡M�M�%˜‘-  x¡°'À:ÐT^€MÕ_r,   c                ó~  — |j                   rrdd l}|j                  j                  | j                  | j
                  | j                  | j                  xs | j
                  | j                  xs | j                  |«      S dd l	}|j                  j                  | j                  d| j
                  | j                  «      S )Nr   zbuiltins.str)r   r   r   Únative_parse_type_stringÚvaluerK   rL   Úend_lineÚ
end_columnr"   r#   Úparse_type_string)Úexprr   r'   s      r+   r[   r[   y   sŽ   € Ø×ÒÛà×Ñ×8Ñ8Ø�J‰JØ�I‰IØ�K‰KØ�M‰MÒ&˜TŸY™YØ�O‰OÒ*˜tŸ{™{Øó
ð 	
ó à�>‰>×+Ñ+¨D¯J©J¸ÈÏ	É	ÐSW×S^ÑS^Ó_Ð_r,   )F)r%   zstr | bytes | Noner   Ústrr   ú
str | Noner   r   r   r   r&   ÚboolÚreturnr	   )r   r]   r   r^   r   r   r   r   r   r   r;   r_   r`   r	   )r@   r
   r   r   r`   ÚNone)r\   r   r   r   r`   r   )Ú
__future__r   rM   Úlibrt.internalr   r'   r   rP   Ú
mypy.cacher   Úmypy.errorsr   Ú
mypy.nodesr   r	   r
   r   Úmypy.optionsr   Ú
mypy.typesr   r$   r   r:   r[   © r,   r+   ú<module>rj      sÑ   ðÝ "ã 	å %å $Ý Ý ß AÓ AÝ  Ý !ð ð*bØð*bà
ð*bð ð*bð ð	*bð
 ð*bð ð*bð ó*bðf ð+Ø
ð+àð+ð ð+ð ð	+ð
 ð+ð ð+ð ó+ó\`ô`r,   