ó
    oñ:i4c  ã                   óš   • S SK Js  Jr  S SKJr  S SKJr  S SKJr  SSSSS	S
S
S
SSSSS.r	 " S S\
5      r " S S\
5      r " S S\5      rg)é    N)ÚLexer)ÚVoltLibError)ÚopenÚparse_def_glyph_Úparse_def_group_Úparse_def_script_Úparse_def_lookup_Úparse_def_anchor_Úparse_ppem_Úparse_noarg_option_Úparse_cmap_format)Ú	DEF_GLYPHÚ	DEF_GROUPÚ
DEF_SCRIPTÚ
DEF_LOOKUPÚ
DEF_ANCHORÚ	GRID_PPEMÚPRESENTATION_PPEMÚPPOSITIONING_PPEMÚCOMPILER_USEEXTENSIONLOOKUPSÚCOMPILER_USEPAIRPOSFORMAT2ÚCMAP_FORMATÚDO_NOT_TOUCH_CMAPc                   óÚ   • \ 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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%g$)%ÚParseré   c                 óJ  • [         R                  " 5       U l        [        5       U l        [        5       U l        0 U l        [        5       U l        [        5       U l	        [        5       U l
        Su  U l        U l        S U l        U R                  U5        U R                  5         g )N©NN)ÚastÚVoltFileÚdoc_ÚOrderedSymbolTableÚglyphs_ÚSymbolTableÚgroups_Úanchors_Úscripts_Úlangs_Úlookups_Únext_token_type_Únext_token_Únext_token_location_Úmake_lexer_Úadvance_lexer_)ÚselfÚpaths     Ú[/srv/projetos/modelo_ml_acdoc/venv/lib/python3.13/site-packages/fontTools/voltLib/parser.pyÚ__init__ÚParser.__init__   sv   € Ü—L’L“NˆŒ	Ü)Ó+ˆŒÜ"“}ˆŒØˆŒÜ#›ˆŒÜ!“mˆŒÜ#›ˆŒØ2>Ñ/ˆÔ˜tÔ/Ø$(ˆÔ!Ø×Ñ˜ÔØ×ÑÕó    c                 óô   • [        US5      (       a  [        USS 5      nUR                  5       nO'Un[        US5       nUR                  5       nS S S 5        [	        WU5      U l        g ! , (       d  f       N = f)NÚreadÚnameÚr)ÚhasattrÚgetattrr6   r   r   Úlexer_)r/   Úfile_or_pathÚfilenameÚdataÚfs        r1   r-   ÚParser.make_lexer_$   sc   € Ü�< ×(Ñ(Ü˜|¨V°TÓ:ˆHØ×$Ñ$Ó&‰Dà#ˆHÜ�l CÔ(¨AØ—v‘v“x�÷ )ä˜D (Ó+ˆ�÷ )Õ(ús   ¾A)Á)
