§
    ÷¢±j}   ã                   óø   — d dl Z d dlZd dlZd dlZd dlZd dlmZmZmZm	Z	 d dl
mZ d dlmZ d dlmZ de j        v Zd„ Z G d„ d	¦  «        Z G d
„ de¦  «        Z G d„ de	j        ¦  «        Z G d„ d¦  «        ZdS )é    N)ÚadbÚaxdebugÚ	documentsÚgateways)ÚSourceCodeContainer)Ú_wrap)ÚCOMExceptionÚDEBUG_AXDEBUGc                  ó¤   — t           sdS t          t          j        ¦   «         d¬¦  «         | D ]}t          |d¬¦  «         Œt          ¦   «          dS )z8A function used instead of "print" for debugging output.Nú )Úend)ÚdebuggingTraceÚprintÚwin32apiÚGetCurrentThreadId)ÚargsÚargs     úmC:\Users\johnn\AppData\Local\Programs\Python\Python311\Lib\site-packages\win32comext/axscript/client/debug.pyÚtracer      s]   € åð ØˆÝ	�(Ô
%Ñ
'Ô
'¨SÐ1Ñ1Ô1Ð1Øð ð ˆÝˆc�sÐÑÔÐÐÝ	�G„G€G€G€Gó    c                   óT   — e Zd Zej        gZd„ Zd„ Zd„ Zd„ Z	d„ Z
d„ Zd„ Zd„ Zd	„ Zd
S )ÚDebugManagerc                 óâ  — || _         t          j        ¦   «         | _        d | _        d | _        t          j        ¦   «         | _        	 |                     t          j
        ¦  «        | _        n+# t          j        $ r t          d¦  «         d | _        Y nw xY wd | _        | j        �Z	 | j                             ¦   «         | _        | j                             ¦   «         | _        n# t          j        $ r
 d | _        Y nw xY w| j        €lt          j        t          j        d t          j        t          j        ¦  «        }|                     ¦   «         | _        | j                             ¦   «         | _        | j        €
