509318396
Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­
<!DOCTYPE html>
<html>
3
H¶ÜX¹  ã            ,   @   sÒ  d Z ddlmZ ddlZddlmZ eddddd	d
dddddddddddddddddddddd d!d"d#d$d%d&d'd(d)d*d+d,d-d.d/g+ed0d1�Zd2d3d4d5d6d7œZ	ej
d8ejƒZej
d9ejƒZej
d:ƒZej
d;ejƒZej
d<ƒZej
d=ej ƒZej
d>ƒZed?d@ƒZdej
dAejƒfdej
dBƒfdCej
dDƒfdEej
dFejejB ƒfdGefdHefdIej
dJejƒfdKej
dLejƒfdMej
dNdjeejeƒƒ ƒfdOej
dPejƒfdQej
dRejejB ƒfgZdSdT„ ZdUdV„ ZdWdX„ Zd[dYdZ„ZdS )\zè
    babel.messages.jslexer
    ~~~~~~~~~~~~~~~~~~~~~~

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

    :copyright: (c) 2013 by the Babel Team.
    :license: BSD, see LICENSE for more details.
é    )Ú
namedtupleN)Úunichrú+ú-Ú*ú%z!=z==ú<ú>z<=z>=ú=z+=z-=z*=z%=z<<z>>z>>>z<<=z>>=z>>>=ú&z&=ú|z|=z&&z||ú^z^=ú(ú)ú[ú]ú{ú}ú!z--z++ú~ú,ú;Ú.ú:T)ÚkeyÚreverseúúÚ
úú	)ÚbÚfÚnÚrÚtz[\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}ÚTokenztype value linenoz\s+z<!--.*Zlinecommentz//.*Zmultilinecommentz	/\*.*?\*/Údotted_nameÚnameÚnumberzb(
        (?:0|[1-9]\d*)
        (\.\d+)?
        ([eE][-+]?\d+)? |
        (0x[a-fA-F0-9]+)
    )Zjsx_tagz(?:</?[^>\s]+|/>)Úoperatorz(%s)Útemplate_stringz`(?:[^`\\]*(?:\\.[^`\\]*)*)`ÚstringzT(
        '(?:[^'\\]*(?:\\.[^'\\]*)*)'  |
        "(?:[^"\\]*(?:\\.[^"\\]*)*)"
    )c             C   s^   g }xTt D ]L\}}|  r&|r&d|kr&q
| r6|dkr6q
|dkrH|sDq
d}|j||fƒ q
W |S )ze
    Get a tokenization rule list given the passed syntax options.

    Internal to this module.
    Újsxr+   r'   r(   )Ú_rulesÚappend)r-   Údottedr+   ÚrulesÚ
token_typeÚrule© r4   ú/usr/lib/python3.6/jslexer.pyÚ	get_rules:   s    r6   c             C   s   | j dkr| jdkS | j dk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,   Úregexp)r   r   r   r7   r8   )r(   r)   r,   r9   )ÚtypeÚvalue)Útokenr4   r4   r5   Úindicates_divisionN   s    

r=   c             C   sb  | r | d | d kr | d dks(t dƒ‚tjd| dd… ƒ} g }|j}d}xî| jd|ƒ}|dk rbP || ||… ƒ | |d  }|tkr”|t| ƒ nš|dk�r&tj| |d ƒ}|d	k	�r|jƒ }t	|ƒd
k�ry|t
t|dƒƒƒ W n tk
rø   Y nX |d }qL||| ƒ |jƒ }qLn||ƒ n||ƒ |d }qLW |t	| ƒk �rX|| |d	… ƒ dj|ƒS )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ú\ZuUé   Né   é   é   Ú éÿÿÿÿrE   )ÚAssertionErrorÚline_join_reÚsubr/   ÚfindÚescapesÚuni_escape_reÚmatchÚgroupÚlenr   ÚintÚ
ValueErrorÚendÚjoin)r,   ÚresultÚaddÚposZ
escape_posZ	next_charZescapedZescaped_valuer4   r4   r5   Úunquote_stringW   sD    "


rV   c             c   sØ   d}d}d}t | ƒ}t|||d�}x°||k rÒx^|D ]\}	}
|
j| |ƒ}|dk	r2P q2W |rjtj| |ƒ}d}	ntj| |ƒ}d}	|dkrŒ|d7 }q$|jƒ }|	dk	r¶t|	||ƒ}t|ƒ}|V  |t tj	|ƒƒ7 }|j
ƒ }q$W dS )zì
    Tokenize JavaScript/JSX source.  Returns a generator of tokens.

    :param jsx: Enable (limited) JSX parsing.
    :param dotted: Read dotted names as single name token.
    :param template_string: Support ES6 template strings
    Fr   r>   )r-   r0   r+   Nr*   r9   )rN   r6   rL   Údivision_reÚregex_rerM   r&   r=   Úline_reÚfindallrQ   )Úsourcer-   r0   r+   Z
may_dividerU   ÚlinenorQ   r1   r2   r3   rL   Ztoken_valuer<   r4   r4   r5   Útokenize�   s2    
r]   )TTT) Ú__doc__Úcollectionsr   ÚreZbabel._compatr   ÚsortedrN   Z	operatorsrJ   ÚcompileÚUNICODEZname_reZdotted_name_rerW   ÚDOTALLrX   rY   ÚpatternrG   rK   r&   ÚVERBOSEÚIrR   ÚmapÚescaper.   r6   r=   rV   r]   r4   r4   r4   r5   Ú<module>   sF   





	8