A7c           	      ó  • U R                   R                  nU R                  bÛ  U R                  5         U R                  [
        R                  5       ;   a4  [        U [
        U R                     5      nUR                  U" 5       5        OfU R                  S5      (       a   U R                   $ [        SSR                  [        [
        R                  5       5      5      -   U R                  5      eU R                  b  MÛ  U R                   $ )NÚENDz	Expected z, )r!   Ú
statementsr*   r.   Ú
cur_token_ÚPARSE_FUNCSÚkeysr:   ÚappendÚis_cur_keyword_r   ÚjoinÚsortedÚcur_token_location_)r/   rC   Úfuncs      r1   ÚparseÚParser.parse.   sÔ   € Ø—Y‘Y×)Ñ)ˆ
Ø×#Ñ#Ñ/Ø×ÑÔ!Ø�‰¤+×"2Ñ"2Ó"4Ó4Ü˜t¤[°·±Ñ%AÓB�Ø×!Ñ!¡$£&Õ)Ø×%Ñ% e×,Ñ,Øð �y‰yÐô	 #Ø $§)¡)¬F´;×3CÑ3CÓ3EÓ,FÓ"GÑGØ×,Ñ,óð ð ×#Ñ#Ó/ð �y‰yÐr4   c           	      óª  • U R                  S5      (       d   eU R                  nU R                  5       nU R                  S5        U R	                  5       nUS:  a  [        SU R                  5      eS nU R                  S:X  aB  U R                  S5        U R	                  5       /nUS   S:  a  [        SU R                  5      eO1U R                  S:X  a!  U R                  S5        U R                  5       nS nU R                  S:X  a)  U R                  S5        U R                  5       nUS	;   d   eS nU R                  S
:X  a!  U R                  S
5        U R	                  5       nU R                  S5        U R                  R                  U5      b  [        SX#4-  U5      e[        R                  " X#XEXaS9nU R                  R                  X'5        U$ )Nr   ÚIDr   zInvalid glyph IDÚUNICODEzInvalid glyph UNICODEÚUNICODEVALUESÚTYPE)ÚBASEÚLIGATUREÚMARKÚ	COMPONENTÚ
COMPONENTSÚ	END_GLYPHz#Glyph "%s" (gid %i) already defined©Úlocation)rH   rK   Úexpect_string_Úexpect_keyword_Úexpect_number_r   r+   Úparse_unicode_values_Úexpect_name_r#   Úresolver   ÚGlyphDefinitionÚdefine)r/   r[   r7   ÚgidÚgunicodeÚgtypeÚ
componentsÚ	def_glyphs           r1   r   ÚParser.parse_def_glyph_>   sÅ  € Ø×#Ñ# K×0Ñ0Ð0Ð0Ø×+Ñ+ˆØ×"Ñ"Ó$ˆØ×Ñ˜TÔ"Ø×!Ñ!Ó#ˆØ�‹7ÜÐ1°4×3KÑ3KÓLÐLØˆØ×Ñ˜yÓ(Ø× Ñ  Ô+Ø×+Ñ+Ó-Ð.ˆHØ˜‰{˜Q‹Ü"Ð#:¸D×<TÑ<TÓUÐUð à×Ñ Ó0Ø× Ñ  Ô1Ø×1Ñ1Ó3ˆHØˆØ×Ñ˜vÓ%Ø× Ñ  Ô(Ø×%Ñ%Ó'ˆEØÐEÓEÐEÐEØˆ
Ø×Ñ˜|Ó+Ø× Ñ  Ô.Ø×,Ñ,Ó.ˆJØ×Ñ˜[Ô)Ø�<‰<×Ñ Ó%Ñ1ÜØ5¸¸ÑCÀXóð ô ×'Ò'Ø�x¨
ñ
ˆ	ð 	�‰×Ñ˜DÔ,ØÐr4   c                 óŠ  • U R                  S5      (       d   eU R                  nU R                  5       nS nU R                  S:X  a  U R	                  5       nU R                  S5        U R                  R                  U5      b  [        SU-  U5      e[        R                  " X#US9nU R                  R                  X$5        U$ )Nr   ÚENUMÚ	END_GROUPzBGlyph group "%s" already defined, group names are case insensitiverZ   )rH   rK   r\   r+   Úparse_enum_r]   r%   ra   r   r   ÚGroupDefinitionrc   )r/   r[   r7   ÚenumÚ	def_groups        r1   r   ÚParser.parse_def_group_c   s¿   € Ø×#Ñ# K×0Ñ0Ð0Ð0Ø×+Ñ+ˆØ×"Ñ"Ó$ˆØˆØ×Ñ˜vÓ%Ø×#Ñ#Ó%ˆDØ×Ñ˜[Ô)Ø�<‰<×Ñ Ó%Ñ1Üð3Ø59ñ:àóð ô
 ×'Ò'¨¸XÑFˆ	Ø�‰×Ñ˜DÔ,ØÐr4   c                 óØ  • U R                  S5      (       d   eU R                  nS nU R                  S:X  a!  U R                  S5        U R	                  5       nU R                  S5        U R	                  5       nU R
                  R                  U5      b  [        SU-  U5      eU R                  R                  5         / nU R                  S:w  a¿  U R                  5         U R                  5       nU R                  S5        U R                  R                  UR                  5      b  [        SUR                  < SU< S	3U5      eU R                  R                  UR                  U5        UR                  U5        U R                  S:w  a  M¿  U R                  S5        U R                  R                  5         [         R"                  " X#XAS
9nU R
                  R                  X65        U$ )Nr   ÚNAMEÚTAGz=Script "%s" already defined, script tags are case insensitiveÚ
END_SCRIPTÚEND_LANGSYSz
Language "z" already defined in script "z%", language tags are case insensitiverZ   )rH   rK   r+   r]   r\   r'   ra   r   r(   Úenter_scoper.   Úparse_langsys_Útagrc   rG   Ú
exit_scoper   ÚScriptDefinition)r/   r[   r7   ry   ÚlangsÚlangÚ
def_scripts          r1   r   ÚParser.parse_def_script_u   s¦  € Ø×#Ñ# L×1Ñ1Ð1Ð1Ø×+Ñ+ˆØˆØ×Ñ˜vÓ%Ø× Ñ  Ô(Ø×&Ñ&Ó(ˆDØ×Ñ˜UÔ#Ø×!Ñ!Ó#ˆØ�=‰=× Ñ  Ó%Ñ1Üð3Ø58ñ9àóð ð
 	�‰×ÑÔ!ØˆØ×Ñ ,Ó.Ø×ÑÔ!Ø×&Ñ&Ó(ˆDØ× Ñ  Ô/Ø�{‰{×"Ñ" 4§8¡8Ó,Ñ8Ý"à<@¿H¼HÃcðKàóð ð
 �K‰K×Ñ˜tŸx™x¨Ô.Ø�L‰L˜Ôð ×Ñ ,Õ.ð 	×Ñ˜\Ô*Ø�‰×ÑÔ Ü×)Ò)¨$°UÑNˆ
Ø�‰×Ñ˜SÔ-ØÐr4   c                 óì  • U R                  S5      (       d   eU R                  nS nU R                  S:X  a!  U R                  S5        U R	                  5       nU R                  S5        U R	                  5       n/ nU R                  S:w  aT  U R                  5         U R                  5       nU R                  S5        UR                  U5        U R                  S:w  a  MT  [        R                  " X#XAS9nU$ )NÚDEF_LANGSYSrs   rt   rv   ÚEND_FEATURErZ   )
rH   rK   r+   r]   r\   r.   Úparse_feature_rG   r   ÚLangSysDefinition)r/   r[   r7   ry   ÚfeaturesÚfeatureÚdef_langsyss          r1   rx   ÚParser.parse_langsys_˜   sà   € Ø×#Ñ# M×2Ñ2Ð2Ð2Ø×+Ñ+ˆØˆØ×Ñ˜vÓ%Ø× Ñ  Ô(Ø×&Ñ&Ó(ˆDØ×Ñ˜UÔ#Ø×!Ñ!Ó#ˆØˆØ×Ñ -Ó/Ø×ÑÔ!Ø×)Ñ)Ó+ˆGØ× Ñ  Ô/Ø�O‰O˜GÔ$ð	 ×Ñ -Õ/ô
 ×+Ò+¨D°xÑSˆØÐr4   c                 ó¨  • U R                  S5      (       d   eU R                  nU R                  S5        U R                  5       nU R                  S5        U R                  5       n/ nU R                  S:w  aD  U R                  S5        U R                  5       nUR                  U5        U R                  S:w  a  MD  [        R                  " X#XAS9nU$ )NÚDEF_FEATURErs   rt   r‚   ÚLOOKUPrZ   )rH   rK   r]   r\   r+   rG   r   ÚFeatureDefinition)r/   r[   r7   ry   ÚlookupsÚlookupr†   s          r1   rƒ   ÚParser.parse_feature_ª   sÀ   € Ø×#Ñ# M×2Ñ2Ð2Ð2Ø×+Ñ+ˆØ×Ñ˜VÔ$Ø×"Ñ"Ó$ˆØ×Ñ˜UÔ#Ø×!Ñ!Ó#ˆØˆØ×Ñ -Ó/à× Ñ  Ô*Ø×(Ñ(Ó*ˆFØ�N‰N˜6Ô"ð	 ×Ñ -Õ/ô
 ×'Ò'¨°7ÑNˆØˆr4   c                 óf  • U R                  S5      (       d   eU R                  nU R                  5       nUS   R                  5       (       d  [	        SU-  U5      eU R
                  R                  U5      b  [	        SU-  U5      eSnU R                  S:X  a  U R                  5         O"U R                  S:X  a  U R                  5         SnSnS nU R                  S	:X  aÍ  U R                  5         U R                  S
:X  a!  U R                  5         U R                  5       nO®U R                  S:X  a  U R                  5         O�U R                  S:X  a  U R                  5         SnOjU R                  [        R                  :X  a  U R                  5       nO;[	        SU R                  -  U5      eU R                  S:X  a  U R                  5         SnS nU R                  S:X  a)  U R                  S5        U R                  5       nUS;   d   eS nU R                  S:X  a  U R                  S5        SnS nU R                  S:X  a1  U R                  S5        U R                  5       R                  SS5      n/ n	U R                  S;   a"  U R                  5       n	U R                  S;   a  M"  U R                  5       n
S nS nU
S:X  a  U R!                  U5      nO&U
S:X  a  U R#                  5       nO[	        SU
-  U5      e[$        R&                  " UUUUUUUU	UUUS9nU R
                  R)                  X-5        U$ )Nr   r   z)Lookup name "%s" must start with a letterz>Lookup "%s" already defined, lookup names are case insensitiveTÚPROCESS_BASEÚ	SKIP_BASEFÚPROCESS_MARKSÚMARK_GLYPH_SETÚALLÚNONEz3Expected ALL, NONE, MARK_GLYPH_SET or an ID. Got %sÚ
SKIP_MARKSÚ	DIRECTION)ÚLTRÚRTLÚREVERSALÚCOMMENTSz\nÚ
©ÚEXCEPT_CONTEXTÚ
IN_CONTEXTÚAS_SUBSTITUTIONÚAS_POSITIONz/Expected AS_SUBSTITUTION or AS_POSITION. Got %srZ   )rH   rK   r\   Úisalphar   r)   ra   r+   r.   r*   r   ÚSTRINGr]   r`   ÚreplaceÚparse_context_Úparse_substitution_Úparse_position_r   ÚLookupDefinitionrc   )r/   r[   r7   Úprocess_baseÚprocess_marksÚmark_glyph_setÚ	directionÚreversalÚcommentsÚcontextÚas_pos_or_subÚsubÚposÚ
def_lookups                 r1   r	   ÚParser.parse_def_lookup_º   s6  € Ø×#Ñ# L×1Ñ1Ð1Ð1Ø×+Ñ+ˆØ×"Ñ"Ó$ˆØ�A‰w�‰× Ñ ÜØ;¸dÑBÀHóð ð �=‰=× Ñ  Ó&Ñ2Üð4Ø6:ñ;àóð ð
 ˆØ×Ñ˜~Ó-Ø×ÑÕ!Ø×Ñ Ó,Ø×ÑÔ!Ø ˆLØˆØˆØ×Ñ˜Ó.Ø×ÑÔ!Ø×ÑÐ#3Ó3Ø×#Ñ#Ô%Ø!%×!4Ñ!4Ó!6‘Ø×!Ñ! UÓ*Ø×#Ñ#Õ%Ø×!Ñ! VÓ+Ø×#Ñ#Ô%Ø %‘Ø×&Ñ&¬%¯,©,Ó6Ø $× 3Ñ 3Ó 5‘ä"ðØ $× 5Ñ 5ñ7àóð ð
 ×Ñ Ó-Ø×ÑÔ!Ø!ˆMØˆ	Ø×Ñ˜{Ó*Ø× Ñ  Ô-Ø×)Ñ)Ó+ˆIØ Ó.Ð.Ð.ØˆØ×Ñ˜zÓ)Ø× Ñ  Ô,ØˆHØˆØ×Ñ˜zÓ)Ø× Ñ  Ô,Ø×*Ñ*Ó,×4Ñ4°U¸DÓAˆHØˆØ×ÑÐ"BÓBØ×)Ñ)Ó+ˆGð ×ÑÐ"BÕBà×)Ñ)Ó+ˆØˆØˆØÐ-Ó-Ø×*Ñ*¨8Ó4‰CØ˜mÓ+Ø×&Ñ&Ó(‰CäØDÈÑVØóð ô ×)Ò)ØØØØØØØØØØØñ
ˆ
ð 	�‰×Ñ˜TÔ.ØÐr4   c                 ó  • U R                   n/ nU R                  S;   aî  S nS nU R                  5       nU R                  S:w  a§  / n/ nU R                  S;   a[  U R                  5       nU R                  5       nUS:X  a  UR	                  U5        OUR	                  U5        U R                  S;   a  M[  U R                  S5        [        R                  " XVXqS9nUR	                  U5        OU R                  S5        U R                  S;   a  Mî  U$ )Nrž   ÚEND_CONTEXT)ÚLEFTÚRIGHTr¸   rZ   )rK   r+   r`   Úparse_coverage_rG   r]   r   ÚContextDefinition)	r/   r[   ÚcontextsÚsideÚcoverageÚex_or_inÚleftÚrightr°   s	            r1   r¦   ÚParser.parse_context_  s  € Ø×+Ñ+ˆØˆØ×ÑÐ"BÓBØˆDØˆHØ×(Ñ(Ó*ˆHà×Ñ =Ó0Ø�Ø�Ø×&Ñ&Ð*;Ó;Ø×,Ñ,Ó.�DØ#×3Ñ3Ó5�HØ˜v“~ØŸ™ HÕ-àŸ™ XÔ.ð ×&Ñ&Ð*;Õ;ð ×$Ñ$ ]Ô3Ü×/Ò/Ø Eñ�ð —‘ Õ(à×$Ñ$ ]Ô3ð+ ×ÑÐ"BÕBð, ˆr4   c                 óÎ  • U R                  S5      (       d   eU R                  n/ n/ nU R                  S:w  a  [        SU5      eU R                  S:X  aƒ  U R	                  S5        UR                  U R                  5       5        U R	                  S5        UR                  U R                  5       5        U R	                  S5        U R                  S:X  a  Mƒ  U R	                  S5        [        U Vs/ s H  n[        U5      PM     sn5      n[        U Vs/ s H  n[        U5      PM     sn5      nUS:”  a  US:”  a  [        SU5      e[        [        [        U5      [        U5      5      5      nUS:X  a›  US:X  a•  U VV	s/ s H  oU  H  o™R                  5       PM     M     n
nn	[        [        U
5      5      [        U
5      :w  a  [        R                  " X‚S	9nU$ U(       a  [        R                   " X‚S	9nU$ [        R"                  " X‚S	9n U$ US:X  a  US:”  a  [        R$                  " X‚S	9nU$ US:”  a  US:X  a  [        R&                  " X‚S	9nW$ s  snf s  snf s  sn	nf )
Nr¡   ÚSUBzExpected SUBÚWITHÚEND_SUBÚEND_SUBSTITUTIONé   zInvalid substitution typerZ   )rH   rK   r+   r   r]   rG   rº   ÚmaxÚlenÚdictÚzipÚtupleÚglyphSetÚsetr   ÚSubstitutionAlternateDefinitionÚ+SubstitutionReverseChainingSingleDefinitionÚSubstitutionSingleDefinitionÚSubstitutionMultipleDefinitionÚSubstitutionLigatureDefinition)r/   r®   r[   ÚsrcÚdestÚcovÚmax_srcÚmax_destÚmappingÚxÚglyphsr²   s               r1   r§   ÚParser.parse_substitution_,  s*  € Ø×#Ñ#Ð$5×6Ñ6Ð6Ð6Ø×+Ñ+ˆØˆØˆØ×Ñ˜uÓ$Ü˜~¨xÓ8Ð8Ø×Ñ %Ó'Ø× Ñ  Ô'Ø�J‰J�t×+Ñ+Ó-Ô.Ø× Ñ  Ô(Ø�K‰K˜×,Ñ,Ó.Ô/Ø× Ñ  Ô+ð ×Ñ %Õ'ð 	×ÑÐ/Ô0Ü©3Ó/ª3 C”s˜3–x©3Ñ/Ó0ˆÜ©DÓ1ªD Sœ˜Cž©DÑ1Ó2ˆð �Q‹;˜8 a›<ÜÐ:¸HÓEÐEä”sœ5 ›:¤u¨T£{Ó3Ó4ˆØ�a‹<˜H¨›Mñ /2Ô?ªc s»3°a—j‘j–l¹3‘l©cˆFÑ?Ü”3�v“;Ó¤3 v£;Ó.Ü×9Ò9¸'ÑU�ð ˆ
ö ô ×IÒIØñ�Cð ˆ
ô ×:Ò:¸7ÑV‘Cð
 ˆ
ð	 ˜‹\˜h¨›lÜ×4Ò4°WÑPˆCð ˆ
ð �q‹[˜X¨›]Ü×4Ò4°WÑPˆCØˆ
ùò7 0ùÚ1ùó @s   Ã2IÄIÆ"I!c                 ój  • U R                  S5      (       d   eU R                  nU R                  5       nUS;  a  [        SU5      eUS:X  a  U R	                  5       nODUS:X  a  U R                  5       nO-US:X  a  U R                  5       nOUS:X  a  U R                  5       nU R                  S5        W$ )	Nr¢   )ÚATTACHÚATTACH_CURSIVEÚADJUST_PAIRÚADJUST_SINGLEz;Expected ATTACH, ATTACH_CURSIVE, ADJUST_PAIR, ADJUST_SINGLErß   rà   rá   râ   ÚEND_POSITION)	rH   rK   r`   r   Úparse_attach_Úparse_attach_cursive_Úparse_adjust_pair_Úparse_adjust_single_r]   )r/   r[   Úpos_typeÚpositions       r1   r¨   ÚParser.parse_position_W  s»   € Ø×#Ñ# M×2Ñ2Ð2Ð2Ø×+Ñ+ˆØ×$Ñ$Ó&ˆØÐWÓWÜØMÈxóð ð �xÓØ×)Ñ)Ó+‰HØÐ)Ó)Ø×1Ñ1Ó3‰HØ˜Ó&Ø×.Ñ.Ó0‰HØ˜Ó(Ø×0Ñ0Ó2ˆHØ×Ñ˜^Ô,Øˆr4   c                 óÌ  • U R                  S5      (       d   eU R                  nU R                  5       n/ nU R                  S5        U R                  S:w  af  U R                  5       nU R                  S5        U R                  S5        U R                  5       nUR                  XE45        U R                  S:w  a  Mf  U R                  S5        [        R                  " X#US9nU$ )Nrß   ÚTOÚ
END_ATTACHÚATÚANCHORrZ   )	rH   rK   rº   r]   r+   r\   rG   r   ÚPositionAttachDefinition)r/   r[   r¾   Úcoverage_tor×   Úanchor_nameré   s          r1   rä   ÚParser.parse_attach_j  sØ   € Ø×#Ñ# H×-Ñ-Ð-Ð-Ø×+Ñ+ˆØ×'Ñ'Ó)ˆØˆØ×Ñ˜TÔ"Ø×Ñ ,Ó.Ø×&Ñ&Ó(ˆCØ× Ñ  Ô&Ø× Ñ  Ô*Ø×-Ñ-Ó/ˆKØ×Ñ Ð1Ô2ð ×Ñ ,Õ.ð 	×Ñ˜\Ô*Ü×/Ò/Ø¨Hñ
ˆð ˆr4   c                 óê  • U R                  S5      (       d   eU R                  n/ n/ nU R                  S:w  aB  U R                  S5        UR	                  U R                  5       5        U R                  S:w  a  MB  U R                  S:w  aB  U R                  S5        UR	                  U R                  5       5        U R                  S:w  a  MB  U R                  S5        [        R                  " X#US9nU$ )Nrà   ÚENTERÚEXITrí   rZ   )rH   rK   r+   r]   rG   rº   r   ÚPositionAttachCursiveDefinition)r/   r[   Úcoverages_exitÚcoverages_enterré   s        r1   rå   ÚParser.parse_attach_cursive_|  sã   € Ø×#Ñ#Ð$4×5Ñ5Ð5Ð5Ø×+Ñ+ˆØˆØˆØ×Ñ 'Ó)Ø× Ñ  Ô(Ø×!Ñ! $×"6Ñ"6Ó"8Ô9ð ×Ñ 'Õ)ð ×Ñ ,Ó.Ø× Ñ  Ô)Ø×"Ñ" 4×#7Ñ#7Ó#9Ô:ð ×Ñ ,Õ.ð 	×Ñ˜\Ô*Ü×6Ò6Ø°hñ
ˆð ˆr4   c                 óæ  • U R                  S5      (       d   eU R                  n/ n/ n0 nU R                  S:X  aC  U R                  5         U R	                  5       nUR                  U5        U R                  S:X  a  MC  U R                  S:X  aC  U R                  5         U R	                  5       nUR                  U5        U R                  S:X  a  MC  U R                  S:w  aj  U R                  5       nU R                  5       nU R                  S5        U R                  5       n	U R                  5       n
Xš4XGU4'   U R                  S:w  a  Mj  U R                  S5        [        R                  " X#XAS9nU$ )Nrá   ÚFIRSTÚSECONDÚ
END_ADJUSTÚBYrZ   )rH   rK   r+   r.   rº   rG   r^   r]   Ú
parse_pos_r   ÚPositionAdjustPairDefinition)r/   r[   Úcoverages_1Úcoverages_2Úadjust_pairÚ
coverage_1Ú
coverage_2Úid_1Úid_2Úpos_1Úpos_2ré   s               r1   ræ   ÚParser.parse_adjust_pair_�  s]  € Ø×#Ñ# M×2Ñ2Ð2Ð2Ø×+Ñ+ˆØˆØˆØˆØ×Ñ 'Ó)Ø×ÑÔ!Ø×-Ñ-Ó/ˆJØ×Ñ˜zÔ*ð ×Ñ 'Õ)ð ×Ñ (Ó*Ø×ÑÔ!Ø×-Ñ-Ó/ˆJØ×Ñ˜zÔ*ð ×Ñ (Õ*ð ×Ñ ,Ó.Ø×&Ñ&Ó(ˆDØ×&Ñ&Ó(ˆDØ× Ñ  Ô&Ø—O‘OÓ%ˆEØ—O‘OÓ%ˆEØ).¨ˆK˜t˜Ñ%ð ×Ñ ,Õ.ð 	×Ñ˜\Ô*Ü×3Ò3Ø kñ
ˆð ˆr4   c                 óf  • U R                  S5      (       d   eU R                  n/ nU R                  S:w  aU  U R                  5       nU R	                  S5        U R                  5       nUR                  X445        U R                  S:w  a  MU  U R	                  S5        [        R                  " X!S9nU$ )Nrâ   rþ   rÿ   rZ   )	rH   rK   r+   rº   r]   r   rG   r   ÚPositionAdjustSingleDefinition)r/   r[   Úadjust_singleÚ	coveragesr³   ré   s         r1   rç   ÚParser.parse_adjust_single_¨  s¥   € Ø×#Ñ# O×4Ñ4Ð4Ð4Ø×+Ñ+ˆØˆØ×Ñ ,Ó.Ø×,Ñ,Ó.ˆIØ× Ñ  Ô&Ø—/‘/Ó#ˆCØ× Ñ  )Ð!1Ô2ð	 ×Ñ ,Õ.ð
 	×Ñ˜\Ô*Ü×5Ò5°mÑWˆØˆr4   c           
      ó6  • U R                  S5      (       d   eU R                  nU R                  5       nU R                  S5        U R	                  5       nU R                  S5        U R                  5       nU R                  S5        U R	                  5       nX@R                  ;   a@  U R                  U   R                  U5      nUb  UR                  U:X  a  [        SU-  U5      eU R                  S:X  a  SnU R                  5         OSnU R                  S	5        U R                  5       nU R                  S
5        [        R                  " X#XEXxUS9nX@R                  ;  a  [        5       U R                  U'   U R                  U   R!                  X&5        U$ )Nr   ÚONÚGLYPHrW   z>Anchor "%s" already defined, anchor names are case insensitiveÚLOCKEDTFrî   Ú
END_ANCHORrZ   )rH   rK   r\   r]   r^   r`   r&   ra   Ú	componentr   r+   r.   r   r   ÚAnchorDefinitionr$   rc   )	r/   r[   r7   rd   Ú
glyph_namer  ÚanchorÚlockedr³   s	            r1   r
   ÚParser.parse_def_anchor_µ  sx  € Ø×#Ñ# L×1Ñ1Ð1Ð1Ø×+Ñ+ˆØ×"Ñ"Ó$ˆØ×Ñ˜TÔ"Ø×!Ñ!Ó#ˆØ×Ñ˜WÔ%Ø×&Ñ&Ó(ˆ
Ø×Ñ˜[Ô)Ø×'Ñ'Ó)ˆ	àŸ™Ó&Ø—]‘] :Ñ.×6Ñ6°tÓ<ˆFØÑ! f×&6Ñ&6¸)Ó&CÜ"ð8Ø:>ñ?àóð ð
 ×Ñ˜xÓ'ØˆFØ×ÑÕ!àˆFØ×Ñ˜TÔ"Ø�o‰oÓˆØ×Ñ˜\Ô*Ü×%Ò%Ø�z¨fÀHñ
ˆð Ÿ]™]Ó*Ü(3«ˆD�M‰M˜*Ñ%Ø�‰�jÑ!×(Ñ(¨Ô6Øˆr4   c                 óº   • U R                  5         U R                  S5      (       d   eU R                  5       nU R                  S5        U R                  5       nX4$ )NÚ	ADJUST_BYrî   )r.   rH   r^   r]   )r/   Ú
adjustmentÚsizes      r1   Úparse_adjust_by_ÚParser.parse_adjust_by_Ø  sX   € Ø×ÑÔØ×#Ñ# K×0Ñ0Ð0Ð0Ø×(Ñ(Ó*ˆ
Ø×Ñ˜TÔ"Ø×"Ñ"Ó$ˆØÐÐr4   c                 óN  • U R                  5         U R                  nU R                  S5      (       d   U5       eS nS nS n0 n0 n0 nU R                  S:X  aX  U R                  5         U R	                  5       nU R                  S:X  a(  U R                  5       u  p‰X…U	'   U R                  S:X  a  M(  U R                  S:X  aX  U R                  5         U R	                  5       nU R                  S:X  a(  U R                  5       u  p‰X†U	'   U R                  S:X  a  M(  U R                  S:X  aX  U R                  5         U R	                  5       nU R                  S:X  a(  U R                  5       u  p‰X‡U	'   U R                  S:X  a  M(  U R                  S5        [        R                  " X#XEXg5      $ )NÚPOSÚADVr  ÚDXÚDYÚEND_POS)	r.   rK   rH   r+   r^   r   r]   r   ÚPos)
r/   r[   ÚadvÚdxÚdyÚadv_adjust_byÚdx_adjust_byÚdy_adjust_byr  r  s
             r1   r   ÚParser.parse_pos_à  s—  € à×ÑÔØ×+Ñ+ˆØ×#Ñ# E×*Ñ*Ð4¨HÓ4Ð*ØˆØˆØˆØˆØˆØˆØ×Ñ˜uÓ$Ø×ÑÔ!Ø×%Ñ%Ó'ˆCØ×"Ñ" kÓ1Ø#'×#8Ñ#8Ó#:Ñ �
Ø&0˜dÑ#ð ×"Ñ" kÕ1ð ×Ñ˜tÓ#Ø×ÑÔ!Ø×$Ñ$Ó&ˆBØ×"Ñ" kÓ1Ø#'×#8Ñ#8Ó#:Ñ �
Ø%/˜TÑ"ð ×"Ñ" kÕ1ð ×Ñ˜tÓ#Ø×ÑÔ!Ø×$Ñ$Ó&ˆBØ×"Ñ" kÓ1Ø#'×#8Ñ#8Ó#:Ñ �
Ø%/˜TÑ"ð ×"Ñ" kÕ1ð 	×Ñ˜YÔ'Ü�wŠw�s °<ÓNÐNr4   c                 ó  • U R                   n U R                  5       R                  S5      nU Vs/ s H  o3S:w  d  M
  [        USS  S5      PM     nnU/ :w  a  U$ S $ s  snf ! [         a  n[        [        U5      U5      eS nAff = f)NÚ,Ú é   é   )rK   r\   ÚsplitÚintÚ
ValueErrorr   Ústr)r/   r[   Úunicode_valuesÚuniÚerrs        r1   r_   ÚParser.parse_unicode_values_   s�   € Ø×+Ñ+ˆð	3Ø!×0Ñ0Ó2×8Ñ8¸Ó=ˆNÙ:HÓVº.°3ÐSUÉIÓ.œc # a b '¨2Ö.¹.ˆNÐVð "0°2Ó!5ˆ~Ð?¸4Ð?ùò WøÜó 	3Üœs 3›x¨Ó2Ð2ûð	3ús-   Ž#A" ±	A¾AÁA" ÁA" Á"
BÁ,BÂBc                 ó¨   • U R                  S5        U R                  n[        R                  " U R	                  5       US9nU R                  S5        U$ )Nrk   rZ   ÚEND_ENUM)r]   rK   r   ÚEnumrº   )r/   r[   ro   s      r1   rm   ÚParser.parse_enum_	  sG   € Ø×Ñ˜VÔ$Ø×+Ñ+ˆÜ�xŠx˜×,Ñ,Ó.¸ÑBˆØ×Ñ˜ZÔ(Øˆr4   c           	      ó$  • / nU R                   nU R                  S;   Gag  U R                  S:X  a#  U R                  5       nUR                  U5        GO!U R                  S:X  aE  U R	                  S5        U R                  5       nUR                  [        R                  " XBS95        OÌU R                  S:X  aF  U R	                  S5        U R                  5       nUR                  [        R                  " X@US95        OvU R                  S:X  af  U R	                  S5        U R                  5       nU R	                  S5        U R                  5       nUR                  [        R                  " XVXS95        U R                  S;   a  GMg  [        U5      $ )N)r  ÚGROUPÚRANGErk   rk   r  rZ   rB  rC  rì   )rK   r+   rm   rG   r]   r\   r   Ú	GlyphNameÚ	GroupNameÚRangerÍ   )r/   r¾   r[   ro   r7   ÚstartÚends          r1   rº   ÚParser.parse_coverage_  sC  € ØˆØ×+Ñ+ˆØ×ÑÐ"EÔEØ×Ñ 6Ó)Ø×'Ñ'Ó)�Ø—‘ Ö%Ø×!Ñ! WÓ,Ø×$Ñ$ WÔ-Ø×*Ñ*Ó,�Ø—‘¤§¢¨dÑ FÕGØ×!Ñ! WÓ,Ø×$Ñ$ WÔ-Ø×*Ñ*Ó,�Ø—‘¤§¢¨dÀ8Ñ LÕMØ×!Ñ! WÓ,Ø×$Ñ$ WÔ-Ø×+Ñ+Ó-�Ø×$Ñ$ TÔ*Ø×)Ñ)Ó+�Ø—‘¤§	¢	¨%°dÑ NÔOð# ×ÑÐ"EÖEô$ �X‹Ðr4   c                 ó8   • U R                   R                  U5      $ ©N)r%   ra   )r/   Ú
group_names     r1   Úresolve_groupÚParser.resolve_group'  s   € Ø�|‰|×#Ñ# JÓ/Ð/r4   c                 ó8   • U R                   R                  X5      $ rK  )r#   Úrange)r/   rG  rH  s      r1   Úglyph_rangeÚParser.glyph_range*  s   € Ø�|‰|×!Ñ! %Ó-Ð-r4   c                 ó€   • U R                   nU R                  nU R                  5       n[        R                  " X#US9nU$ ©NrZ   ©rK   rD   r^   r   ÚSettingDefinition)r/   r[   Ú	ppem_nameÚvalueÚsettings        r1   r   ÚParser.parse_ppem_-  s;   € Ø×+Ñ+ˆØ—O‘Oˆ	Ø×#Ñ#Ó%ˆÜ×'Ò'¨	À8ÑLˆØˆr4   c                 ód   • U R                   nU R                  nSn[        R                  " X#US9nU$ )NTrZ   )rK   rD   r   rV  ©r/   r[   r7   rX  rY  s        r1   r   ÚParser.parse_noarg_option_4  s2   € Ø×+Ñ+ˆØ�‰ˆØˆÜ×'Ò'¨¸hÑGˆØˆr4   c                 ó¾   • U R                   nU R                  nU R                  5       U R                  5       U R                  5       4n[        R                  " X#US9nU$ rT  rU  r\  s        r1   r   ÚParser.parse_cmap_format;  sT   € Ø×+Ñ+ˆØ�‰ˆØ×$Ñ$Ó&¨×(;Ñ(;Ó(=¸t×?RÑ?RÓ?TÐUˆÜ×'Ò'¨¸hÑGˆØˆr4   c                 óf   • U R                   [        R                  L =(       a    U R                  U:H  $ rK  )Úcur_token_type_r   rs   rD   )r/   Úks     r1   rH   ÚParser.is_cur_keyword_B  s%   € Ø×$Ñ$¬¯
©
Ð2×N¸¿¹ÈAÑ9MÐNr4   c                 ó    • U R                  5         U R                  [        R                  La  [	        SU R
                  5      eU R                  $ )NzExpected a string)r.   ra  r   r¤   r   rK   rD   ©r/   s    r1   r\   ÚParser.expect_string_E  ó>   € Ø×ÑÔØ×Ñ¤u§|¡|Ò3ÜÐ2°D×4LÑ4LÓMÐMØ�‰Ðr4   c                 óÆ   • U R                  5         U R                  [        R                  L a  U R                  U:X  a  U R                  $ [        SU-  U R                  5      e)NzExpected "%s"©r.   ra  r   rs   rD   r   rK   )r/   Úkeywords     r1   r]   ÚParser.expect_keyword_K  sM   € Ø×ÑÔØ×Ñ¤5§:¡:Ò-°$·/±/ÀWÓ2LØ—?‘?Ð"Ü˜?¨WÑ4°d×6NÑ6NÓOÐOr4   c                 ó    • U R                  5         U R                  [        R                  L a  U R                  $ [        SU R                  5      e)NzExpected a nameri  re  s    r1   r`   ÚParser.expect_name_Q  s>   € Ø×ÑÔØ×Ñ¤5§:¡:Ò-Ø—?‘?Ð"ÜÐ,¨d×.FÑ.FÓGÐGr4   c                 ó    • U R                  5         U R                  [        R                  La  [	        SU R
                  5      eU R                  $ )NzExpected a number)r.   ra  r   ÚNUMBERr   rK   rD   re  s    r1   r^   ÚParser.expect_number_W  rg  r4   c                 ó>  • U R                   U R                  U R                  sU l        U l        U l         U R                  S5      (       a  [        eU R                  R                  5       u  U l         U l        U l        g ! [         a    Su  U l         U l         g f = f)NrB   r   )
r*   r+   r,   ra  rD   rK   rH   ÚStopIterationr;   Únextre  s    r1   r.   ÚParser.advance_lexer_]  s˜   € à×!Ñ!Ø×ÑØ×%Ñ%ð 	HˆÔ˜dœo¨tÔ/Gð
		CØ×#Ñ# E×*Ñ*Ü#Ð#ð
 —‘× Ñ Ó"ñ	ØÔ%ØÔ ØÕ)øäó 	CØ6BÑ3ˆDÔ! 4Ö#3ð	Cús   ¶A	B  Â BÂB)r&   rD   rK   ra  r!   r#   r%   r(   r;   r)   r+   r,   r*   r'   N)&Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__r2   r-   rM   r   r   r   rx   rƒ   r	   r¦   r§   r¨   rä   rå   ræ   rç   r
   r   r   r_   rm   rº   rM  rQ  r   r   r   rH   r\   r]   r`   r^   r.   Ú__static_attributes__© r4   r1   r   r      s´   † òò,òò #òJò$!òFò$ò Uònò6)òVò&ò$ò"ò6ò!òF òOò@@òòò.0ò.òòòòOòòPòHòõCr4   r   c                   ó6   • \ rS rSrS rS rS rS rS	S jrSr	g)
r$   io  c                 ó   • 0 /U l         g rK  ©Úscopes_re  s    r1   r2   ÚSymbolTable.__init__p  ó   € Ø�tˆ�r4   c                 ó:   • U R                   R                  0 5        g rK  ©r~  rG   re  s    r1   rw   ÚSymbolTable.enter_scopes  ó   € Ø�‰×Ñ˜BÕr4   c                 ó8   • U R                   R                  5         g rK  )r~  Úpopre  s    r1   rz   ÚSymbolTable.exit_scopev  s   € Ø�‰×ÑÕr4   c                 ó&   • X R                   S   U'   g )Néÿÿÿÿr}  )r/   r7   Úitems      r1   rc   ÚSymbolTable.definey  s   € Ø!%�‰�RÑ˜Òr4   c                 óä   • [        U R                  5       H  nUR                  U5      nU(       d  M  Us  $    U(       a1  W H+  nUR                  5       UR                  5       :X  d  M'  X5   s  $    g rK  )Úreversedr~  ÚgetÚlower)r/   r7   Úcase_insensitiveÚscoperŠ  Úkeys         r1   ra   ÚSymbolTable.resolve|  s\   € Ü˜dŸl™lÖ+ˆEØ—9‘9˜T“?ˆDßˆtØ’ñ ,ö Û�Ø—9‘9“; $§*¡*£,Õ.Ø ™:Ò%ñ ð r4   r}  N)T)
ru  rv  rw  rx  r2   rw   rz   rc   ra   ry  rz  r4   r1   r$   r$   o  s   † òò òò&÷	r4   r$   c                   ó0   • \ rS rSrS rS rSS jrS rSrg)	r"   iˆ  c                 ó   • 0 /U l         g rK  r}  re  s    r1   r2   ÚOrderedSymbolTable.__init__‰  r€  r4   c                 ó:   • U R                   R                  0 5        g rK  r‚  re  s    r1   rw   ÚOrderedSymbolTable.enter_scopeŒ  r„  r4   c                 ó,   • [         R                  XUS9  g )N)r�  )r$   ra   )r/   r7   r�  s      r1   ra   ÚOrderedSymbolTable.resolve�  s   € Ü×Ñ˜DÐ9IÐÒJr4   c                 ó4  • [        U R                  5       H  nX;   d  M
  X#;   d  M  [        UR                  5       5      R	                  U5      n[        UR                  5       5      R	                  U5      n[        UR                  5       5      XES-    s  $    g )NrÈ   )r�  r~  ÚlistrF   Úindex)r/   rG  rH  r‘  Ú	start_idxÚend_idxs         r1   rP  ÚOrderedSymbolTable.range’  ss   € Ü˜dŸl™lÖ+ˆEØ�~ #¥,Ü  §¡£Ó.×4Ñ4°UÓ;�	Ü˜uŸz™z›|Ó,×2Ñ2°3Ó7�Ü˜EŸJ™J›LÓ)¨)À±kÐBÒBñ	 ,ð
 r4   r}  N)F)	ru  rv  rw  rx  r2   rw   ra   rP  ry  rz  r4   r1   r"   r"   ˆ  s   † òò ôKõr4   r"   )ÚfontTools.voltLib.astÚvoltLibr   ÚfontTools.voltLib.lexerr   ÚfontTools.voltLib.errorr   Úior   rE   Úobjectr   r$   r"   rz  r4   r1   Ú<module>r§     sj   ðß #Ð #Ý )Ý 0Ý ð $Ø#Ø%Ø%Ø%ØØ&Ø&Ø$9Ø"7Ø&Ø.ñ€ô V	CˆVô V	Côr�&ô ô2˜õ r4   