U e5dñdã@sDdZdZddlmZddlmZmZddlZddl m Z ddl Z ddl Z ddlZddlTddlmZe  d e j¡Ze  d e j¡ZddlZejd d d ddgZ[Gdd„de dd¡ƒZdd„Zdd„Zdd„ZdZdZeedeƒeeƒZdZdZdZ dZ!dZ"eee e!e"ƒZ#d Z$ed!d"ƒee$ƒZ%d#e$Z&ee%e&ƒZ'ed$e'd%ƒZ(ee(e'e#ƒZ)d&d'„Z*d(d)„Z+ee*ƒŽZ,d*Z-d+Z.d,Z/d-Z0ee,d.e,d/ƒZ1ee,d0e,d1ƒZ2ee3e j4e5ed2d3�ƒŽZ6ed4e6ƒZ7ee)e7e2eƒZ8ee8Z9ee,d5ed6dƒe,d7ed8dƒƒZ:ed9ee1ƒZ;eee;e)e7e:eƒZe-e=e>d6<e.e=e>d8<e/e=e>d.<e0e=e>d/<�q(e?ƒZ@e?ƒZAe*ƒD]JZBeBd8eBd6fD]ZCe@ DeC¡�q†eBd/eBd.fD]ZCeA DeC¡�q¨�qrd:ZEGd;d<„d„d>eFƒZHGd?d@„d@ƒZIdAd„ZJdBdC„ZKdDd „ZLdEdF„ZdGd „ZMdHdI„ZNdJd „ZOdKdL„ZPeQdMk�r@ePƒdS)NzKa-Ping Yee zpGvR, ESR, Tim Peters, Thomas Wouters, Fred Drake, Skip Montanaro, Raymond Hettinger, Trent Nelson, Michael Foordé)Úopen)ÚlookupÚBOM_UTF8N)Ú TextIOWrapper)Ú*)ÚEXACT_TOKEN_TYPESz&^[ \t\f]*#.*?coding[:=][ \t]*([-\w.]+)s^[ \t\f]*(?:[#\r\n]|$)ÚtokenizeÚgenerate_tokensÚdetect_encodingÚ untokenizeÚ TokenInfoc@s eZdZdd„Zedd„ƒZdS)r cCs$d|jt|jf}d|j|d�S)Nz%d (%s)z8TokenInfo(type=%s, string=%r, start=%r, end=%r, line=%r))Útype)r Útok_nameÚ_replace)ÚselfÚannotated_type©rú /usr/lib64/python3.8/tokenize.pyÚ__repr__.s ÿzTokenInfo.__repr__cCs(|jtkr|jtkrt|jS|jSdS©N)r ÚOPÚstringr©rrrrÚ exact_type3s zTokenInfo.exact_typeN)Ú__name__Ú __module__Ú __qualname__rÚpropertyrrrrrr -sztype string start end linecGsdd |¡dS)Nú(ú|ú))Újoin©ÚchoicesrrrÚgroup:ór$cGs t|ŽdS)Nr©r$r"rrrÚany;r%r'cGs t|ŽdS)Nú?r&r"rrrÚmaybe<r%r)z[ \f\t]*z #[^\r\n]*z\\\r?\nz\w+z0[xX](?:_?[0-9a-fA-F])+z0[bB](?:_?[01])+z0[oO](?:_?[0-7])+z(?:0(?:_?0)*|[1-9](?:_?[0-9])*)z[eE][-+]?[0-9](?:_?[0-9])*z)[0-9](?:_?[0-9])*\.(?:[0-9](?:_?[0-9])*)?z\.[0-9](?:_?[0-9])*z[0-9](?:_?[0-9])*z[0-9](?:_?[0-9])*[jJ]z[jJ]cCs^ddddddg}dh}|D]>}t |¡D].}tjdd „|DƒŽD]}| d |¡¡q@q(q|S) NÚbÚrÚuÚfÚbrÚfrÚcSsg|]}|| ¡f‘qSr)Úupper)Ú.0ÚcrrrÚ ^sz(_all_string_prefixes..)Ú _itertoolsÚ permutationsÚproductÚaddr!)Ú_valid_string_prefixesÚresultÚprefixÚtr,rrrÚ_all_string_prefixesSsr=cCst |tj¡Sr)ÚreÚcompileÚUNICODE)ÚexprrrrÚ_compilebsrBz[^'\\]*(?:\\.[^'\\]*)*'z[^"\\]*(?:\\.[^"\\]*)*"z%[^'\\]*(?:(?:\\.|'(?!''))[^'\\]*)*'''z%[^"\\]*(?:(?:\\.|"(?!""))[^"\\]*)*"""z'''z"""z'[^\n'\\]*(?:\\.[^\n'\\]*)*'z"[^\n"\\]*(?:\\.[^\n"\\]*)*"T)Úreversez\r?\nz'[^\n'\\]*(?:\\.[^\n'\\]*)*ú'z"[^\n"\\]*(?:\\.[^\n"\\]*)*ú"z \\\r?\n|\Zéc@s eZdZdS)Ú TokenErrorN©rrrrrrrrG�srGc@s eZdZdS)ÚStopTokenizingNrHrrrrrIŸsrIc@s,eZdZdd„Zdd„Zdd„Zdd„Zd S) Ú UntokenizercCsg|_d|_d|_d|_dS)Nér)ÚtokensÚprev_rowÚprev_colÚencodingrrrrÚ__init__¤szUntokenizer.__init__cCs„|\}}||jks&||jkr>||jkr>td |||j|j¡ƒ‚||j}|rb|j d|¡d|_||j}|r€|j d|¡dS)Nz+start ({},{}) precedes previous end ({},{})ú\ rú )rMrNÚ ValueErrorÚformatrLÚappend)rÚstartÚrowÚcolÚ row_offsetÚ col_offsetrrrÚadd_whitespaceªsÿ  zUntokenizer.add_whitespacec Cs6t|ƒ}g}d}|D�]}t|ƒdkr8| ||¡�q*|\}}}} } |tkrV||_q|tkrd�q*|tkrz| |¡qnl|tkrš|  ¡| \|_ |_ qnL|t t fkr¬d}n:|ræ|ræ|d} |dt| ƒkrâ|j | ¡t| ƒ|_ d}| |¡|j |¡| \|_ |_ |t t fkr|j d7_ d|_ qd |j¡S)NFéTéÿÿÿÿrKrr0)ÚiterÚlenÚcompatÚENCODINGrOÚ ENDMARKERÚINDENTrUÚDEDENTÚpoprMrNÚNEWLINEÚNLrLr[r!) rÚiterableÚitÚindentsÚ startliner<Útok_typeÚtokenrVÚendÚlineÚindentrrrr ·sF            zUntokenizer.untokenizec Csæg}|jj}|dttfk}d}t |g|¡D]²}|dd…\}} |tkrR| |_q.|tt fkrf| d7} |t kr€|rzd| } d}nd}|t krš| | ¡q.n>|t kr®|  ¡q.n*|ttfkrÀd}n|rØ|rØ||dƒd}|| ƒq.dS)NrFr\rRTr])rLrUrfrgr5ÚchainrarOÚNAMEÚNUMBERÚSTRINGrcrdre) rrmrhrjÚ toks_appendrkÚ prevstringÚtokÚtoknumÚtokvalrrrr`Üs8    zUntokenizer.compatN)rrrrPr[r r`rrrrrJ¢s %rJcCs*tƒ}| |¡}|jdk r&| |j¡}|Sr)rJr rOÚencode)rhÚutÚoutrrrr s    cCsH|dd… ¡ dd¡}|dks*| d¡r.dS|dks@| d¡rDdS|S) Né Ú_ú-úutf-8zutf-8-)zlatin-1ú iso-8859-1z iso-latin-1)zlatin-1-z iso-8859-1-z iso-latin-1-r�)ÚlowerÚreplaceÚ startswith)Úorig_encÚencrrrÚ_get_normal_namesÿr‡csÞz ˆjj‰Wntk r$d‰YnXd‰d}d}‡fdd„}‡‡fdd„}|ƒ}| t¡rpd‰|dd…}d }|s||gfS||ƒ}|r’||gfSt |¡s¦||gfS|ƒ}|sº||gfS||ƒ}|rÒ|||gfS|||gfS) NFr€cs$zˆƒWStk rYdSXdS©Nr%)Ú StopIterationr©ÚreadlinerrÚ read_or_stop?sz%detect_encoding..read_or_stopcsäz| d¡}Wn4tk rBd}ˆdk r6d |ˆ¡}t|ƒ‚YnXt |¡}|sVdSt| d¡ƒ}z t|ƒ}Wn:t k rªˆdkr’d|}n d ˆ|¡}t|ƒ‚YnXˆrà|dkr؈dkrÆd}n d ˆ¡}t|ƒ‚|d 7}|S) Nr€z'invalid or missing encoding declarationz {} for {!r}rKzunknown encoding: zunknown encoding for {!r}: {}zencoding problem: utf-8z encoding problem for {!r}: utf-8z-sig) ÚdecodeÚUnicodeDecodeErrorrTÚ SyntaxErrorÚ cookie_reÚmatchr‡r$rÚ LookupError)roÚ line_stringÚmsgr‘rOÚcodec)Ú bom_foundÚfilenamerrÚ find_cookieEs8    ÿ z$detect_encoding..find_cookieTéú utf-8-sig)Ú__self__ÚnameÚAttributeErrorr„rÚblank_rer‘)r‹rOÚdefaultrŒr˜ÚfirstÚsecondr)r–r—r‹rr 's8   &       cCsXt|dƒ}z2t|jƒ\}}| d¡t||dd�}d|_|WS| ¡‚YnXdS)NÚrbrT)Úline_bufferingr+)Ú _builtin_openr r‹ÚseekrÚmodeÚclose)r—ÚbufferrOÚlinesÚtextrrrr„s  rcCs6t|ƒ\}}t d¡}t |t|dƒ|¡}t|j|ƒSrˆ)r r5Úrepeatrqr^Ú _tokenizeÚ__next__)r‹rOÚconsumedÚemptyÚrl_genrrrr”s  ccsld}}}d}d\}}d}dg} |dk rH|dkr6d}tt|dddƒVd} d} z| } |ƒ} Wntk rvd} YnX|dk rŠ|  |¡} |d 7}dt| ƒ} } |�rp| s´td |ƒ‚| | ¡}|�r| d¡} }tt|| d|…|||f|| ƒVd\}}d}nf|�rZ| d d…d k�rZ| d d…dk�rZtt || ||t| ƒf|ƒVd}d}qPn|| }|| }qP�n¾|dk�r|�s| �sŠ�qÞd}| | k�rô| | dk�r°|d 7}n8| | dk�rÐ|t d t }n| | dk�rôd}n�qô| d 7} �qŽ| | k�r�qÞ| | dk�r†| | dk�r^| | d…  d¡}tt ||| f|| t|ƒf| ƒV| t|ƒ7} tt | | d…|| f|t| ƒf| ƒVqP|| dk�rÀ|  |¡tt| d| …|df|| f| ƒV|| dk�r.|| k�rêtdd|| | fƒ‚| dd…} ttd|| f|| f| ƒV�qÀn| �s*td|dfƒ‚d}| | krPttƒ | | ¡}|�r®| d ¡\}}||f||f|}}} ||k�r€�q.| ||…| |}}||k�s¾|dk�rÔ|dk�rÔ|dk�rÔtt|||| ƒV�qØ|dk�r|dk�rütt |||| ƒVntt|||| ƒV�qØ|dk�r2tt |||| ƒV�qØ|tk�r¦tt|ƒ}| | | ¡}|�rˆ| d¡} | || …}tt|||| f| ƒVn||f}| |d…}| }qP�qØ|tk�sÔ|dd…tk�sÔ|dd…tk�rF|ddk�r2||f}tt |¡�pt |d ¡�pt |d¡ƒ}| |d…d }}| }qPntt|||| ƒVnf| ¡�rdtt|||| ƒVnH|dk�rtd }n8|dk�rˆ|d 7}n|d k�rš|d 8}tt|||| ƒVn*tt | | || f|| d f| ƒV| d 7} �q.qP| �r | ddk�r ttd|d t| ƒf|d t| ƒd fdƒV| d d…D] }ttd|df|dfdƒV�q,ttd|df|dfdƒVdS)!NrÚ 0123456789)r0rršr€)rrr0r%rKzEOF in multi-line stringéþÿÿÿrQéýÿÿÿz\ rRú ú z# ú#z r]z3unindent does not match any outer indentation levelz zEOF in multi-line statementÚ.z...r\r™Ú ú\z([{z)]})r rar‰r�r_rGr‘rnrtÚ ERRORTOKENÚtabsizeÚrstripÚCOMMENTrgrUrcÚIndentationErrorrdrBÚ PseudoTokenÚspanrsrfÚ triple_quotedÚendpatsÚ single_quotedÚgetÚ isidentifierrrrrb)r‹rOÚlnumÚparenlevÚ continuedÚnumcharsÚcontstrÚneedcontÚcontlinerjÚ last_lineroÚposÚmaxÚstrstartÚendprogÚendmatchrnÚcolumnÚ comment_tokenÚ pseudomatchrVÚsposÚeposrmÚinitialrprrrr¬­s<      ÿ*  ÿ    ÿ  ÿ "  þ    ÿÿÿ          ÿþ ÿ þ       ÿ.r¬cCs t|dƒSr)r¬rŠrrrr dsc s$ddl}dd„‰d‡fdd„ }|jdd�}|jdd d d d �|jd ddddd�| ¡}zŽ|jrŒ|j}t|dƒ�}tt|jƒƒ}W5QRXnd}t t j jdƒ}|D]>}|j }|j r¸|j}d|j|j} td| t||jfƒq¢W�n8tk �r6} z0| jddd…\} } || jd|| | fƒW5d} ~ XYnêtk �r|} z(| jd\} } || jd|| | fƒW5d} ~ XYn¤tk �r¨} z|| |ƒW5d} ~ XYnxtk �rÒ} z || ƒW5d} ~ XYnNtk �rîtdƒYn2tk �r} zˆd| ƒ‚W5d} ~ XYnXdS)NrcSstj |¡tj d¡dS)Nr¸)ÚsysÚstderrÚwrite)ÚmessagerrrÚperrorps zmain..perrorcsR|r"|f||f}ˆd|ƒn"|r8ˆd||fƒn ˆd|ƒt d¡dS)Nz%s:%d:%d: error: %sz %s: error: %sz error: %srK)rÙÚexit)rÜr—ÚlocationÚargs©rÝrrÚerrorts zmain..errorzpython -m tokenize)Úprogr—r(z filename.pyz'the file to tokenize; defaults to stdin)ÚdestÚnargsÚmetavarÚhelpz-ez--exactÚexactÚ store_truez(display token names using the exact type)räÚactionrçr¢zz %d,%d-%d,%d:z%-20s%-15s%-15rrKr™z interrupted zunexpected error: %s)NN)ÚargparseÚArgumentParserÚ add_argumentÚ parse_argsr—r¤Úlistrr‹r¬rÙÚstdinr rèrrVrnÚprintrrr¾ràrGr�ÚOSErrorÚKeyboardInterruptÚ Exception) rërâÚparserràr—r-rLrmÚ token_typeÚ token_rangeÚerrrorÓrrárÚmainlsT þ ÿ ÿ&&  rùÚ__main__)RÚ __author__Ú __credits__Úbuiltinsrr¤ÚcodecsrrÚ collectionsÚiorÚ itertoolsr5r>rÙrmrr?ÚASCIIr�ržÚ__all__Ú namedtupler r$r'r)Ú WhitespaceÚCommentÚIgnoreÚNameÚ HexnumberÚ BinnumberÚ OctnumberÚ DecnumberÚ IntnumberÚExponentÚ PointfloatÚExpfloatÚ FloatnumberÚ ImagnumberÚNumberr=rBÚ StringPrefixÚSingleÚDoubleÚSingle3ÚDouble3ÚTripleÚStringÚmapÚescapeÚsortedÚSpecialÚFunnyÚ PlainTokenÚTokenÚContStrÚ PseudoExtrasr¿rÂÚ_prefixÚsetrÃrÁr<r,r8r»rôrGrIrJr r‡r rr¬r rùrrrrrÚsº    ÿ ÿÿ   ÿ ÿÿþ      _ ]8=