Ë
    5]j^  ã                  ó°  — U d Z ddlmZ ddlZddlmZ ddlmZ  eg d¢e	d¬«      Z
d	ed
<   ddddddœZded<    ej                  dej                  «      Z ej                  dej                  «      Z ej                  d«      Z ej                  dej$                  «      Z ej                  d«      Z ej                  dej*                  z   «      Z ej                  d«      Z ej                  d«      Z G d„ de«      Zd ej                  dej                  «      fd ej                  d«      fd ej                  d «      fd! ej                  d"ej                  ej$                  z  «      fd#efd$efd% ej                  d&ej4                  «      fd' ej                  d(ej6                  «      fd) ej                  d*d+j9                  d,„ e
D «       «      z  «      fd- ej                  d.ej                  «      fd/ ej                  d0ej4                  ej$                  z  «      fgZd1ed2<   	 	 	 	 	 	 	 	 d7d3„Zd8d4„Zd9d5„Z 	 	 	 	 d:	 	 	 	 	 	 	 	 	 	 	 d;d6„Z!y)<zÕ
babel.messages.jslexer
~~~~~~~~~~~~~~~~~~~~~~

A simple JavaScript 1.5 lexer which is used for the JavaScript
extractor.

:copyright: (c) 2013-2026 by the Babel Team.
:license: BSD, see LICENSE for more details.
é    )ÚannotationsN)Ú	Generator)Ú
NamedTuple)+ú+ú-Ú*ú%z!=z==ú<ú>z<=z>=ú=z+=z-=z*=z%=z<<z>>z>>>z<<=z>>=z>>>=ú&z&=ú|z|=z&&z||ú^z^=ú(ú)ú[ú]ú{ú}ú!ú--ú++ú~ú,ú;ú.ú:T)ÚkeyÚreversez	list[str]Ú	operatorsúúú
úú	)ÚbÚfÚnÚrÚtzdict[str, str]Úescapesz[\w$_][\w\d$_]*z[\w$_][\w\d$_.]*[\w\d$_.]z/=?z%/(?:[^/\\]*(?:\\.[^/\\]*)*)/[a-zA-Z]*z(\r\n|\n|\r)z\\z[a-fA-F0-9]{1,4}z[a-fA-F0-9]{1,2}c                  ó,   — e Zd ZU ded<   ded<   ded<   y)ÚTokenÚstrÚtypeÚvalueÚintÚlinenoN)Ú__name__Ú
__module__Ú__qualname__Ú__annotations__© ó    úM/var/www/zogu/zoguvenv/lib/python3.12/site-packages/babel/messages/jslexer.pyr-   r-   %   s   … Ø
ƒIØƒJØ„Kr8   r-   z\s+z<!--.*Úlinecommentz//.*Úmultilinecommentz	/\*.*?\*/Údotted_nameÚnameÚnumberzb(
        (?:0|[1-9]\d*)
        (\.\d+)?
        ([eE][-+]?\d+)? |
        (0x[a-fA-F0-9]+)
    )Újsx_tagz(?:</?[^>\s]+|/>)Úoperatorz(%s)r   c              #  óF   K  — | ]  }t        j                  |«      –— Œ y ­w)N)ÚreÚescape)Ú.0Úops     r9   ú	<genexpr>rF   9   s   è ø€ Ò.QÀ¬r¯y©y¸¯}Ñ.Qùs   ‚!Útemplate_stringz`(?:[^`\\]*(?:\\.[^`\\]*)*)`ÚstringzT(
        '(?:[^'\\]*(?:\\.[^'\\]*)*)'  |
        "(?:[^"\\]*(?:\\.[^"\\]*)*)"
    )ú(list[tuple[str | None, re.Pattern[str]]]Ú_rulesc                ó‚   — g }t         D ]3  \  }}| s|rd|v rŒ|s|dk(  rŒ|dk(  r|sŒd}|j                  ||f«       Œ5 |S )ze
    Get a tokenization rule list given the passed syntax options.

    Internal to this module.
    ÚjsxrG   r<   r=   )rJ   Úappend)rL   ÚdottedrG   ÚrulesÚ
