
36ic           @   s   d  d l  Z  d  d l Z d  d l Z d e j k Z d e j f d     YZ e   Z d e f d     YZ d e
 e d  Z d S(   iNt   RENPY_UPDATE_TRANSLATIONSt	   Formatterc           B   s    e  Z d  Z d   Z d   Z RS(   s   
    A string formatter that uses Ren'Py's formatting rules. Ren'Py uses
    square brackets to introduce formatting, and it supports a q conversion
    that quotes the text being shown to the user.
    c         c   s  d } d } d } d } d } d } d } d }	 d }
 d } | } x9| D]1} | | k r | d k rs | } qI qz| | 7} qI qI | | k r | d k r | | 7} | } qI qz| }	 | } d } qI qI | | k r| d k r | d 7} |	 | 7}	 qI qz| d k r\| r'| d 8} |	 | 7}	 qI q| |	 |
 | f V| } d } d }	 d }
 d } qI qz| d	 k rt| } qI qz| d
 k r| } d } qI qz|	 | 7}	 qI qI | | k r| d k r| |	 |
 | f V| } d } d }	 d }
 d } qI qz| d
 k r| } d } qI qz|
 | 7}
 qI qI | | k rI | d k rj| |	 |
 | f V| } d } d }	 d }
 d } qI qz| | 7} qI qI qI W| | k rt d j |    n  | r| d d d f Vn  d S(   s   
        Parses s according to Ren'Py string formatting rules. Returns a list
        of (literal_text, field_name, format, replacement) tuples, just like
        the method we're overriding.
        i    i   i   i   i   t    t   [t   ]t   :t   !s0   String {0!r} ends with an open format operation.N(   t   Nonet	   Exceptiont   format(   t   selft   st   LITERALt   OPEN_BRACKETt   VALUEt   FORMATt
   CONVERSIONt   bracket_deptht   literalt   valueR	   t
   conversiont   statet   c(    (    sb   Z:\home\souce\.local\share\Steam\steamapps\common\Doki Doki Literature Club\renpy\substitutions.pyt   parse'   s    









c         C   s   | s
 | Sd | k r% t  |  } n d | k r@ t |  } n  d | k ra t j j |  } n  d | k r | j d d  } n  | S(   Nt   rR   t   tt   qt   {s   {{(   t   reprt   strt   renpyt   translationt   translate_stringt   replace(   R
   R   R   (    (    sb   Z:\home\souce\.local\share\Steam\steamapps\common\Doki Doki Literature Club\renpy\substitutions.pyt   convert_field   s    (   t   __name__t
   __module__t   __doc__R   R"   (    (    (    sb   Z:\home\souce\.local\share\Steam\steamapps\common\Doki Doki Literature Club\renpy\substitutions.pyR       s   	{t   MultipleDictc           B   s   e  Z d    Z d   Z RS(   c         G   s   | |  _  d  S(   N(   t   dicts(   R
   R'   (    (    sb   Z:\home\souce\.local\share\Steam\steamapps\common\Doki Doki Literature Club\renpy\substitutions.pyt   __init__   s    c         C   sA   x% |  j  D] } | | k r
 | | Sq
 Wt d j |    d  S(   Ns   Name '{}' is not defined.(   R'   t	   NameErrorR	   (   R
   t   keyt   d(    (    sb   Z:\home\souce\.local\share\Steam\steamapps\common\Doki Doki Literature Club\renpy\substitutions.pyt   __getitem__   s    (   R#   R$   R(   R,   (    (    (    sb   Z:\home\souce\.local\share\Steam\steamapps\common\Doki Doki Literature Club\renpy\substitutions.pyR&      s   	c         C   s   | r t  j j |   }  n  t  j j r9 | r9 |  t f Sd |  k rO |  t f S|  } | d k	 ry t | t  j j	  } n t  j j	 } t
 j |  d |  }  |  |  | k f S(   s  
    Performs translation and formatting on `s`, as necessary.

    `scope`
        The scope which is used in formatting, in addition to the default
        store.

    `force`
        Force substitution to occur, even if it's disabled in the config.

    `translate`
        Determines if translation occurs.

    Returns the substituted string, and a flag that is True if substitution
    occurred, or False if no substitution occurred.
    R   N(    (   R   R   R    t   configt   new_substitutionst   FalseR   R&   t   storet   __dict__t	   formattert   vformat(   R   t   scopet   forcet	   translatet   old_st   kwargs(    (    sb   Z:\home\souce\.local\share\Steam\steamapps\common\Doki Doki Literature Club\renpy\substitutions.pyt
   substitute   s    

(   R   t   stringt   ost   environt   update_translationsR   R2   t   objectR&   R   R/   t   TrueR9   (    (    (    sb   Z:\home\souce\.local\share\Steam\steamapps\common\Doki Doki Literature Club\renpy\substitutions.pyt   <module>   s   	