ó ÿgdSc@sdZddlZddlmZejdƒZejdƒZejdƒZejdƒZejdƒZ id d 6d d 6d d6dd6dd6dd6dd6Z ejdƒZ d„Z d„Z edjƒƒZed„Zd„Zd„Zd„ZdS(s& sphinx.util.jsdump ~~~~~~~~~~~~~~~~~~ This module implements a simple JavaScript serializer. Uses the basestring encode function from simplejson by Bob Ippolito. :copyright: Copyright 2007-2014 by the Sphinx team, see AUTHORS. :license: BSD, see LICENSE for details. iÿÿÿÿN(tus"(\\\\|\\"|[^"])*"s\d+s [a-zA-Z]\w*s [a-zA-Z]\w*$s([\\"]|[^\ -~])s\\s\s\"t"s\bss\fs s\ns s\rs s\ts s \\u.{4}|\\.cCs'd„}dttj||ƒƒdS(NcSsŽ|jdƒ}y t|SWnltk r‰t|ƒ}|dkrNd|fS|d8}d|d?d@B}d|d@B}d||fSnXdS( Niis\u%04xiØi iÿiÜs \u%04x\u%04x(tgroupt ESCAPE_DICTtKeyErrortord(tmatchtstnts1ts2((s</usr/local/lib/python2.7/site-packages/sphinx/util/jsdump.pytreplace&s      R(tstrt ESCAPE_ASCIItsub(RR ((s</usr/local/lib/python2.7/site-packages/sphinx/util/jsdump.pyt encode_string%s cCstjd„|ƒS(NcSsttd|jƒdƒS(NR(tevalRR(tm((s</usr/local/lib/python2.7/site-packages/sphinx/util/jsdump.pyt7s(tESCAPEDR(R((s</usr/local/lib/python2.7/site-packages/sphinx/util/jsdump.pyt decode_string6ssÝabstract else instanceof switch boolean enum int synchronized break export interface this byte extends long throw case false native throws catch final new transient char finally null true class float package try const for private typeof continue function protected var debugger goto public void default if return volatile delete implements short while do import static with double in supercCs<|rPt|tƒs$t|ƒ}ntj|ƒrC|tkrC|St|ƒSn|dkr`dS|tksx|t krˆ|r„dp‡dSt|t t t fƒrªt|ƒSt|t ƒrÚddjd„|jƒDƒƒSt|tttfƒr ddjd„|DƒƒSt|tƒr&t|ƒStt|ƒƒ‚dS( Ntnullttruetfalses{%s}t,css4|]*\}}dt|tƒt|ƒfVqdS(s%s:%sN(tdumpstTrue(t.0tkeytvalue((s</usr/local/lib/python2.7/site-packages/sphinx/util/jsdump.pys Zss[%s]css|]}t|ƒVqdS(N(R(Rtx((s</usr/local/lib/python2.7/site-packages/sphinx/util/jsdump.pys _s(t isinstancet basestringR t _nameonly_reRtreswordsRtNoneRtFalsetinttlongtfloattdicttjoint iteritemsttupletlisttsett TypeErrorttype(tobjR((s</usr/local/lib/python2.7/site-packages/sphinx/util/jsdump.pyRKs(    cCs|jt|ƒƒdS(N(twriteR(R0tf((s</usr/local/lib/python2.7/site-packages/sphinx/util/jsdump.pytdumpdsc Csƒtƒ}d}t|ƒ}g}|}t}g}x.||krc||}|dkr‹i}|j|ƒt}|j|ƒ|d7}q6|dkrÊg}|j|ƒt}|j|ƒ|d7}q6|dkrŠ|r|d|k rûtdƒ‚nt}n|jƒ} |jƒ|r||d}t|tƒrl|d|kr[td| ƒ‚n| ||dR!R RRRRR-tsplitR"R$RR3RGRI(((s</usr/local/lib/python2.7/site-packages/sphinx/util/jsdump.pyt s0       Z