Mini Shell

Direktori : /lib64/gedit/plugins/snippets/__pycache__/
Upload File :
Current File : //lib64/gedit/plugins/snippets/__pycache__/substitutionparser.cpython-36.opt-1.pyc

3

�CZ��@s8ddlZGdd�de�ZGdd�d�ZGdd�d�ZdS)�Nc@seZdZdd�ZdS)�
ParseErrorcCsdS)NzParse error, resume next�)�selfrr�7/usr/lib64/gedit/plugins/snippets/substitutionparser.py�__str__szParseError.__str__N)�__name__�
__module__�__qualname__rrrrrrsrc@sleZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Ze	e�Ze	e�Ze	e�Ze	e�Ze	e�Ze	e�Zd
S)�	ModifierscCs8|dkr|dpd}t|�dkr,|dd�p.d}||fS)N�r�)�len)�s�first�restrrr�_first_charszModifiers._first_charcCstj|�\}}d|j�|fS)Nz%s%s)r
r�upper)rrrrrr�upper_firstszModifiers.upper_firstcCs|j�S)N)r)rrrrr$szModifiers.uppercCstj|�\}}d|j�|fS)Nz%s%s)r
r�lower)rrrrrr�lower_first'szModifiers.lower_firstcCs|j�S)N)r)rrrrr,szModifiers.lowercCs|j�S)N)�title)rrrrr/szModifiers.titleN)
rrr	rrrrrr�staticmethodrrrrr
sr
c@s�eZdZdZdZdZdZdeeeefZiifdd�Zdd	�Z	d
d�Z
d&d
d�Zdd�Zd'dd�Z
dd�Zdd�Zd(dd�Zdd�Zdd�Zdd �Zd!d"�Zed#d$��Zd%S))�SubstitutionParserz[0-9]+z
[a-zA-Z_]+z	[a-zA-Z]+z\\|\(\?|,|\)z(?:(%s)|<(%s|%s)(?:,(%s))?>)cCsL||_||_tjtjtjtjtjd�|_x|j	�D]\}}||j|<q2WdS)N)�u�U�l�L�t)
�pattern�groupsr
rrrrr�	modifiers�items)rrrr �k�vrrr�__init__AszSubstitutionParser.__init__cCs|j|jd�\}}|S)N)�_parser)r�result�tokensrrr�parseNszSubstitutionParser.parsecCs�d}xt|dkrx|j|�dks*|j|�|kr6|j|�}Py|j||�\}}Wn"tk
rl|j|�\}}YnX||7}qW||fS)Nr)�_peek�_remains�_exprr�_text)rr'�
terminatorr&�resrrrr%Ss

zSubstitutionParser._parsercCs|t|�ko||S)N)r
)rr'�numrrrr)dszSubstitutionParser._peekcCs0|dkrdS|dt|�dkr*|dd�p,dfS)Nrrr)rr)r
)rr'rrr�_tokengszSubstitutionParser._tokenrcCs|t|�kr||d�pdS)Nr)r
)rr'r/rrrr*mszSubstitutionParser._remainscCsH|dkrdSy|j|jd�|j|�||�Stk
rBt�YnXdS)Nr)�\�()�_escape�
_conditionr)�KeyErrorr)rr'r-rrrr+pszSubstitutionParser._exprcCs
|j|�S)N)r0)rr'rrrr,zszSubstitutionParser._textrcCsF|jj|�r|j|pd}x&|D]}|jj|�r |j||�}q W|S)Nr)r�has_keyr )r�groupr r&Zmodifierrrr�_substitute}s

zSubstitutionParser._substitutecCsTtjd|j|�}|sd|fS|j|jd�p4|jd�|jd�p@d�||j�d�fS)Nz\\%sr��r)�re�match�	REG_GROUPr8r7�end)rr'r<rrr�_match_group�szSubstitutionParser._match_groupcCsr|j|�\}}|dkr||fS|j}|r:|dtj|�7}tjd||jf|�}|sXt�|jd�||j�d�fS)Nz|%sz\\(\\%s|%s)r)	r?r=r;�escaper<�
REG_ESCAPErr7r>)rr'r-r&rr<rrrr3�szSubstitutionParser._escapecCs`tjd|j|�}|sd|fS|j�}|dp4|d}|jj|�oN|j|dk||j�d�fS)Nz\\?%s\s*rr)r;r<r=rr6r>)rr'r<r�namerrr�_condition_value�sz#SubstitutionParser._condition_valuecCs�|j|d�dkrt�|j|d�}|j|�\}}|dksD|j|�dkrHt�|j|j|�d�\}}|dkrjt�|j|d�\}}|dkr�t�|r�||fS||fSdS)Nr�?r9�,�))r)rr*rCr%)rr'r-Z	conditionZtruepartZ	falsepartrrrr4�szSubstitutionParser._conditioncCstjdtjtjfd|�S)Nz(%s|%s)z\\\1)r;�subrr=rA)Zsubstitutionrrr�escape_substitution�sz&SubstitutionParser.escape_substitutionN)r)r)r)rrr	ZREG_IDZREG_NAMEZREG_MODrAr=r$r(r%r)r0r*r+r,r8r?r3rCr4rrHrrrrr9s&




	r)r;�	Exceptionrr
rrrrr�<module>s!