
    08i+                         d dl Z d dlZd dlZddlmZ ddlmZmZmZ ddl	m
Z
mZ  G d dee
      Z G d d	e j                        Z G d
 d      Zy)    N   )
SourceFile)ContextEmbeddedCommentsMessage)UserUserExceptionc                   F     e Zd ZdZ ej
                  d      Z fdZ xZS )PythonSourcez# Encapsulate a Python source file. s.   ^[ \t\f]*#.*?coding[:=][ \t]*([-_.a-zA-Z0-9]+)c           	         t        |   di | | j                  dj                  | j                               t        | j                  d      5 }|j                         }ddd       j                  dd      j                  dd      }d}t        |j                  d            D ]P  \  }}|dkD  r nFt        j                  | j                  |      }|s0|j                  d      j                  d	      } n 	 |j                  |      }| j                  dj                  | j                               	 t#        j$                  || j                        }t/        |       }
|
j1                  |       t        | j                  d      5 }d}t3        j2                  |j4                        D ]y  }|j6                  t2        j8                  k(  r|j:                  j                  dd      }t=        |      dk(  sM|d   dk(  r+|
t?               }|j@                  jC                  |d          |d   dk(  r|
t?               }|d   |_"        |d   dk(  s|d   j                  dd      }t=        |      dk(  r|jC                  d       |
t?               }|jF                  jC                  |       |j6                  t2        jH                  k(  r%|)|jJ                  d   }| jL                  D ]1  }|jN                  D ]  }|jP                  |k(  s n d}|*||_)         n d}| 	 ddd       y# 1 sw Y   xY w# t        $ r t!        d
j                  |            w xY w# t&        $ rM}	t!        dj                  |	j(                  |	j                  |	j*                  j-                                     d}	~	ww xY w# 1 sw Y   yxY w) Initialise the object. zReading {0}...rbNs   
   
   zUTF-8r   asciizUnsupported encoding '{0}'zParsing {0}...)filenamez&Invalid syntax at line {0} of {1}:
{2} )maxsplit   r   z#:z#=z#~  )*super__init__progressformatr   openreadreplace	enumeratesplitrematch_PEP_263groupdecodeLookupErrorr	   astparseSyntaxErrorlinenotextrstripVisitorvisittokenizereadlinetypeCOMMENTstringlenr   extra_commentsappend
message_idextrasNLstartcontextsmessagesline_nrembedded_comments)selfkwargsfsourceencodingr=   liner"   treeevisitorcurrenttokenpartscontextmessage	__class__s                   e/home/obispo/Crisostomo_bridge/mision_env/lib/python3.12/site-packages/PyQt6/lupdate/python_source.pyr   zPythonSource.__init__"   sq    	"6" 	&--dmm<=$--& 	!VVXF	 /77uE &v||E':; 	MGT{HHT]]D1E ;;q>009		O]]8,F
 	&--dmm<=	D99Vdmm<D $-d $--& 0	#!G!**1::6 -#::!1!11!LL..sQ.?E5zQ 8t+&*:*<#2299%(C"1X-&*:*<16qG."1X-$)!HNN3N$CE"5zQ %R 0&*:*<#NN11%8ZZ8;;.( $kk!nG $(== 	"'.'7'7 +G&'9 %+ '+G".8?G5!	" #G[-#0	# 0	#Q	 	*  	O < C CH MNN	O  	D=DDHHajj!&&--/CD D	D0	# 0	#s^   L4<M 8!M( A.O:AOA?O<OOO4L>$M%(	N>1AN99N>O
)	__name__
__module____qualname____doc__r!   compiler#   r   __classcell__rM   s   @rN   r   r      s%    - rzzLMH_# _#    r   c                        e Zd ZdZ fdZd Zd Zd Zed        Z	d Z
edd       Zd	 Zd
 Zd Zd Zd Zd Z xZS )r-   z/ A visitor that extracts translation contexts. c                 >    || _         g | _        t        |           y)z Initialise the visitor. N)_source_context_stackr   r   )r?   rB   rM   s     rN   r   zVisitor.__init__   s      rV   c           	         d}t        |j                  t        j                        r|j                  j                  }njt        |j                  t        j
                        rD|j                  j                  }|dk(  r| j                  |      }n|dk(  r| j                  |      }nd}|dk(  r| j                  |      }n|dk(  r| j                  |      }|}|j                  dk7  rn|j                  j                  j                  t        | j                   j"                  |j$                  |j                  |j&                  |j(                               | j+                  |       y)z Visit a call. N
QT_TR_NOOPQT_TRANSLATE_NOOPr   tr	translate)
isinstancefuncr'   	AttributeattrNameid_parse_QT_TR_NOOP_parse_QT_TRANSLATE_NOOP	_parse_tr_parse_translaterB   rK   r<   r6   r   rY   r   r*   disambiguationnumerusgeneric_visit)r?   node	call_argsnames       rN   
visit_CallzVisitor.visit_Call   s    	dii/99>>D		388,99<<D|# 2248	,, 99$?	D 4<t,I[ --d3I  Y%5%5%;&&--DLL114;;%,,i.F.F&..12
 	4 rV   c                    	 | j                   d   j                  dz   |j                  z   }| j                   j                  t	        |             | j                  |       | j                   j                         }|j                  r&| j                  j                  j                  |       yy# t        $ r |j                  }Y w xY w)z Visit a class. .N)
