3

Y'íc#*ã@s
ddlZddlmZddlmZmZmZGdd„dƒZeeeeefeefZ	Gdd„dƒZ
Gdd	„d	e
ƒZejj
jejjjejjjej_eje_eje_eje_eje_eje_eje_eje_ejj
ej_ejjej_ejjej_ ej!e_"ej#e_$ej%e_&dS)
éN)Úfilterfalse)ÚListÚTupleÚUnionc@seZdZdd„Zdd„ZdS)Ú_lazyclasspropertycCs||_|j|_|j|_dS)N)ÚfnÚ__doc__Ú__name__)Úselfr©rú6/tmp/pip-build-gk9425m9/pyparsing/pyparsing/unicode.pyÚ__init__	sz_lazyclassproperty.__init__csnˆdkrt|ƒ‰tˆdƒs<t‡fdd„ˆjdd…DƒƒrBiˆ_|jj}|ˆjkrd|jˆƒˆj|<ˆj|S)NÚ_internc3s |]}ˆjt|dgƒkVqdS)rN)rÚgetattr)Ú.0Z
superclass)Úclsrrú	<genexpr>sz-_lazyclassproperty.__get__.<locals>.<genexpr>é)ÚtypeÚhasattrÚanyÚ__mro__rrr	)r
ÚobjrÚattrnamer)rrÚ__get__s

z_lazyclassproperty.__get__N)r	Ú
__module__Ú__qualname__r
rrrrrrsrc@sneZdZUdZgZeedd„ƒZedd„ƒZedd„ƒZ	edd	„ƒZ
ed
d„ƒZedd
„ƒZedd„ƒZ
dS)Úunicode_seta 
    A set of Unicode characters, for language-specific strings for
    ``alphas``, ``nums``, ``alphanums``, and ``printables``.
    A unicode_set is defined by a list of ranges in the Unicode character
    set, in a class attribute ``_ranges``. Ranges can be specified using
    2-tuples or a 1-tuple, such as::

        _ranges = [
            (0x0020, 0x007e),
            (0x00a0, 0x00ff),
            (0x0100,),
            ]

    Ranges are left- and right-inclusive. A 1-tuple of (x,) is treated as (x, x).

    A unicode set can also be defined using multiple inheritance of other unicode sets::

        class CJK(Chinese, Japanese, Korean):
            pass
    cCsfg}xJ|jD]@}|tkrPx0t|dfƒD] }|jt|d|ddƒƒq(WqWdd„tt|ƒƒDƒS)NÚ_rangesrrcSsg|]}t|ƒ‘qSr)Úchr)rÚcrrrú
<listcomp>?sz1unicode_set._chars_for_ranges.<locals>.<listcomp>éÿÿÿÿ)rrrÚextendÚrangeÚsortedÚset)rÚretÚccZrrrrrÚ_chars_for_ranges7s$zunicode_set._chars_for_rangescCsdjttj|jƒƒS)z+all non-whitespace characters in this rangeÚ)ÚjoinrÚstrÚisspacer))rrrrÚ
printablesAszunicode_set.printablescCsdjttj|jƒƒS)z'all alphabetic characters in this ranger*)r+Úfilterr,Úisalphar))rrrrÚalphasFszunicode_set.alphascCsdjttj|jƒƒS)z*all numeric digit characters in this ranger*)r+r/r,Úisdigitr))rrrrÚnumsKszunicode_set.numscCs|j|jS)z)all alphanumeric characters in this range)r1r3)rrrrÚ	alphanumsPszunicode_set.alphanumscCs.djttdjttj|jƒƒdddƒƒƒS)zVall characters in this range that are valid identifier characters, plus underscore '_'r*u:ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzªµºu|ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõöøùúûüýþÿÚ_)r+r%r&r/r,Úisidentifierr))rrrrÚ
identcharsUszunicode_set.identcharscCs.djtt|jddjdd„|jDƒƒƒƒƒS)zu
        all characters in this range that are valid identifier body characters,
        plus the digits 0-9
        r*Ú