J d¦   «         ‚d | _        | j        �%| j                             | j        | j        ¦  «         i | _        t5          t7          | | j        ¦  «        t          j        ¦  «        | _        d S )Nz(Scripting site has no debugger interfacez.Need to have a DebugApplication object by now!)ÚscriptEnginer   ÚDebuggerÚrootNodeÚdebugApplicationr   ÚCodeContainerProviderÚ
ccProviderÚGetScriptSiter   ÚIID_IActiveScriptSiteDebugÚscriptSiteDebugÚ	pythoncomÚ	com_errorr   ÚGetApplicationÚGetRootApplicationNodeÚCoCreateInstanceÚCLSID_ProcessDebugManagerÚ
CLSCTX_ALLÚIID_IProcessDebugManagerÚGetDefaultApplicationÚGetRootNodeÚactiveScriptDebugÚ	AttachAppÚcodeContainersr   ÚActiveScriptDebugÚIID_IActiveScriptDebug)Úselfr   Úpdms      r   Ú__init__zDebugManager.__init__   së  € Ø(ˆÔÝ”<‘>”>ˆŒØˆŒØ $ˆÔÝ#Ô9Ñ;Ô;ˆŒð	(Ø#/×#=Ò#=ÝÔ2ñ$ô $ˆDÔ Ð øõ Ô"ð 	(ð 	(ð 	(åÐ<Ñ=Ô=Ð=Ø#'ˆDÔ Ð Ð ð	(øøøð
 !%ˆÔØÔÐ+ð-Ø(,Ô(<×(KÒ(KÑ(MÔ(M�Ô%Ø $Ô 4× KÒ KÑ MÔ M�”�øÝÔ&ð -ð -ð -Ø(,�Ô%Ð%Ð%ð-øøøð Ô Ð(õ Ô,ÝÔ1ØÝÔ$ÝÔ0ñ	ô ˆCð %(×$=Ò$=Ñ$?Ô$?ˆDÔ!Ø Ô1×=Ò=Ñ?Ô?ˆDŒMàÔ$Ð0Ð0Ø<ñ 1Ô0Ð0ð "&ˆÔàÔ Ð,ØŒH×Ò˜tÔ4°d´oÑFÔFÐFØ ˆÔÝ!&Ý˜d DÔ$7Ñ8Ô8½'Ô:Xñ"
ô "
ˆÔÐÐs$   Á$A, Á,%BÂBÂ&<C# Ã#C<Ã;C<c                 óú   — d | _         d | _        d | _        d | _        d | _        | j        � | j                             ¦   «          d | _        i | _        | j        r"| j         	                    ¦   «          d | _        d S d S ©N)
r-   r   r   r   r"   r   ÚCloser/   r   ÚCloseApp©r2   s    r   r7   zDebugManager.CloseP   s‡   € à!%ˆÔØ ˆÔØˆŒØ $ˆÔØ#ˆÔØŒ?Ð&ØŒO×!Ò!Ñ#Ô#Ð#Ø"ˆDŒOØ ˆÔØŒ8ð 	ØŒH×ÒÑÔÐØˆDŒHˆHˆHð	ð 	r   c                 ó   — | j         duS )z0Do we have _any_ debugging interfaces installed?N)r   r9   s    r   Ú	IsAnyHostzDebugManager.IsAnyHosta   s   € àÔ$¨DÐ0Ð0r   c                 ó   — | j         d u S r6   )r"   r9   s    r   ÚIsSimpleHostzDebugManager.IsSimpleHoste   s   € ØÔ# tÐ+Ð+r   c                 ó(   — t          d¦  «         d}|S )zçCalled by the engine when a runtime error occurs.  If we have a debugger,
        we let it know.

        The result is a boolean which indicates if the error handler should call
        IActiveScriptSite::OnScriptError()
        ÚHandleRuntimeErroré   )r   )r2   ÚfCallOnErrors     r   r?   zDebugManager.HandleRuntimeErrorh   s   € õ 	Ð"Ñ#Ô#Ð#ØˆØÐr   c                 óF   — || j         v r| j        S t          d|¦  «         dS )NzDebugManager QI - unknown IIDr   )Ú_debugger_interfaces_r-   r   ©r2   Úiids     r   Ú_query_interface_for_debugger_z+DebugManager._query_interface_for_debugger_x   s/   € Ø�$Ô,Ð,Ð,ØÔ)Ð)ÝÐ-¨sÑ3Ô3Ð3Øˆqr   c                 ó„   — t          d¦  «         | j                             t          j        ¦   «         j        ¦  «         d S )NÚOnEnterScript)r   r   ÚSetupAXDebuggingÚsysÚ	_getframeÚf_backr9   s    r   rH   zDebugManager.OnEnterScript~   s5   € ÝˆoÑÔÐØŒ×!Ò!¥#¤-¡/¤/Ô"8Ñ9Ô9Ð9Ð9Ð9r   c                 óV   — t          d¦  «         | j                             ¦   «          d S )NÚOnLeaveScript)r   r   ÚResetAXDebuggingr9   s    r   rN   zDebugManager.OnLeaveScript‚   s*   € ÝˆoÑÔÐØŒ×!Ò!Ñ#Ô#Ð#Ð#Ð#r   c                 ó  — t          || j        ¦  «        }|                      ¦   «         r¬t          j        |¦  «        }t          |t          j        ¦  «        }t          j        |¦  «        }t          |t          j	        ¦  «        }||_
        | j                             ¦   «         }|                     |¦  «         |                     | j        ¦  «         nd }|| j        |j        <   | j                             ||¦  «         d S r6   )ÚDebugCodeBlockContainerr"   r=   r   ÚDebugDocumentTextr   r   ÚIID_IDebugDocumentÚDebugDocumentProviderÚIID_IDebugDocumentProviderÚdebugDocumentr   ÚCreateApplicationNodeÚSetDocumentProviderÚAttachr   r/   ÚsourceContextr   ÚAddCodeContainer)r2   Ú	codeBlockÚccÚdocumentÚproviderÚnewNodes         r   ÚAddScriptBlockzDebugManager.AddScriptBlock†   sæ   € å$ Y°Ô0DÑEÔEˆØ×ÒÑÔð 	7Ý Ô2°2Ñ6Ô6ˆHÝ˜X¥wÔ'AÑBÔBˆHÝ Ô6°xÑ@Ô@ˆHÝ˜X¥wÔ'IÑJÔJˆHØ'ˆBÔØÔ+×AÒAÑCÔCˆGØ×'Ò'¨Ñ1Ô1Ð1Ø�NŠN˜4œ=Ñ)Ô)Ð)Ð)àˆGØ46ˆDÔ Ô 0Ñ1ØŒ×(Ò(¨¨WÑ5Ô5Ð5Ð5Ð5r   N)Ú__name__Ú
