Viewing File: /usr/lib/python2.7/site-packages/babel/messages/jslexer.pyc

ó
™‚Mc+@sdZddlZddlmZdddddd	d
ddd
ddddddddddddddddddd d!d"d#d$d%d&d'd(d)d*d+d,d-d.g+Zejd/„ƒid0d16d2d36d4d56d6d76d8d96Zdejd:ƒfdejd;ƒfd<ejd=ƒfd>ejd?ƒfd@ejdAƒfdBejdCƒfdDejdEdj	e
ejeƒƒƒfdFejdGƒfgZejdHƒZ
ejdIƒZejdJƒZejdKejƒZejdLƒZdMefdN„ƒYZdO„ZdP„ZdQ„ZdS(RsJA simple JavaScript 1.5 lexer which is used for the JavaScript
extractor.
iÿÿÿÿN(t
itemgettert+t-t*t%s!=s==t<t>s<=s>=t=s+=s-=s*=s%=s<<s>>s>>>s<<=s>>=s>>>=t&s&=t|s|=s&&s||t^s^=t(t)t[t]t{t}t!s--s++t~t,t;t.t:cCstt|ƒt|ƒƒS(N(tcmptlen(tatb((s:/usr/lib/python2.7/site-packages/babel/messages/jslexer.pyt<lambda>ssRstfs
tns
trs	tts\s+(?u)s<!--.*tlinecomments//.*tmultilinecomments/\*.*?\*/(?us)tnames(\$+\w*|[^\W\d]\w*)(?u)tnumbersf(?x)(
        (?:0|[1-9]\d*)
        (\.\d+)?
        ([eE][-+]?\d+)? |
        (0x[a-fA-F0-9]+)
    )toperators(%s)tstringsY(?xs)(
        '(?:[^'\\]*(?:\\.[^'\\]*)*)'  |
        "(?:[^"\\]*(?:\\.[^"\\]*)*)"
    )s/=?s)/(?:[^/\\]*(?:\\.[^/\\]*)*)/[a-zA-Z]*(?s)s(\r\n|\n|\r)s\\s[a-fA-F0-9]{1,4}tTokencBsSeZdZdZd„ZeedƒƒZeedƒƒZeedƒƒZ	RS(s-Represents a token as returned by `tokenize`.cCstj||||fƒS(N(ttuplet__new__(tclsttypetvaluetlineno((s:/usr/lib/python2.7/site-packages/babel/messages/jslexer.pyR(?siii((
t__name__t
__module__t__doc__t	__slots__R(tpropertyRR*R+R,(((s:/usr/lib/python2.7/site-packages/babel/messages/jslexer.pyR&;s	cCs)|jdkr|jdkS|jdkS(
szA helper function that helps the tokenizer to decide if the current
    token may be followed by a division operator.
    R$RRRs++s--R"R#R%tregexp(RRRs++s--(snameR#sstringR2(R*R+(ttoken((s:/usr/lib/python2.7/site-packages/babel/messages/jslexer.pytindicates_divisionGs
cCsÆ|r*|d|dkr*|ddks6tdƒ‚tjd|dd!ƒ}g}|j}d}x/|jd|ƒ}|dkr‰Pn||||!ƒ||d}|tkrÅ|t|ƒnÄ|dkrtj||d	ƒ}|dk	rr|j	ƒ}t
|ƒd
krRy|tt|dƒƒƒWnt
k
rAqRX|d}qgn|||ƒ|jƒ}qgq‰||ƒn
||ƒ|d	}qg|t
|ƒkr¹|||ƒnd
j|ƒS(s‰Unquote a string with JavaScript rules.  The string has to start with
    string delimiters (``'`` or ``"``.)

    :return: a string
    iiÿÿÿÿs"'s)string provided is not properly delimiteds\1is\tuUiiiiuN(tAssertionErrortline_join_retsubtappendtfindtescapest
uni_escape_retmatchtNonetgroupRtunichrtintt
ValueErrortendtjoin(R%tresulttaddtpost
escape_post	next_chartescapedt
escaped_value((s:/usr/lib/python2.7/site-packages/babel/messages/jslexer.pytunquote_stringPsD-		




c
cs&t}d}d}t|ƒ}x||kr!x‹tD].\}}|j||ƒ}|dk	r4Pq4q4W|r‡tj||ƒ}d}ntj||ƒ}d}|dkr»|d7}q!n|jƒ}|dk	rùt|||ƒ}	t	|	ƒ}|	Vn|tt
j|ƒƒ7}|jƒ}q!WdS(sGTokenize a JavaScript source.

    :return: generator of `Token`\s
    iiR$R2N(
tFalseRtrulesR=R>tdivision_retregex_reR?R&R4tline_retfindallRC(
tsourcet
may_divideRGR,RCt
token_typetruleR=ttoken_valueR3((s:/usr/lib/python2.7/site-packages/babel/messages/jslexer.pyttokenizeŠs0	
(R/tret
babel.utilRt	operatorstsortR;R>tcompileRDtmaptescapeRNRORPRQtpatternR7R<R'R&R4RLRX(((s:/usr/lib/python2.7/site-packages/babel/messages/jslexer.pyt<module>s6!!*)		+				:
Back to Directory File Manager