ó
    oñ:iq+  ã                   ó    • S SK JrJr  S SKJr  S SKrS SKr S SKr " S S\
5      r " S S\
5      r " S	 S
\5      rg! \ a	    S SK	Jr   N0f = f)é    )ÚFeatureLibErrorÚIncludedFeaNotFound)ÚFeatureLibLocationN)Úcythonc                   óæ   • \ rS rSrSrSrSr\\\4rSrSr	Sr
SrS	rS
rSrSrSrSrSrSrSrSrSrSr\S-   r\\-   S-   r\R6                  " S5      rSrSrS rS r S r!S r"S r#S r$S r%S  r&S! r'S"r(g#)$ÚLexeré   ÚNUMBERÚHEXADECIMALÚOCTALÚFLOATÚSTRINGÚNAMEÚFILENAMEÚ
GLYPHCLASSÚCIDÚSYMBOLÚCOMMENTÚNEWLINEÚANONYMOUS_BLOCKz 	z
z,;:-+'{}[]<>()=Ú
0123456789Ú0123456789ABCDEFabcdefÚ4ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzz	_+*:.^~!\z
_.+*:^~!/-z^[A-Za-z_0-9.\-]+$ÚNORMALc                 ó�   • X l         SU l        SU l        SU l        Xl        [        U5      U l        [        R                  U l	        g )Né   r   )
Ú	filename_Úline_Úpos_Úline_start_Útext_ÚlenÚtext_length_r   ÚMODE_NORMAL_Úmode_)ÚselfÚtextÚfilenames      ÚY/srv/projetos/modelo_ml_acdoc/venv/lib/python3.13/site-packages/fontTools/feaLib/lexer.pyÚ__init__ÚLexer.__init__+   s;   € Ø!ŒØˆŒ
ØˆŒ	ØˆÔØŒ
Ü ›IˆÔÜ×'Ñ'ˆ�
ó    c                 ó   • U $ ©N© ©r&   s    r)   Ú__iter__ÚLexer.__iter__4   ó   € Øˆr,   c                 ó"   • U R                  5       $ r.   ©Ú__next__r0   s    r)   ÚnextÚ
Lexer.next7   ó   € Ø�}‰}‹Ðr,   c                 ó^   •  U R                  5       u  pnU[        R                  :w  a  XU4$ M-  r.   )Únext_r   r   )r&   Ú
token_typeÚtokenÚlocations       r)   r6   ÚLexer.__next__:   s1   € ØØ*.¯*©*«,Ñ'ˆJ˜xØœUŸ]™]Ó*Ø"¨8Ð4Ð4ñ r,   c                 óŽ   • U R                   U R                  -
  S-   n[        U R                  =(       d    SU R                  U5      $ )Nr   z
<features>)r   r    r   r   r   )r&   Úcolumns     r)   Ú	location_ÚLexer.location_@   s7   € Ø—‘˜T×-Ñ-Ñ-°Ñ1ˆÜ! $§.¡.×"@°LÀ$Ç*Á*ÈfÓUÐUr,   c                 óÜ  • U R                  [        R                  5        U R                  5       nU R                  nU R
                  n[        U5      nX$:¼  a
  [        5       eX2   nUS-   U:  a  X2S-      OS nUS:X  aN  U =R                  S-  sl        U =R                  S-  sl        U R                  U l	        [        R                  S U4$ US:X  aV  U =R                  US:X  a  SOS-  sl        U =R                  S-  sl        U R                  U l	        [        R                  S U4$ US:X  a>  U R                  [        R                  5        [        R                  X2U R                   U4$ U R                  [        R                  L a¤  US:w  a  [!        SU5      eU R                  S5        U R                  U:  a  X0R                     OS nUS:w  a  [!        S	U5      eU =R                  S-  sl        [        R"                  U l        [        R$                  X2S-   U R                  S-
   U4$ US
:X  at  U[        R&                  ;   a`  U =R                  S-  sl        U R                  [        R&                  5        [        R(                  [+        X2S-   U R                   S5      U4$ US:X  a¢  U =R                  S-  sl        U R                  [        R,                  5        X2S-   U R                   n[        U5      S:  a  [!        SU5      e[        R.                  R1                  U5      (       d  [!        SU5      e[        R2                  Xq4$ U[        R4                  ;   ao  U =R                  S-  sl        U R                  [        R,                  5        X2U R                   nUS:X  a  [        R                  U l        [        R6                  X�4$ US:X  ac  US;   a]  U =R                  S-  sl        U R                  [        R8                  5        [        R:                  [+        X2U R                   S5      U4$ US:X  a\  U[        R&                  ;   aH  U R                  [        R&                  5        [        R<                  [+        X2U R                   S5      U4$ U[        R&                  ;   aÂ  U R                  [        R&                  5        U R                  U:¼  d  X0R                     S:w  a)  [        R>                  [+        X2U R                   S5      U4$ U R                  S5        U R                  [        R&                  5        [        R@                  [C        X2U R                   5      U4$ US:X  aë  U[        R&                  ;   a×  U =R                  S-  sl        U R                  [        R&                  5        U R                  U:¼  d  X0R                     S:w  a)  [        R>                  [+        X2U R                   S5      U4$ U R                  S5        U R                  [        R&                  5        [        R@                  [C        X2U R                   5      U4$ U[        RD                  ;   a'  U =R                  S-  sl        [        RF                  XQ4$ US:X  aº  U =R                  S-  sl        U R                  S5        U R                  U RH                  :  an  U R
                  U R                     S:X  aQ  U =R                  S-  sl        [J        RL                  " SSX2S-   U R                  S-
   5      n	[        RN                  X‘4$ [!        SU5      e[!        SU-  U5      e)Nr   Ú
Úé   Ú#Ú(zExpected '(' before file nameÚ)zExpected ')' after file nameÚ\é
   Ú@zExpected glyph class namezOGlyph class names must consist of letters, digits, underscore, period or hyphenÚincludeÚ0ÚxXé   é   Ú.Ú-Ú"z[
]Ú z Expected '"' to terminate stringzUnexpected character: %r)(Ú
scan_over_r   ÚCHAR_WHITESPACE_rB   r   r!   r"   ÚStopIterationr   r    r   Úscan_until_ÚCHAR_NEWLINE_r   r%   ÚMODE_FILENAME_r   r$   r   ÚCHAR_DIGIT_r   ÚintÚCHAR_NAME_CONTINUATION_ÚRE_GLYPHCLASSÚmatchr   ÚCHAR_NAME_START_r   ÚCHAR_HEXDIGIT_r   r   r
   r   ÚfloatÚCHAR_SYMBOL_r   r#   ÚreÚsubr   )
r&   r>   Ústartr'   ÚlimitÚcur_charÚ	next_charÚ
glyphclassr=   Ústrings
             r)   r;   ÚLexer.next_D   sµ  € Ø�‰œ×.Ñ.Ô/Ø—>‘>Ó#ˆØ—	‘	ˆØ�z‰zˆÜ�D“	ˆØ‹>Ü“/Ð!Ø‘;ˆØ',¨q¡y°5Ó'8�D ™’O¸dˆ	à�tÓØ�IŠI˜‰N�IØ�JŠJ˜!‰O�JØ#Ÿy™yˆDÔÜ—M‘M 4¨Ð2Ð2Ø�tÓØ�IŠI˜i¨4Ó/™°QÑ6�IØ�JŠJ˜!‰O�JØ#Ÿy™yˆDÔÜ—M‘M 4¨Ð2Ð2Ø�s‹?Ø×ÑœU×0Ñ0Ô1Ü—M‘M 4°·	±	Ð#:¸HÐEÐEà�:‰:œ×-Ñ-Ò-Ø˜3‹Ü%Ð&EÀxÓPÐPØ×Ñ˜SÔ!Ø*.¯)©)°eÓ*;�tŸI™I’ÀˆHØ˜3‹Ü%Ð&DÀhÓOÐOØ�IŠI˜‰N�IÜ×+Ñ+ˆDŒJÜ—N‘N D°©°T·Y±YÀ±]Ð$CÀXÐNÐNà�tÓ 	¬U×->Ñ->Ó >Ø�IŠI˜‰N�IØ�O‰OœE×-Ñ-Ô.Ü—I‘Iœs 4°©	°D·I±IÐ#>ÀÓCÀXÐNÐNØ�s‹?Ø�IŠI˜‰N�IØ�O‰OœE×9Ñ9Ô:Ø a™i¨$¯)©)Ð4ˆJÜ�:‹ Ó"Ü%Ð&AÀ8ÓLÐLÜ×&Ñ&×,Ñ,¨Z×8Ñ8Ü%ð3àóð ô
 ×$Ñ$ jÐ;Ð;Ø”u×-Ñ-Ó-Ø�IŠI˜‰N�IØ�O‰OœE×9Ñ9Ô:Ø §¡Ð+ˆEØ˜	Ó!Ü"×1Ñ1�”
Ü—J‘J Ð0Ð0Ø�s‹?˜y¨DÓ0Ø�IŠI˜‰N�IØ�O‰OœE×0Ñ0Ô1Ü×%Ñ%¤s¨4¸¿	¹	Ð+BÀBÓ'GÈÐRÐRØ�s‹?˜y¬E×,=Ñ,=Ó=Ø�O‰OœE×-Ñ-Ô.Ü—K‘K¤ T°$·)±)Ð%<¸aÓ!@À(ÐKÐKØ”u×(Ñ(Ó(Ø�O‰OœE×-Ñ-Ô.Ø�y‰y˜EÓ! T¯)©)¡_¸Ó%;ÜŸ™¤c¨$°t·y±yÐ*AÀ2Ó&FÈÐQÐQØ�O‰O˜CÔ Ø�O‰OœE×-Ñ-Ô.Ü—K‘K¤ t°D·I±IÐ'>Ó!?ÀÐJÐJØ�s‹?˜y¬E×,=Ñ,=Ó=Ø�IŠI˜‰N�IØ�O‰OœE×-Ñ-Ô.Ø�y‰y˜EÓ! T¯)©)¡_¸Ó%;ÜŸ™¤c¨$°t·y±yÐ*AÀ2Ó&FÈÐQÐQØ�O‰O˜CÔ Ø�O‰OœE×-Ñ-Ô.Ü—K‘K¤ t°D·I±IÐ'>Ó!?ÀÐJÐJØ”u×)Ñ)Ó)Ø�IŠI˜‰N�IÜ—L‘L (Ð5Ð5Ø�s‹?Ø�IŠI˜‰N�IØ×Ñ˜SÔ!Ø�y‰y˜4×,Ñ,Ó,°·±¸D¿I¹IÑ1FÈ#Ó1MØ—	’	˜Q‘•	äŸš ¨"¨d¸1±9¸t¿y¹yÈ1¹}Ð.MÓN�ÜŸ™ fÐ7Ð7ä%Ð&IÈ8ÓTÐTÜÐ8¸8ÑCÀXÓNÐNr,   c                 ó¾   • U R                   nX R                  :  a<  U R                  U   U;   a)  US-  nX R                  :  a  U R                  U   U;   a  M)  X l         g ©Nr   ©r   r#   r!   )r&   ÚvalidÚps      r)   rW   ÚLexer.scan_over_¥   sQ   € Ø�I‰IˆØ×#Ñ#Ó#¨¯
©
°1©¸Ó(>Ø�‰FˆAð ×#Ñ#Ó#¨¯
©
°1©¸Õ(>à�	r,   c                 ó¾   • U R                   nX R                  :  a<  U R                  U   U;  a)  US-  nX R                  :  a  U R                  U   U;  a  M)  X l         g rp   rq   )r&   Ústop_atrs   s      r)   rZ   ÚLexer.scan_until_«   sQ   € Ø�I‰IˆØ×#Ñ#Ó#¨¯
©
°1©¸WÓ(DØ�‰FˆAð ×#Ñ#Ó#¨¯
©
°1©¸WÕ(Dà�	r,   c                 óÐ  • U R                  5       nUR                  5       nU R                  [        R                  5        U R                  [        R                  5        SU-   S-   n[        R                  " X0R                  U R                  S  SS9n[        U5      S:w  a  [        SU-  U5      eU =R                  [        US   5      -  sl	        [        R                  US   U4$ )Nz}\s*z\s*;r   )ÚmaxsplitrG   z-Expected '} %s;' to terminate anonymous blockr   )rB   ÚstriprZ   r   r[   rW   rf   Úsplitr!   r   r"   r   r   )r&   Útagr>   Úregexpr{   s        r)   Úscan_anonymous_blockÚLexer.scan_anonymous_block±   s½   € Ø—>‘>Ó#ˆØ�i‰i‹kˆØ×Ñœ×,Ñ,Ô-Ø�‰œ×+Ñ+Ô,Ø˜3‘ Ñ(ˆÜ—’˜§¡¨D¯I©I¨KÐ!8À1ÑEˆÜˆu‹:˜‹?Ü!Ø?À#ÑEÀxóð ð 	�	Š	”S˜˜q™“]Ñ"�	Ü×%Ñ% u¨Q¡x°Ð:Ð:r,   )r   r   r    r%   r   r!   r#   N))Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__r
   r   r   ÚNUMBERSr   r   r   r   r   r   r   r   r   r   rX   r[   re   r]   rc   ÚCHAR_LETTER_rb   r_   rf   Úcompiler`   r$   r\   r*   r1   r7   r6   rB   r;   rW   rZ   r~   Ú__static_attributes__r/   r,   r)   r   r      sÓ   † Ø€FØ€KØ€EØ�{ EÐ*€GØ€EØ€FØ€DØ€HØ€JØ
€CØ€FØ€GØ€GØ'€OàÐØ€MØ$€LØ€KØ-€NØI€LØ# lÑ2ÐØ*¨[Ñ8¸<ÑGÐà—J’JÐ4Ó5€Mà€LØ€Nò(òòò5òVò_OòBòõ;r,   r   c                   óN   • \ rS rSrSrSS.S jrS rS rS r\	S	 5       r
S
 rSrg)ÚIncludingLexeréÀ   a{  A Lexer that follows include statements.

The OpenType feature file specification states that due to
historical reasons, relative imports should be resolved in this
order:

1. If the source font is UFO format, then relative to the UFO's
   font directory
2. relative to the top-level include file
3. relative to the parent include file

We only support 1 (via includeDir) and 2.
N)Ú
includeDirc                óz   • U R                  U5      /U l        U R                  S   R                  U l        X l        g)a  Initializes an IncludingLexer.

Behavior:
    If includeDir is passed, it will be used to determine the top-level
    include directory to use for all encountered include statements. If it is
    not passed, ``os.path.dirname(featurefile)`` will be considered the
    include directory.
r   N)Úmake_lexer_Úlexers_r   Úfeaturefilepathr‹   )r&   Úfeaturefiler‹   s      r)   r*   ÚIncludingLexer.__init__Ï   s4   € ð ×(Ñ(¨Ó5Ð6ˆŒØ#Ÿ|™|¨A™×8Ñ8ˆÔØ$�r,   c                 ó   • U $ r.   r/   r0   s    r)   r1   ÚIncludingLexer.__iter__Ý   r3   r,   c                 ó"   • U R                  5       $ r.   r5   r0   s    r)   r7   ÚIncludingLexer.nextà   r9   r,   c                 óÎ  • U R                   (       Ga€  U R                   S   n [        U5      u  p#nU[        R
                  L Ga6  US:X  Ga/  UR                  5       u  pVnU[        R                  La  [        SU5      e[        R                  R                  U5      (       a  UnO…U R                  b  U R                  n	OLU R                  b*  [        R                  R                  U R                  5      n	O[        R                  " 5       n	[        R                  R                  X–5      n[!        U R                   5      S:¼  a  [        SU5      e U R                   R#                  U R%                  U5      5        OX#U4$ U R                   (       a  GM€  [        5       e! [         a    U R                   R                  5          GMÄ  f = f! [&         a  n
[)        Xg5      U
eS n
A
ff = f)NéÿÿÿÿrN   zExpected file nameé   zToo many recursive includes)rŽ   r7   rY   Úpopr   r   r   r   ÚosÚpathÚisabsr‹   r�   ÚdirnameÚgetcwdÚjoinr"   Úappendr�   ÚFileNotFoundErrorr   )r&   Úlexerr<   r=   r>   Ú
fname_typeÚfname_tokenÚfname_locationr›   ÚcurpathÚerrs              r)   r6   ÚIncludingLexer.__next__ã   s‡  € Ø�l�lˆlØ—L‘L Ñ$ˆEðÜ.2°5«kÑ+�
 8ð œUŸZ™ZÓ'¨E°YÔ,>Ø:?¿*¹*»,Ñ7�
¨Ø¤U§^¡^Ò3Ü)Ð*>ÀÓOÐOô —7‘7—=‘= ×-Ñ-Ø&‘Dà—‘Ñ2Ø"&§/¡/™Ø×-Ñ-Ñ9Ü"$§'¡'§/¡/°$×2FÑ2FÓ"G™ô #%§)¢)£+˜ÜŸ7™7Ÿ<™<¨Ó=�DÜ�t—|‘|Ó$¨Ó)Ü)Ð*GÈÓXÐXðTØ—L‘L×'Ñ'¨×(8Ñ(8¸Ó(>Õ?ð #¨8Ð4Ð4ðG �l�lŠlôH ‹oÐøôA !ó Ø—‘× Ñ Ô"Ûðûô8 )ó TÜ-¨kÓJÐPSÐSûðTús)   £F Å*G	 Æ$GÇGÇ	
G$ÇGÇG$c                 óÆ   • [        U S5      (       a  U Sp!OU Sp#[        USSS9nUR                  5       n[        USS 5      nU(       a  UR	                  5         [        XC5      $ )NÚreadFTÚrz	utf-8-sig)ÚencodingÚname)ÚhasattrÚopenrª   ÚgetattrÚcloser   )Úfile_or_pathÚfileobjÚclosingr(   Údatas        r)   r�   ÚIncludingLexer.make_lexer_
  s[   € ä�< ×(Ñ(Ø+¨U‘Wà ,¨d�gÜ˜8 S°;Ñ?ˆGØ�|‰|‹~ˆÜ˜7 F¨DÓ1ˆÞØ�M‰MŒOÜ�TÓ$Ð$r,   c                 ó>   • U R                   S   R                  U5      $ )Nr—   )rŽ   r~   )r&   r|   s     r)   r~   Ú#IncludingLexer.scan_anonymous_block  s   € Ø�|‰|˜BÑ×4Ñ4°SÓ9Ð9r,   )r�   r‹   rŽ   )r€   r�   r‚   rƒ   Ú__doc__r*   r1   r7   r6   Ústaticmethodr�   r~   r‡   r/   r,   r)   r‰   r‰   À   s:   † ñð 37õ %òòò%ðN ñ
%ó ð
%õ:r,   r‰   c                   ó   • \ rS rSrSrS rSrg)ÚNonIncludingLexeri  zBLexer that does not follow `include` statements, emits them as-is.c                 ó2   • [        U R                  S   5      $ )Nr   )r7   rŽ   r0   s    r)   r6   ÚNonIncludingLexer.__next__  s   € Ü�D—L‘L ‘OÓ$Ð$r,   r/   N)r€   r�   r‚   rƒ   r¹   r6   r‡   r/   r,   r)   r¼   r¼     s
   † ÙLõ%r,   r¼   )ÚfontTools.feaLib.errorr   r   ÚfontTools.feaLib.locationr   rf   rš   r   ÚImportErrorÚfontTools.miscÚobjectr   r‰   r¼   r/   r,   r)   Ú<module>rÄ      sX   ðß GÝ 8Û 	Û 	ð&Ûôp;ˆFô p;ôfX:�Vô X:ôv%˜õ %øðg ó &ç%ð&ús   ˜> ¾AÁA