File: //lib/python3/dist-packages/sphinx/util/__pycache__/jsdump.cpython-310.pyc
o
�$�a� � @ s d Z ddlZddlmZmZmZmZmZmZ e� d�Z
e� d�Ze� d�Ze� d�Z
e� d�Zd d
ddd
ddd�Ze� d�Zdedefdd�Zdedefdd�Zed�� �Zd&dededefdd�Zdededdfdd �Zd!edefd"d#�Zdedefd$d%�ZdS )'a&
sphinx.util.jsdump
~~~~~~~~~~~~~~~~~~
This module implements a simple JavaScript serializer.
Uses the basestring encode function from simplejson by Bob Ippolito.
:copyright: Copyright 2007-2021 by the Sphinx team, see AUTHORS.
:license: BSD, see LICENSE for details.
� N)�IO�Any�Dict�List�Match�Unionz"(\\\\|\\"|[^"])*"z\d+z[a-zA-Z_]\w*z[a-zA-Z_][a-zA-Z0-9_]*$z([\\"]|[^\ -~])z\\z\"z\bz\fz\nz\rz\t)�\�"���
�
� z\\u.{4}|\\.�s�returnc C s* dt dtfdd�}dtt�|| �� d S )N�matchr c S sv | � d�}zt| W S ty: t|�}|dk r d|f Y S |d8 }d|d? d@ B }d|d@ B }d||f Y S w ) Nr i z\u%04xi � �
i� i � z\u%04x\u%04x)�group�ESCAPE_DICT�KeyError�ord)r r �n�s1�s2� r �4/usr/lib/python3/dist-packages/sphinx/util/jsdump.py�replace$ s
�zencode_string.<locals>.replacer )r �str�ESCAPE_ASCII�sub)r r r r r �
encode_string# s r c C s t �dd� | �S )Nc S s t d| �� d �S )Nr )�evalr )�mr r r �<lambda>6 s zdecode_string.<locals>.<lambda>)�ESCAPEDr )r r r r �
decode_string5 s r% a� 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 superF�obj�keyc C s |rt | t�st| �} t�| �r| tvr| S t| �S | d u r dS | du s(| du r.| r,dS dS t | ttf�r9t| �S t | t�rNdd� t
dd � | �� D ��� S t | t�rad
d� t
dd � | D ��� S t | t
tf�rtd
d� dd � | D �� S t | t�r}t| �S tt| ���)
N�nullTF�true�falsez{%s}�,c s s* � | ]\}}d t |d�t |�f V qdS )z%s:%sTN��dumps)�.0r'