Warning: session_start(): Session cannot be started after headers have already been sent in /home/tvrreohg/public_html/manga.php on line 13
3 2øªjœbã @s‚ddljjZddlmZddlmZddlmZddddd d d d d d d d d œ Z Gdd„de ƒZ Gdd„de ƒZ Gdd„de ƒZ dS)é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_ANCHORZ GRID_PPEMZPRESENTATION_PPEMZPPOSITIONING_PPEMZCOMPILER_USEEXTENSIONLOOKUPSZCOMPILER_USEPAIRPOSFORMAT2Z CMAP_FORMATZDO_NOT_TOUCH_CMAPc@seZdZdd„Zdd„Zdd„Zdd„Zd d „Zd d „Zd d„Z dd„Z dd„Z dd„Z dd„Z dd„Zdd„Zdd„Zdd„Zdd „Zd!d"„Zd#d$„Zd%d&„Zd'd(„Zd)d*„Zd+d,„Zd-d.„Zd/d0„Zd1d2„Zd3d4„Zd5d6„Zd7d8„Zd9d:„Zd;d<„Z d=d>„Z!d?d@„Z"dAdB„Z#dCS)DÚParsercCs`tjƒ|_tƒ|_tƒ|_i|_tƒ|_tƒ|_ tƒ|_ d\|_ |_ d|_ |j|ƒ|jƒdS)N)NN)ÚastZVoltFileÚdoc_ÚOrderedSymbolTableÚglyphs_Ú SymbolTableÚgroups_Úanchors_Úscripts_Úlangs_Úlookups_Únext_token_type_Ú next_token_Únext_token_location_Ú make_lexer_Úadvance_lexer_)ÚselfÚpath©r$ú=/tmp/pip-build-_d5lkt3n/fonttools/fontTools/voltLib/parser.pyÚ__init__s   zParser.__init__c CsRt|dƒr t|ddƒ}|jƒ}n"|}t|dƒ�}|jƒ}WdQRXt||ƒ|_dS)NÚreadÚnameÚr)ÚhasattrÚgetattrr'rrÚlexer_)r"Z file_or_pathÚfilenameÚdataÚfr$r$r%r $s    zParser.make_lexer_cCs~|jj}xn|jdk rv|jƒ|jtjƒkrHt|t|jƒ}|j|ƒƒq |j dƒrVPq t ddj t tjƒƒƒ|j ƒ‚q W|jS)NÚENDz Expected z, )rÚ statementsrr!Ú cur_token_Ú PARSE_FUNCSÚkeysr+ÚappendÚis_cur_keyword_rÚjoinÚsortedÚcur_token_location_)r"r1Úfuncr$r$r%Úparse.s   z Parser.parsecCs<|jdƒst‚|j}|jƒ}|jdƒ|jƒ}|dkrBtd|jƒ‚d}|jdkr~|jdƒ|jƒg}|ddkrštd|jƒ‚n|jdkrš|jdƒ|jƒ}d}|jdkrÆ|jdƒ|j ƒ}|dksÆt‚d}|jd kræ|jd ƒ|jƒ}|jdƒ|j j |ƒdk �rtd||f|ƒ‚t j ||||||d�}|j j||ƒ|S)Nr ZIDrzInvalid glyph IDÚUNICODEzInvalid glyph UNICODEZ UNICODEVALUESZTYPEÚBASEÚLIGATUREÚMARKÚ COMPONENTZ COMPONENTSZ END_GLYPHz#Glyph "%s" (gid %i) already defined)Úlocation)r=r>r?r@)r6ÚAssertionErrorr9Úexpect_string_Úexpect_keyword_Úexpect_number_rrÚparse_unicode_values_Ú expect_name_rÚresolverZGlyphDefinitionÚdefine)r"rAr(ÚgidZgunicodeZgtypeÚ componentsZ def_glyphr$r$r%r=sH                zParser.parse_def_glyph_cCs||jdƒst‚|j}|jƒ}d}|jdkr2|jƒ}|jdƒ|jj|ƒdk rZt d||ƒ‚t j |||d�}|jj ||ƒ|S)NrÚENUMZ END_GROUPzBGlyph group "%s" already defined, group names are case insensitive)rA) r6rBr9rCrÚ parse_enum_rDrrHrrZGroupDefinitionrI)r"rAr(ÚenumZ def_groupr$r$r%rds   zParser.parse_def_group_cCs|jdƒst‚|j}d}|jdkr4|jdƒ|jƒ}|jdƒ|jƒ}|jj|ƒdk rdtd||ƒ‚|j j ƒg}xh|jdkrÚ|j ƒ|j ƒ}|jdƒ|j j|j ƒdk r¾td|j |f|ƒ‚|j j|j |ƒ|j|ƒqtW|jdƒ|j jƒtj||||d�}|jj||ƒ|S) NrÚNAMEÚTAGz=Script "%s" already defined, script tags are case insensitiveZ END_SCRIPTÚ END_LANGSYSzPLanguage "%s" already defined in script "%s", language tags are case insensitive)rA)r6rBr9rrDrCrrHrrÚ enter_scoper!Úparse_langsys_ÚtagrIr5Ú exit_scoperZScriptDefinition)r"rAr(rTZlangsÚlangZ def_scriptr$r$r%rws>         zParser.parse_def_script_cCs”|jdƒst‚|j}d}|jdkr4|jdƒ|jƒ}|jdƒ|jƒ}g}x2|jdkr||jƒ|jƒ}|jdƒ|j|ƒqLWt j ||||d�}|S)NZ DEF_LANGSYSrOrPrQÚ END_FEATURE)rA) r6rBr9rrDrCr!Úparse_feature_r5rZLangSysDefinition)r"rAr(rTÚfeaturesÚfeatureZ def_langsysr$r$r%rSšs"      zParser.parse_langsys_cCs~|jdƒst‚|j}|jdƒ|jƒ}|jdƒ|jƒ}g}x*|jdkrf|jdƒ|jƒ}|j|ƒq>Wtj||||d�}|S)NZ DEF_FEATURErOrPrWZLOOKUP)rA) r6rBr9rDrCrr5rZFeatureDefinition)r"rAr(rTZlookupsÚlookuprZr$r$r%rX­s     zParser.parse_feature_c Cs8|jdƒst‚|j}|jƒ}|djƒs6td||ƒ‚|jj|ƒdk rTtd||ƒ‚d}|jdkrl|j ƒn|jdkr‚|j ƒd}d}d}|jd k�r|j ƒ|jd krº|j ƒ|jƒ}nR|jd krÎ|j ƒn>|jd kræ|j ƒd}n&|j t j krü|jƒ}ntd |j |ƒ‚n|jdk�r&|j ƒd}d}|jdk�rV|j dƒ|jƒ}|dk�sVt‚d}|jdk�rt|j dƒd}d}|jdk�rž|j dƒ|jƒjddƒ}g} x|jdk�r¼|jƒ} �q¤W|jƒ} d} d} | dk�rä|j|ƒ} n"| dk�rø|jƒ} ntd| |ƒ‚tj|||||||| | | |d� } |jj|| ƒ| S)Nrrz)Lookup name "%s" must start with a letterz>Lookup "%s" already defined, lookup names are case insensitiveTZ PROCESS_BASEZ SKIP_BASEFZ PROCESS_MARKSZMARK_GLYPH_SETÚALLÚNONEz3Expected ALL, NONE, MARK_GLYPH_SET or an ID. Got %sZ SKIP_MARKSZ DIRECTIONÚLTRÚRTLZREVERSALZCOMMENTSz\nÚ ÚEXCEPT_CONTEXTÚ IN_CONTEXTÚAS_SUBSTITUTIONÚ AS_POSITIONz/Expected AS_SUBSTITUTION or AS_POSITION. Got %s)rA)r^r_)rarb)r6rBr9rCÚisalpharrrHrr!rrÚSTRINGrDrGÚreplaceÚparse_context_Úparse_substitution_Úparse_position_rZLookupDefinitionrI)r"rAr(Z process_baseZ process_marksZmark_glyph_setÚ directionÚreversalÚcommentsÚcontextZ as_pos_or_subÚsubÚposZ def_lookupr$r$r%r¾sŽ                        zParser.parse_def_lookup_c Cs°|j}g}x |jdkrªd}d}|jƒ}|jdkržg}g}x<|jdkrt|jƒ}|jƒ}|dkrh|j|ƒq:|j|ƒq:W|jdƒtj||||d�}|j|ƒq |jdƒq W|S) NrarbZ END_CONTEXTÚLEFTÚRIGHT)rA)rarb)rqrr)r9rrGÚparse_coverage_r5rDrZContextDefinition) r"rAZcontextsZsideÚcoverageZex_or_inÚleftÚrightrnr$r$r%rh s*       zParser.parse_context_c Csn|jdƒst‚|j}g}g}|jdkr0td|ƒ‚xH|jdkrx|jdƒ|j|jƒƒ|jdƒ|j|jƒƒ|jdƒq2W|jdƒtdd„|Dƒƒ}td d„|Dƒƒ}|d kr¸|d ksÌ|rÖ|d ksÌ|d krÖtd |ƒ‚t t t |ƒt |ƒƒƒ}|d koú|d k�r$|�rt j ||d �}nt j||d �}nF|d k�rH|d k�rHt j||d �}n"|d k�rj|d k�rjt j||d �}|S) NrcZSUBz Expected SUBZWITHZEND_SUBZEND_SUBSTITUTIONcSsg|] }t|ƒ‘qSr$)Úlen)Ú.0Úcovr$r$r%ú 3sz.Parser.parse_substitution_..cSsg|] }t|ƒ‘qSr$)rw)rxryr$r$r%rz4sézInvalid substitution type)rA)r6rBr9rrrDr5rsÚmaxÚdictÚzipÚtuplerZ+SubstitutionReverseChainingSingleDefinitionZSubstitutionSingleDefinitionZSubstitutionMultipleDefinitionZSubstitutionLigatureDefinition) r"rlrAÚsrcÚdestZmax_srcZmax_destÚmappingror$r$r%ri%sD         zParser.parse_substitution_cCs‚|jdƒst‚|j}|jƒ}|dkr.td|ƒ‚|dkr@|jƒ}n4|dkrR|jƒ}n"|dkrd|jƒ}n|dkrt|jƒ}|j dƒ|S) NrdÚATTACHÚATTACH_CURSIVEÚ ADJUST_PAIRÚ ADJUST_SINGLEz;Expected ATTACH, ATTACH_CURSIVE, ADJUST_PAIR, ADJUST_SINGLEZ END_POSITION)rƒr„r…r†) r6rBr9rGrÚ parse_attach_Úparse_attach_cursive_Úparse_adjust_pair_Úparse_adjust_single_rD)r"rAZpos_typeÚpositionr$r$r%rjKs$    zParser.parse_position_cCsŠ|jdƒst‚|j}|jƒ}g}|jdƒx@|jdkrj|jƒ}|jdƒ|jdƒ|jƒ}|j||fƒq,W|jdƒtj |||d�}|S)NrƒÚTOÚ END_ATTACHÚATZANCHOR)rA) r6rBr9rsrDrrCr5rZPositionAttachDefinition)r"rArtZ coverage_toryZ anchor_namer‹r$r$r%r‡_s      zParser.parse_attach_cCsŠ|jdƒst‚|j}g}g}x&|jdkrB|jdƒ|j|jƒƒqWx&|jdkrj|jdƒ|j|jƒƒqFW|jdƒtj|||d�}|S)Nr„ZENTERZEXITr�)rA) r6rBr9rrDr5rsrZPositionAttachCursiveDefinition)r"rAZcoverages_exitZcoverages_enterr‹r$r$r%rˆps      zParser.parse_attach_cursive_c CsÞ|jdƒst‚|j}g}g}i}x(|jdkrH|jƒ|jƒ}|j|ƒq"Wx(|jdkrr|jƒ|jƒ}|j|ƒqLWxH|jdkr¼|jƒ}|jƒ}|jdƒ|j ƒ} |j ƒ} | | f|||f<qvW|jdƒt j ||||d�} | S)Nr…ZFIRSTZSECONDÚ END_ADJUSTÚBY)rA) r6rBr9rr!rsr5rErDÚ parse_pos_rZPositionAdjustPairDefinition) r"rAZ coverages_1Z coverages_2Z adjust_pairZ coverage_1Z coverage_2Zid_1Zid_2Zpos_1Zpos_2r‹r$r$r%r‰€s0     zParser.parse_adjust_pair_cCsl|jdƒst‚|j}g}x6|jdkrN|jƒ}|jdƒ|jƒ}|j||fƒqW|jdƒtj ||d�}|S)Nr†r�r�)rA) r6rBr9rrsrDr‘r5rZPositionAdjustSingleDefinition)r"rAZ adjust_singleZ coveragesrpr‹r$r$r%rŠšs    zParser.parse_adjust_single_c Cs|jdƒst‚|j}|jƒ}|jdƒ|jƒ}|jdƒ|jƒ}|jdƒ|jƒ}||jkrŒ|j|j|ƒ}|dk rŒ|j |krŒt d||ƒ‚|j dkr¤d}|j ƒnd}|jd ƒ|j ƒ}|jd ƒtj|||||||d �}||jkròtƒ|j|<|j|j||ƒ|S) NrÚONÚGLYPHr@z>Anchor "%s" already defined, anchor names are case insensitiveÚLOCKEDTFrŽZ END_ANCHOR)rA)r6rBr9rCrDrErGrrHÚ componentrrr!r‘rZAnchorDefinitionrrI) r"rAr(rJZ glyph_namer•ÚanchorÚlockedrpr$r$r%r ¨s<           zParser.parse_def_anchor_cCs8|jƒ|jdƒst‚|jƒ}|jdƒ|jƒ}||fS)NÚ ADJUST_BYrŽ)r!r6rBrErD)r"Ú adjustmentÚsizer$r$r%Úparse_adjust_by_Ës  zParser.parse_adjust_by_c Cs|jƒ|j}|jdƒs t|ƒ‚d}d}d}i}i}i}|jdkrv|jƒ|jƒ}x"|jdkrt|jƒ\}} ||| <qTW|jdkr´|jƒ|jƒ}x"|jdkr²|jƒ\}} ||| <q’W|jdkrò|jƒ|jƒ}x"|jdkrð|jƒ\}} ||| <qÐW|jdƒtj ||||||ƒS)NÚPOSZADVr˜ZDXZDYZEND_POS) r!r9r6rBrrEr›rDrZPos) r"rAZadvZdxZdyZ adv_adjust_byZ dx_adjust_byZ dy_adjust_byr™ršr$r$r%r‘Ós:             zParser.parse_pos_cCsh|j}y |jƒjdƒ}dd„|Dƒ}Wn0tk rV}ztt|ƒ|ƒ‚WYdd}~XnX|gkrd|SdS)Nú,cSs&g|]}|dkrt|dd…dƒ‘qS)ÚéNé)Úint)rxÚunir$r$r%rzøsz0Parser.parse_unicode_values_..)r9rCÚsplitÚ ValueErrorrÚstr)r"rAZunicode_valuesÚerrr$r$r%rFós  zParser.parse_unicode_values_cCs0|jdƒ|j}tj|jƒ|d�}|jdƒ|S)NrL)rAZEND_ENUM)rDr9rÚEnumrs)r"rArNr$r$r%rMþs   zParser.parse_enum_cCsìg}|j}xØ|jdkrâ|jdkr4|jƒ}|j|ƒq |jdkrf|jdƒ|jƒ}|jtj||d�ƒq |jdkrš|jdƒ|jƒ}|jtj|||d�ƒq |jdkr |jdƒ|jƒ}|jdƒ|jƒ}|jtj ||||d�ƒq Wt |ƒS)Nr“ÚGROUPÚRANGErL)rArŒ)r“r¨r©rL) r9rrMr5rDrCrZ GlyphNameZ GroupNameZRanger)r"rtrArNr(ÚstartÚendr$r$r%rss*          zParser.parse_coverage_cCs |jj|ƒS)N)rrH)r"Z group_namer$r$r%Ú resolve_groupszParser.resolve_groupcCs|jj||ƒS)N)rÚrange)r"rªr«r$r$r%Ú glyph_rangeszParser.glyph_rangecCs(|j}|j}|jƒ}tj|||d�}|S)N)rA)r9r2rErÚSettingDefinition)r"rAZ ppem_nameÚvalueÚsettingr$r$r%r "s zParser.parse_ppem_cCs$|j}|j}d}tj|||d�}|S)NT)rA)r9r2rr¯)r"rAr(r°r±r$r$r%r )s zParser.parse_noarg_option_cCs6|j}|j}|jƒ|jƒ|jƒf}tj|||d�}|S)N)rA)r9r2rErr¯)r"rAr(r°r±r$r$r%r 0s   zParser.parse_cmap_formatcCs|jtjko|j|kS)N)Úcur_token_type_rrOr2)r"Úkr$r$r%r68szParser.is_cur_keyword_cCs&|jƒ|jtjk r td|jƒ‚|jS)NzExpected a string)r!r²rrfrr9r2)r"r$r$r%rC;s  zParser.expect_string_cCs8|jƒ|jtjkr$|j|kr$|jStd||jƒ‚dS)Nz Expected "%s")r!r²rrOr2rr9)r"Úkeywordr$r$r%rDAs zParser.expect_keyword_cCs*|jƒ|jtjkr|jStd|jƒ‚dS)NzExpected a name)r!r²rrOr2rr9)r"r$r$r%rGHs zParser.expect_name_cCs&|jƒ|jtjk r td|jƒ‚|jS)NzExpected a number)r!r²rÚNUMBERrr9r2)r"r$r$r%rENs  zParser.expect_number_c Csj|j|j|j|_|_|_y(|jdƒr,t‚|jj ƒ\|_|_|_Wn tk rdd\|_|_YnXdS)Nr0)NN) rrrr²r2r9r6Ú StopIterationr,Únext)r"r$r$r%r!Ts zParser.advance_lexer_N)$Ú__name__Ú __module__Ú __qualname__r&r r;rrrrSrXrrhrirjr‡rˆr‰rŠr r›r‘rFrMrsr¬r®r r r r6rCrDrGrEr!r$r$r$r%rsB  '#M&#  rc@s6eZdZdd„Zdd„Zdd„Zdd„Zd d d „Zd S)rcCs ig|_dS)N)Úscopes_)r"r$r$r%r&aszSymbolTable.__init__cCs|jjiƒdS)N)r»r5)r"r$r$r%rRdszSymbolTable.enter_scopecCs|jjƒdS)N)r»Úpop)r"r$r$r%rUgszSymbolTable.exit_scopecCs||jd|<dS)Nr{éÿÿÿÿ)r»)r"r(Úitemr$r$r%rIjszSymbolTable.defineTcCsTx$t|jƒD]}|j|ƒ}|r |Sq W|rPx$|D]}|jƒ|jƒkr0||Sq0WdS)N)Úreversedr»ÚgetÚlower)r"r(Úcase_insensitiveÚscoper¾Úkeyr$r$r%rHms   zSymbolTable.resolveN)T)r¸r¹rºr&rRrUrIrHr$r$r$r%r`s rc@s.eZdZdd„Zdd„Zd dd„Zdd „Zd S) rcCs ig|_dS)N)r»)r"r$r$r%r&zszOrderedSymbolTable.__init__cCs|jjiƒdS)N)r»r5)r"r$r$r%rR}szOrderedSymbolTable.enter_scopeFcCstj|||d�dS)N)rÂ)rrH)r"r(rÂr$r$r%rH€szOrderedSymbolTable.resolvecCsdx^t|jƒD]P}||kr ||kr t|jƒƒj|ƒ}t|jƒƒj|ƒ}t|jƒƒ||d…Sq WdS)Nr{)r¿r»Úlistr4Úindex)r"rªr«rÃZ start_idxZend_idxr$r$r%r­ƒs zOrderedSymbolTable.rangeN)F)r¸r¹rºr&rRrHr­r$r$r$r%rys r)ZfontTools.voltLib.astZvoltLibrZfontTools.voltLib.lexerrZfontTools.voltLib.errorrÚiorr3Úobjectrrrr$r$r$r%Ús,    N