__module__Ú__qualname__r   r1   rC   r4   r7   r;   r=   r?   rF   rH   rN   ra   © r   r   r   r      s¨   € € € € € Ø$Ô;Ð<Ðð0
ð 0
ð 0
ðdð ð ð"1ð 1ð 1ð,ð ,ð ,ðð ð ð ð ð ð:ð :ð :ð$ð $ð $ð6ð 6ð 6ð 6ð 6r   r   c                   ó   — e Zd Zd„ Zd„ ZdS )rQ   c                 óˆ   — || _         t          j        | |j        |                     ¦   «         |j        |j        |¦  «         d S r6   )r\   r   r4   ÚcodeTextÚGetFileNameÚsourceContextCookieÚstartLineNumber)r2   r\   Úsites      r   r4   z DebugCodeBlockContainer.__init__™   sO   € Ø"ˆŒÝÔ$ØØÔØ×!Ò!Ñ#Ô#ØÔ)ØÔ%Øñ	
ô 	
ð 	
ð 	
ð 	
r   c                 óÚ   — |t           j        k    r| j                             ¦   «         S |t           j        k    r| j                             ¦   «         S t          t          j        ¬¦  «        ‚)N©Úscode)r   ÚDOCUMENTNAMETYPE_APPNODEr\   ÚGetDisplayNameÚDOCUMENTNAMETYPE_TITLEr	   ÚwinerrorÚS_FALSE)r2   Údnts     r   ÚGetNamezDebugCodeBlockContainer.GetName¤   s\   € Ø•'Ô2Ò2Ð2Ø”>×0Ò0Ñ2Ô2Ð2Ø•GÔ2Ò2Ð2Ø”>×0Ò0Ñ2Ô2Ð2õ ¥XÔ%5Ð6Ñ6Ô6Ð6r   N)rb   rc   rd   r4   rv   re   r   r   rQ   rQ   ˜   s2   € € € € € ð	
ð 	
ð 	
ð7ð 7ð 7ð 7ð 7r   rQ   c                   ó   — e Zd Zd„ ZdS )ÚEnumDebugCodeContextsc                 ó   — |S r6   re   )r2   Úobs     r   r   zEnumDebugCodeContexts._wrap°   s   € Øˆ	r   N)rb   rc   rd   r   re   r   r   rx   rx   ¯   s#   € € € € € ðð ð ð ð r   rx   c                   óN   — e Zd ZdZg d¢Zej        gZd„ Zd„ Z	d„ Z
d„ Zd„ Zd„ Zd	S )
r0   z‚The class which implements the IActiveScriptDebug interface for the Active Script engine.

    Only ever used by smart hosts.
    )ÚGetScriptTextAttributesÚGetScriptletTextAttributesÚEnumCodeContextsOfPositionc                 ó:   — || _         |j        | _        || _        d S r6   ©ÚdebugMgrr"   r/   )r2   r�   r/   s      r   r4   zActiveScriptDebug.__init__Á   s"   € Ø ˆŒØ'Ô7ˆÔØ,ˆÔÐÐr   c                 ó0   — d | _         d | _        i | _        d S r6   r€   r9   s    r   Ú_ClosezActiveScriptDebug._CloseÆ   s   € ØˆŒØ#ˆÔØ ˆÔÐÐr   c                 óV   — t          d|¦  «         t          | j        j        |¦  «        S )NzDebuggerQI with)r   r   r�   r   rD   s     r   Ú_query_interface_z#ActiveScriptDebug._query_interface_Ë   s(   € ÝÐ Ñ%Ô%Ð%Ý�T”]Ô/°Ñ5Ô5Ð5r   c                 óJ   — t          |d¦  «        }|                     ¦   «         S )Nú<Temp Code Block>)r   ÚGetSyntaxColorAttributes©r2   ÚcodeÚdelimÚflagsÚ	containers        r   r|   z)ActiveScriptDebug.GetScriptTextAttributesÏ   s$   € Ý'¨Ð.AÑBÔBˆ	Ø×1Ò1Ñ3Ô3Ð3r   c                 ón   — t          d|||¦  «         t          |d¦  «        }|                     ¦   «         S )Nr}   r‡   )r   r   rˆ   r‰   s        r   r}   z,ActiveScriptDebug.GetScriptletTextAttributesÓ   s9   € ÝÐ*¨D°%¸Ñ?Ô?Ð?Ý'¨Ð.AÑBÔBˆ	Ø×1Ò1Ñ3Ô3Ð3r   c                 ó  — t          d|||¦  «         	 | j        |                              |¦  «        }n(# t          $ r t	          t
          j        ¬¦  «        ‚w xY wt          |g¦  «        }t          |t          j
        ¦  «        S )Nr~   rn   )r   r/   ÚGetCodeContextAtPositionÚKeyErrorr	   rs   ÚE_UNEXPECTEDrx   r   r   ÚIID_IEnumDebugCodeContexts)r2   ÚcontextÚ
