ó
6…6ic           @  sÏ   d  d l  m Z m Z d  d l Z d  d l Z d  d l Z d  d l Z d Z d3 d4 d5 d6 d7 g Z	 d8 d9 d: d; d< d= d> d? d@ dA dB dC dD dE g Z
 d, e f d- „  ƒ  YZ d. „  Z d/ „  Z d0 d1 e d2 „ Z d S(F   iÿÿÿÿ(   t   print_functiont   unicode_literalsNu‹   (?x)
\b__?\s*\(\s*[uU]?(
\"\"\"(?:\\.|\"{1,2}|[^\\"])*?\"\"\"
|'''(?:\\.|\'{1,2}|[^\\'])*?'''
|"(?:\\.|[^\\"])*"
|'(?:\\.|[^\\'])*'
)\s*\)
u
   script.rpyi   u   options.rpyi
   u   gui.rpyi   u   screens.rpyi   u    id   u   launcher.rpyu   _compat/i¤  u   obsolete.rpyu   _layout/iš  u   00layout.rpyi  u   00console.rpyi@  u   developer.rpyu   _developer/i6  u   _errorhandling.rpymiÜ   u	   error.rpyu   00gamepad.rpyiÒ   u   00gltest.rpyiÈ   u   00gallery.rpyi´   u
   common.rpyu   00compat.rpyu   00updater.rpyiª   i    u	   00iap.rpyi–   i2   t   Stringc           B  s    e  Z d  Z d „  Z d „  Z RS(   uH   
    This stores information about a translation string or comment.
    c   	      C  s¾   | |  _  | |  _ | |  _ | |  _ t j j j |  j  ƒ \ |  _ |  _	 |  j	 rZ t
 } n t } x- | D]% \ } } } |  j j | ƒ rg Pqg qg W| |  _ | |  j  |  j f |  _ | |  _ d  S(   N(   t   filenamet   linet   textt   commentt   renpyt   translationt
   generationt   shorten_filenamet   elidedt   commont   COMMON_PRIORITIESt   REGULAR_PRIORITIESt
   startswitht   priorityt   sort_keyt   launcher_file(	   t   selfR   R   R   R   t   plt   prefixR   R   (    (    sl   Z:\home\souce\.local\share\Steam\steamapps\common\Doki Doki Literature Club\renpy\translation\scanstrings.pyt   __init__L   s    				$			c         C  s   d j  d |  ƒ S(   Nu2   <String {self.filename}:{self.line} {self.text!r}>R   (   t   format(   R   (    (    sl   Z:\home\souce\.local\share\Steam\steamapps\common\Doki Doki Literature Club\renpy\translation\scanstrings.pyt   __repr__l   s    (   t   __name__t
   __module__t   __doc__R   R   (    (    (    sl   Z:\home\souce\.local\share\Steam\steamapps\common\Doki Doki Literature Club\renpy\translation\scanstrings.pyR   G   s   	 c         C  sõ   g  } x@ t  j j j j |  D]( \ } } | j t |  | | t ƒ ƒ q Wx¥ t  j j	 |  ƒ D]‘ \ } } } x t
 j t | ƒ D]k } | j d ƒ } | d k	 r~ | j ƒ  } d | } t | ƒ } | ré | j t |  | | t ƒ ƒ qé q~ q~ Wq\ W| S(   uŒ   
    Scans `filename`, a file containing Ren'Py script, for translatable
    strings.

    Returns a list of TranslationString objects.
    i   u   uN(   R   t   gamet   scriptt
   translatort   additional_stringst   appendR   t   Falset   parsert   list_logical_linest   ret   finditert	   STRING_REt   groupt   Nonet   stript   eval(   R   t   rvR   t   st	   _filenamet   linenoR   t   m(    (    sl   Z:\home\souce\.local\share\Steam\steamapps\common\Doki Doki Literature Club\renpy\translation\scanstrings.pyt   scan_stringsp   s    # "
*c         C  s_  g  } |  t  j j k r | Sg  } d } t j |  d d ƒ A } g  | j ƒ  j d d ƒ j d ƒ D] } | j ƒ  ^ qb } Wd  QXxØ t	 | ƒ D]Ê \ } } | s¬ | d } n  t
 j d | ƒ } | rø | j d ƒ }	 | rè |	 j ƒ  }	 n  | j |	 ƒ q | r d	 d
 j | ƒ }
 |
 j d ƒ r2|
 j d ƒ }
 n  g  } | j t |  | |
 t ƒ ƒ q q W| S(   Ni    u   ru   utf-8u   ï»¿u    u   
i   u
   \s*## (.*)u   ## u    u   #u   # (   R   t   configt   translate_commentst   codecst   opent   readt   replacet   splitt   rstript	   enumerateR$   t   matchR'   R)   R    t   joint   endswithR   t   True(   R   R+   R   t   startt   ft   it   linest   lR/   t   cR,   (    (    sl   Z:\home\souce\.local\share\Steam\steamapps\common\Doki Doki Literature Club\renpy\translation\scanstrings.pyt   scan_comments   s.    @#i    i+  c   	      C  s"  t  j j j ƒ  } g  } x^ | D]V } t j j | ƒ } t j j | ƒ sO q n  | j t	 | ƒ ƒ | j t
 | ƒ ƒ q W| j d d „  ƒ g  } t ƒ  } x€ | D]x } | j |  k  r½ q¢ n  | j | k rÒ q¢ n  | rè | j rè q¢ n  | j | k rý q¢ n  | j | j ƒ | j | ƒ q¢ W| S(   uf   
    Scans all files for translatable strings and comments. Returns a list
    of String objects.
    t   keyc         S  s   |  j  S(   N(   R   (   R,   (    (    sl   Z:\home\souce\.local\share\Steam\steamapps\common\Doki Doki Literature Club\renpy\translation\scanstrings.pyt   <lambda>É   s    (   R   R   R	   t   translate_list_filest   ost   patht   normpatht   existst   extendR0   RD   t   sortt   setR   R   R   t   addR    (	   t   min_priorityt   max_priorityt   common_onlyt	   filenamest   stringsR   R+   t   seenR,   (    (    sl   Z:\home\souce\.local\share\Steam\steamapps\common\Doki Doki Literature Club\renpy\translation\scanstrings.pyt   scan¶   s.    	(   u
   script.rpyi   u
   script.rpy(   u   options.rpyi
   u   options.rpy(   u   gui.rpyi   u   gui.rpy(   u   screens.rpyi   u   screens.rpy(   u    id   u   launcher.rpy(   u   _compat/i¤  u   obsolete.rpy(   u   _layout/iš  u   obsolete.rpy(   u   00layout.rpyi  u   obsolete.rpy(   u   00console.rpyi@  u   developer.rpy(   u   _developer/i6  u   developer.rpy(   u   _errorhandling.rpymiÜ   u	   error.rpy(   u   00gamepad.rpyiÒ   u	   error.rpy(   u   00gltest.rpyiÈ   u	   error.rpy(   u   00gallery.rpyi´   u
   common.rpy(   u   00compat.rpyi´   u
   common.rpy(   u   00updater.rpyiª   u
   common.rpy(   u   00gamepad.rpyi    u
   common.rpy(   u	   00iap.rpyi–   u
   common.rpy(   u    i2   u
   common.rpy(   t
   __future__R    R   RH   R$   R3   t   renpy.translationR   R&   R   R   t   objectR   R0   RD   R!   RV   (    (    (    sl   Z:\home\souce\.local\share\Steam\steamapps\common\Doki Doki Literature Club\renpy\translation\scanstrings.pyt   <module>   s8   		)		)