rZ   ro   
IndexErrorr6   r   rl   popr<   rY   r;   )r?   rm   ro   rK   s       rN   visit_ClassDefzVisitor.visit_ClassDef   s    	&&r*//#5		AD 	""74=14 %%))+LL!!((1   	99D	s   )B- -CCc                 <    | j                   r| j                   d   S dS )z4 Return the current Context object if there is one. rr   N)rZ   )r?   s    rN   _get_current_contextzVisitor._get_current_context   s"     +/*=*=t""2&G4GrV   c                 0    |sy| j                  |d         S )z0 Get the first of a list of arguments as a str. Nr   )_get_str)clsargss     rN   _get_first_strzVisitor._get_first_str   s    
 ||DG$$rV   c                     | j                   j                  D ]  }|j                  |k(  s|c S  t        |      }| j                   j                  j	                  |       |S )zA Return the Context object for a name, creating it if necessary. )rY   r;   ro   r   r6   )r?   ro   rK   s      rN   _get_or_create_contextzVisitor._get_or_create_context   sV     ||,, 	G||t#	 $-$$W-rV   c                     t        | t        j                        r5t        | j                  t              r| j                  S |r| j                  yy)zV Return the str from a node or None if it wasn't an appropriate
        node.
        Nr   )r`   r'   Constantvaluestr)rm   
allow_nones     rN   rz   zVisitor._get_str   s<     dCLL)$**c*zz!djj0rV   c                     | j                         }|y| j                  |j                  |j                        }|y||_        |S )z& Parse the arguments to QT_TR_NOOP(). N)rx   _parse_noop_without_contextr|   keywordsrK   r?   rm   rK   rn   s       rN   rf   zVisitor._parse_QT_TR_NOOP   sK     ++-?44TYYN	#	rV   c                     | j                  |j                        }|y| j                  |j                  dd |j                        }|y| j	                  |      |_        |S )z- Parse the arguments to QT_TRANSLATE_NOOP(). Nr   )r}   r|   r   r   r   rK   r?   rm   ro   rn   s       rN   rg   z Visitor._parse_QT_TRANSLATE_NOOP   se     ""499-<44TYYqr]	 77=	rV   c                     | j                         }|y| j                  |j                  |j                        }|y||_        |S )z Parse the arguments to tr(). N)rx   _parse_without_contextr|   r   rK   r   s       rN   rh   zVisitor._parse_tr  sK     ++-?//		4==I	#	rV   c                     | j                  |j                        }|y| j                  |j                  dd |j                        }|y| j	                  |      |_        |S )z% Parse the arguments to translate(). Nr   )r}   r|   r   r   r   rK   r   s       rN   ri   zVisitor._parse_translate  sb     ""499-<//		!"t}}M	 77=	rV   c                 J   | j                  |      }|yt        |      dkD  r| j                  |d   d      }n7|D ]0  }|j                  dk(  s| j                  |j                  d      } n d}|yt        |      dkD  rd}nd|v }t        |      d	kD  ryt        |||      S )
zY Parse arguments for a message source and optional disambiguation
        and n.
        Nr   T)r   rj   r   r   n   )r}   r4   rz   argr   CallArguments)r?   r|   r   rB   rj   kwrk   s          rN   r   zVisitor._parse_without_context-  s     $$T*>t9q=!]]47t]DN $66--%)]]288]%MN$
 "$ !t9q=GXoGt9q=V^W==rV   c                     t        |      dk7  st        |      dk7  ry| j                  |d         }|yt        |      S )z' Parse arguments for a message source. r   r   N)r4   rz   r   )r?   r|   r   rB   s       rN   r   z#Visitor._parse_noop_without_contextO  sB     t9>S]a/tAw'>V$$rV   )F)rO   rP   rQ   rR   r   rp   rv   rx   classmethodr}   r   staticmethodrz   rf   rg   rh   ri   r   r   rT   rU   s   @rN   r-   r-      sh    9 !D2"H
 % %
   "   >D%rV   r-   c                       e Zd ZdZddZy)r   z? Encapsulate the possible arguments of a translation function. c                 <    d| _         || _        || _        || _        y)r   N)rK   rB   rj   rk   )r?   rB   rj   rk   s       rN   r   zCallArguments.__init__`  s!     ,rV   N)r   F)rO   rP   rQ   rR   r   r   rV   rN   r   r   ]  s
    IrV   r   )r'   r!   r/   source_filer   translationsr   r   r   userr   r	   r   NodeVisitorr-   r   r   rV   rN   <module>r      sJ   &  	  # < < %e#:t e#PV%coo V%r	 	rV   