charOffsetÚnumCharsÚenums        r   r~   z,ActiveScriptDebug.EnumCodeContextsOfPositionØ   sŠ   € ÝÐ*¨G°ZÀÑJÔJÐJð	<ØÔ)¨'Ô2×KÒKÈJÑWÔWˆGˆGøÝð 	<ð 	<ð 	<Ý¥XÔ%:Ð;Ñ;Ô;Ð;ð	<øøøå$ g YÑ/Ô/ˆÝ�T�7Ô=Ñ>Ô>Ð>s	   ” 5 µ%AN)rb   rc   rd   Ú__doc__Ú_public_methods_r   r1   Ú_com_interfaces_r4   rƒ   r…   r|   r}   r~   re   r   r   r0   r0   ´   s˜   € € € € € ðð ð
ð ð Ðð
  Ô6Ð7Ðð-ð -ð -ð
!ð !ð !ð
6ð 6ð 6ð4ð 4ð 4ð4ð 4ð 4ð
?ð ?ð ?ð ?ð ?r   r0   )ÚosrJ   r#   r   rs   Úwin32com.axdebugr   r   r   r   Úwin32com.axdebug.codecontainerr   Úwin32com.axdebug.utilr   Úwin32com.server.exceptionr	   Úenvironr   r   r   rQ   rx   r0   re   r   r   ú<module>r¡      se  ðØ 	€	€	€	Ø 
€
€
€
à Ð Ð Ð Ø €€€Ø €€€Ø >Ð >Ð >Ð >Ð >Ð >Ð >Ð >Ð >Ð >Ð >Ð >Ø >Ð >Ð >Ð >Ð >Ð >Ø 'Ð 'Ð 'Ð 'Ð 'Ð 'Ø 2Ð 2Ð 2Ð 2Ð 2Ð 2à  B¤JÐ.€ðð ð ðz6ð z6ð z6ð z6ð z6ñ z6ô z6ð z6ðz7ð 7ð 7ð 7ð 7Ð1ñ 7ô 7ð 7ð.ð ð ð ð ˜HÔ:ñ ô ð ð
+?ð +?ð +?ð +?ð +?ñ +?ô +?ð +?ð +?ð +?r   