0123456789cSsg|]}d|jƒr|‘qS)r5)r6)rr rrrr!osz.unicode_set.identbodychars.<locals>.<listcomp>)r+r%r&r7r))rrrrÚidentbodycharscs
zunicode_set.identbodycharsN)r	rrrrÚUnicodeRangeListrr)r.r1r3r4r7r9rrrrrs

rc@s
eZdZUdZdejfgZeGdd„deƒZ	Gdd„deƒZ
Gdd„deƒZGd	d
„d
eƒZGdd„deƒZ
Gd
d„deƒZGdd„deƒZGdd„deƒZGdd„deƒZeZGdd„deeeƒZGdd„deƒZGdd„deƒZGdd„deƒZGdd„deƒZdS) Úpyparsing_unicodezF
    A namespace class for defining common language unicode_sets.
    é c@seZdZUdZdgZedS)z(pyparsing_unicode.BasicMultilingualPlanez,Unicode set for the Basic Multilingual Planer<éÿÿN)r<r=)r	rrrrr:rrrrÚBasicMultilingualPlane‚s
r>c@seZdZUdZddgZedS)	zpyparsing_unicode.Latin1z/Unicode set for Latin-1 Unicode Character Ranger<é~é éÿN)r<r?)r@rA)r	rrrrr:rrrrÚLatin1ˆs
rBc@seZdZUdZdgZedS)zpyparsing_unicode.LatinAz/Unicode set for Latin-A Unicode Character RangeééN)rCrD)r	rrrrr:rrrrÚLatinAs
rEc@seZdZUdZdgZedS)zpyparsing_unicode.LatinBz/Unicode set for Latin-B Unicode Character Rangeé€éON)rFrG)r	rrrrr:rrrrÚLatinB•s
rHc$@s`eZdZUdZd@dAdBdCdDdEdFdGdHdIdJdKdLdMdNdOdPdQdRdSdTdUdVdWdXdYdZd[d\d]d^d_d`dadbg#Zed?S)czpyparsing_unicode.Greekz.Unicode set for Greek Unicode Character RangeséBéEépéwézéé„éŠéŒéŽé¡é£éáéðéÿé&é*é^é`éféjééééé éEéHéMéPéWéYé[é]é_é}é€é´é¶éÄéÆéÓéÖéÛéÝéïéòéôéöéþé)!é'é'ée«é@éé éÒéEÒé¡÷é§÷N)rIrJ)rKrL)rMrN)rOrP)rQ)rRrS)rTrU)rVrW)rXrY)rZ)r[)r\r])r^r_)r`ra)rbrc)rdre)rfrg)rh)ri)rj)rkrl)rmrn)rorp)rqrr)rsrt)rurv)rwrx)ryrz)r{)r|r})r~)rr€)r)r‚rƒ)r„r…)r	rrrrr:rrrrÚGreek›sH
r†c	@s*eZdZUdZddddddddgZedS)zpyparsing_unicode.Cyrillicz0Unicode set for Cyrillic Unicode Character Rangeéé/é€éˆé+éxéà-éÿ-é@¦ér¦ét¦éŸ¦é.þé/þN)r‡rˆ)r‰rŠ)r‹)rŒ)rrŽ)rr)r‘r’)r“r”)r	rrrrr:rrrrÚCyrillicÃs
r•c@s>eZdZUdZd'd(d)d*d+d,d-d.d/d0d1d2d3d4d5d6d7d8gZed&S)9zpyparsing_unicode.Chinesez/Unicode set for Chinese Unicode Character Rangeé€.é™.é›.éó.éÀ1éã1é4éµMéNéïŸé§é§éùémúépúéÙúéâoéãoéòéòéòé;òé@òéHòééÖ¦é§é4·é@·é¸é ¸é¡Îé°ÎéàëéøéúN)r–r—)r˜r™)ršr›)rœr)ržrŸ)r r¡)r¢r£)r¤r¥)r¦r§)r¨r©)rªr«)r¬r­)r®r¯)r°r±)r²r³)r´rµ)r¶r·)r¸r¹)r	rrrrr:rrrrÚChineseÐs&
rºc@sJeZdZUdZgZeGdd„deƒZGdd„deƒZGdd„deƒZ	dS)	zpyparsing_unicode.Japanesez`Unicode set for Japanese Unicode Character Range, combining Kanji, Hiragana, and Katakana rangesc@seZdZUdZddgZedS)	z pyparsing_unicode.Japanese.Kanjiz-Unicode set for Kanji Unicode Character RangeéN鿟é0é?0N)r»r¼)r½r¾)r	rrrrr:rrrrÚKanjiës
r¿c@s(eZdZUdZd
ddddddgZedS)z#pyparsing_unicode.Japanese.Hiraganaz0Unicode set for Hiragana Unicode Character RangeéA0é–0é™0é 0éü0épÿé°éP±éR±éòN)rÀrÁ)rÂrÃ)rÄ)rÅ)rÆ)rÇrÈ)rÉ)r	rrrrr:rrrrÚHiraganaòs
rÊc	@s,eZdZUdZdddddddddg	ZedS)z#pyparsing_unicode.Japanese.Katakanaz1Unicode set for Katakana  Unicode Character Rangeé™0éœ0é 0éÿ0éð1éÿ1éÐ2éþ2éeÿéŸÿé°éd±ég±éòéòéòN)rËrÌ)rÍrÎ)rÏrÐ)rÑrÒ)rÓrÔ)rÕ)rÖr×)rØrÙ)rÚ)r	rrrrr:rrrrÚKatakanaþs
rÛN)
r	rrrrr:rr¿rÊrÛrrrrÚJapaneseçs

rÜc@s8eZdZUdZd d!d"d#d$d%d&d'd(d)d*d+d,d-d.gZedS)/zpyparsing_unicode.Hangulz7Unicode set for Hangul (Korean) Unicode Character Rangeééÿé.0é/0é11éŽ1é2é2é`2é{2é~2é`©é|©é¬é£×é°×éÆ×éË×éû×é ÿé¾ÿéÂÿéÇÿéÊÿéÏÿéÒÿé×ÿéÚÿéÜÿN)rÝrÞ)rßrà)rárâ)rãrä)råræ)rç)rèré)rêrë)rìrí)rîrï)rðrñ)ròró)rôrõ)rör÷)rørù)r	rrrrr:rrrrÚHanguls 
rúc@seZdZdZdS)zpyparsing_unicode.CJKzTUnicode set for combined Chinese, Japanese, and Korean (CJK) Unicode Character RangeN)r	rrrrrrrÚCJK"srûc@seZdZUdZddgZedS)	zpyparsing_unicode.Thaiz,Unicode set for Thai Unicode Character Rangeéé:é?é[N)rürý)rþrÿ)r	rrrrr:rrrrÚThai%s
rc@s eZdZUdZd	d
dgZedS)zpyparsing_unicode.Arabicz.Unicode set for Arabic Unicode Character RangeééééÿééN)rr)rr)rr)r	rrrrr:rrrrÚArabic,s
rc
@s,eZdZUdZdddddddddg	ZedS)zpyparsing_unicode.Hebrewz.Unicode set for Hebrew Unicode Character Rangeé‘éÇéÐéêéïéôéûé6ûé8ûé<ûé>ûé@ûéAûéCûéDûéFûéOûN)rr	)r
r)rr
)rr)rr)r)rr)rr)rr)r	rrrrr:rrrrÚHebrew4s
rc@seZdZUdZddgZedS)	zpyparsing_unicode.Devanagariz2Unicode set for Devanagari Unicode Character Rangeé	é	éà¨éÿ¨N)rr)rr)r	rrrrr:rrrrÚ
DevanagariBs
rN)r	rrrÚsysÚ
maxunicoderr:rr>rBrErHr†r•rºrÜrúÚKoreanrûrrrrrrrrr;vs"
(
%r;)'rÚ	itertoolsrÚtypingrrrrÚintr:rr;rÜr¿rrÊrÛr>ZBMPrtالعربيةrºt中文r•tкириллицаr†tΕλληνικάrtעִברִיתt	日本語t漢字tカタカナtひらがなr!t	한국어rt	ไทยrtदेवनागरीrrrrÚ<module>s*WZ"