token_typeÚrules         r9   Ú	get_rulesrR   B   se   € ð €EÜ"ò 	)Ñˆ
�DÙ‘z e¨zÑ&9ØÙ :Ð1BÒ#BØØ˜Ò&ÙØØˆJØ�‰�j $Ð'Õ(ð	)ð €Lr8   c                óX   — | j                   dk(  r| j                  dv S | j                   dv S )zzA helper function that helps the tokenizer to decide if the current
    token may be followed by a division operator.
    r@   )r   r   r   r   r   )r=   r>   rH   Úregexp)r/   r0   )Útokens    r9   Úindicates_divisionrV   Z   s0   € ð ‡z�z�ZÒØ�{‰{Ð9Ð9Ð9Ø�:‰:Ð?Ð?Ð?r8   c                óx  — | r| d   | d   k(  r| d   dv sJ d«       ‚t         j                  d| dd «      } g }|j                  }d}	 | j                  d|«      }|dk  r�n$ || || «       | |dz      }|t        v r |t        |   «       nò|dv r€t
        j                  | |d	z   «      }|�\|j                  «       }t        |«      dk(  r"	  |t        t        |d«      «      «       |dz   }Œ¤ |||z   «       |j                  «       }ŒÀ ||«       nn|dv rbt        j                  | |d	z   «      }|�>|j                  «       } |t        t        |d«      «      «       |d	z   t        |«      z   }�Œ& ||«       n ||«       |d	z   }�Œ=|t        | «      k  r || |d
 «       dj                  |«      S # t        $ r Y ŒÏw xY w)z¥Unquote a string with JavaScript rules.  The string has to start with
    string delimiters (``'``, ``"`` or the back-tick/grave accent (for template strings).)
    r   éÿÿÿÿz"'`z)string provided is not properly delimitedz\1é   ú\ÚuUé   Né   é   é   ÚxXÚ )Úline_join_reÚsubrM   Úfindr+   Úuni_escape_reÚmatchÚgroupÚlenÚchrr1   Ú
ValueErrorÚendÚhex_escape_reÚjoin)rH   ÚresultÚaddÚposÚ
escape_posÚ	next_charÚescapedÚescaped_values           r9   Úunquote_stringru   c   sï  € ñ �f˜Q‘i 6¨"¡:Ò-°&¸±)¸vÑ2Eð Ø3óÐEô ×Ñ˜e V¨A¨b \Ó2€FØ€FØ
�-‰-€CØ
€Cà
à—[‘[  sÓ+ˆ
Ø˜Š>ÙÙˆF�3�zÐ"Ô#ð ˜:¨™>Ñ*ˆ	ØœÑÙ”˜	Ñ"Õ#ð ˜$ÑÜ#×)Ñ)¨&°*¸q±.ÓAˆGØÐ"Ø '§¡£�Ü�}Ó%¨Ò*ð!ÙœC¤ M°2Ó 6Ó7Ô8ð )¨1™n˜Ø Ù�I Ñ-Ô.Ø—k‘k“m�Øá�I•ð ˜$ÑÜ#×)Ñ)¨&°*¸q±.ÓAˆGØÐ"Ø '§¡£�Ù”Cœ˜M¨2Ó.Ó/Ô0Ø  1‘n¤s¨=Ó'9Ñ9�Ùá�I•ñ �	ŒNØ˜1‰nˆña ðd ŒS�‹[ÒÙˆF�3�4ˆLÔà�7‰7�6‹?Ðøô= &ò Ùðús   ÃF- Æ-	F9Æ8F9c              #  óÒ  K  — d}d}t        | «      }t        |||¬«      }||k  rÁ|D ]  \  }	}
|
j                  | |«      }|€Œ n< |rt        j                  | |«      }d}	nt        j                  | |«      }d}	|€|dz  }Œ`|j                  «       }|	�t        |	||«      }t        |«      }|–— |t        t        j                  |«      «      z  }|j                  «       }||k  rŒÀyy­w)aU  
    Tokenize JavaScript/JSX source.  Returns a generator of tokens.

    :param source: The JavaScript source to tokenize.
    :param jsx: Enable (limited) JSX parsing.
    :param dotted: Read dotted names as single name token.
    :param template_string: Support ES6 template strings
    :param lineno: starting line number (optional)
    Fr   )rL   rN   rG   Nr@   rT   rY   )rh   rR   rf   Údivision_reÚregex_rerg   r-   rV   Úline_reÚfindallrk   )ÚsourcerL   rN   rG   r2   Ú
may_dividerp   rk   rO   rP   rQ   rf   Útoken_valuerU   s                 r9   Útokenizer~   §   sù   è ø€ ð  €JØ
€CÜ
ˆf‹+€CÜ˜# f¸oÔN€Eà
�Š)à %ò 	ÑˆJ˜Ø—J‘J˜v sÓ+ˆEØÑ Ùð	ñ Ü#×)Ñ)¨&°#Ó6�Ø'‘
ä Ÿ™ v¨sÓ3�Ø%�
Øˆ}à�q‘�Øà—k‘k“mˆØÐ!Ü˜* k°6Ó:ˆEÜ+¨EÓ2ˆJØŠKØ”#”g—o‘o kÓ2Ó3Ñ3ˆØ�i‰i‹kˆð9 ��)ùs   ‚?C'ÁB"C'Ã%C')rL   ÚboolrN   r   rG   r   ÚreturnrI   )rU   r-   r€   r   )rH   r.   r€   r.   )TTTrY   )r{   r.   rL   r   rN   r   rG   r   r2   r1   r€   zGenerator[Token, None, None])"Ú__doc__Ú
__future__r   rB   Úcollections.abcr   Útypingr   Úsortedrh   r    r6   r+   ÚcompileÚUNICODEÚname_reÚdotted_name_rerw   ÚDOTALLrx   ry   Úpatternrb   re   rl   r-   ÚVERBOSEÚIrm   rJ   rR   rV   ru   r~   r7   r8   r9   ú<module>rŽ      s§  ðò	õ #ã 	Ý %Ý áò ð
 �Dô€	ˆ9ó ð !%¨4°dÀÈDÑQ€ˆÓ Qà
ˆ"�*‰*Ð'¨¯©Ó
4€Ø�—‘Ð8¸"¿*¹*ÓE€Øˆb�j‰j˜Ó €Øˆ2�:‰:Ð>ÀÇ	Á	ÓJ€Ø
ˆ"�*‰*�_Ó
%€Øˆr�z‰z˜% '§/¡/Ñ1Ó2€Ø�—
‘
Ð.Ó/€Ø�—
‘
Ð.Ó/€ôˆJô ð 
ˆ:ˆ2�:‰:�f˜bŸj™jÓ)Ð*Ø	ˆ:ˆ2�:‰:�iÓ Ð!Ø�J�B—J‘J˜wÓ'Ð(Ø˜˜Ÿ™ L°"·*±*¸r¿y¹yÑ2HÓIÐJØ�NÐ#ØˆWÐØˆzˆr�z‰zð 	ð
 �*‰*óð ð �
�—
‘
Ð/°·±Ó6Ð7Ø��—‘˜G c§h¡hÑ.QÀyÔ.QÓ&QÑQÓRÐSØ˜
˜Ÿ
™
Ð#FÈÏ
É
ÓSÐTØˆzˆr�z‰zð 	ð �*‰*�r—y‘yÑ
 ó"ð #ð!4€Ð0ó ð.Ø	ðàðð ðð .ó	ó0@óAðL ØØ Øð1Øð1à	ð1ð ð1ð ð	1ð
 ð1ð "ô1r8   